Особенности двигателя MPI в автомобилях Volkswagen: принцип работы, преимущества использования, описание, плюсы и минусы в эксплуатации.
Современность двигателей Multi Point Injection
Будущее у MPI двигателей отсутствует, как выглядело несколько лет назад, многие даже верили, что изготовление моторов данного типа было приостановлено. Радикальное развитие автомобильных разработок и технологий очень быстро принуждает не вспоминать о вчерашних ориентирах качества.
В действительности это и происходит с двигателями MPI, многие специалисты этой отрасли утверждают, что экономичность и экологическая безопасность являются устаревшими.
Но эти выводы в большей степени верны только для европейских рынков, а что касается российских, то тут все это выглядит отчасти. Поскольку настоящий потенциал данных агрегатов, еще не выявлен в полной мере отечественными автомобилистами.
Производители, делающие ставку на дальновидность, не дают умереть данной технологии и постоянно ее внедряют на автомобили, предназначенные для российских дорог. К примеру, на Skoda Yeti или Volkswagen Polo. Самыми запоминающимися стали представители системы MPI с двигателями, объем которых составлял 1.4 или 1.6 л.
Источник: http://shokavto.ru/dvigatel-mpi/
.
, , , . , — , . . , . . ,, .
«» , : MPI , MPI , . : , (, )., (separate memory).
MPI: (communication domains). . . . — . MPI , , . , . MPI MPI_COMM_WORLD. , . , .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
: , , .
manual pages . , . :
— () , . , ; . («requests»), . , , .
— . , .. . MPI_Send MPI_Barrier , . , , , MPI_Recv ( MPI_Send) : , .
— — , . ( , ).
Источник: http://opennet.ru/docs/RUS/MPI_intro/
MPI .
: , .
«MPI_». . , , «MPID_», «MPIR_» «PMPI_», .
, : MPI_Get_count, MPI_Comm_rank., , : MPI_Sendrecv,MPI_Alltoall.
» «: «MPI_», ( Type, Comm, Group, Attr, Errhandler ..), ( MPI_Errhandler_create, MPI_Errhandler_set, …). : «-«, , MPI_Barrier, MPI_Unpack.
( ) : MPI_COMM_WORLD, MPI_FLOAT. — , : MPI_Send, MPI_Comm_size.
, . , .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
MPI .
MPI . , , .
- . MPI_Comm_rank MPI_COMM_RANK , , .
- include ‘mpif.h’ .
- , , . MPI ; : : errcode = MPI_Comm_rank( MPI_COMM_WORLD, &rank ); : CALL MPI_COMM_RANK ( MPI_COMM_WORLD, rank, ierror )
- , . , , «&» , . , rank / .
, MPI , (, ), MPI_ADDRESS.
- . , MPI , , :
- : MPI_Status status; /* */MPI_Probe( MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status ); /* */if( status.MPI_SOURCE == 1 ) { … }if( status.MPI_TAG == tagMsg1 ) { … }
- , : INTEGER status(MPI_STATUS_SIZE)CALL MPI_PROBE( MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD, status )IF( status(MPI_SOURCE) .EQ. 1 ) ….IF( status(MPI_TAG) .EQ. tagMsg1 ) … …
: — , «_SIZE», .
- ‘mpicc‘ ‘mpif77‘ ‘mpif90‘ -77 -90 . , ( ..) .
, MPI-UX. , Convex .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
Конструкционные особенности двигателя MPI
Абсолютное отсутствие турбонагнетателя является еще одной значимой отличительной особенностью данной системы наряду с многоточечной системой впрыска. В конструкции данных двигателей присутствует обычный бензонасос, который под давлением 3 атмосферы подает топливо во впускной коллектор для последующего смесеобразования и подачи через клапан впуска уже готового состава.
Данная схема работы очень схожа со схемой работы карбюраторных двигателей. С одним отличием, что присутствует отдельная форсунка на каждом цилиндре.
Еще одной не привычной особенностью системы Multi Point Injection двигателя является наличие контура водяного охлаждения для топливной смеси. Это объясняется тем, что в области головки цилиндров очень высокая температура, а давление поступающего топлива очень невелико, из-за этого существует большая вероятность проявления газовоздушной пробки и следственно закипания.
Источник: http://shokavto.ru/dvigatel-mpi/
. .
, , MPI. , :
- . main ( ): MPI_Init( &argc, &argv ); , main . MPI- mpirun , MPI_Init. 0.
- . , , MPI: MPI_Abort( , MPI ); MPI_Abort , . MPI_COMM_WORLD, ( ) , , -, . MPI_ERR_OTHER, , MPI.
- : MPI_Finalize(); , :
- exit ;
- MPI_Init return main ;
- main void, return, MPI_Finalize() main.
- : ( , ) : int size, rank; MPI_Comm_size( MPI_COMM_WORLD, &size ); MPI_Comm_rank( MPI_COMM_WORLD, &rank );
MPI_Init, MPI_Finalize, MPI_Comm_size MPI_Comm_rank 0. MPI_Abort , 1.
Источник: http://opennet.ru/docs/RUS/MPI_intro/
«-«. .
: , — . MPI , , :
- 1 : int buf[10]; MPI_Send( buf, 5, MPI_INT, 1, 0, MPI_COMM_WORLD );
- 2 : int buf[10]; MPI_Status status; MPI_Recv( buf, 10, MPI_INT, 0, 0, MPI_COMM_WORLD, &status );
:
- , 1 , 2 . , , , , , , , .
- . , . MPI_Send , ( 5 ). MPI_Recv . — , — .
- . MPI_Send MPI_Recv . MPI MPI_INT, MPI_CHAR, MPI_DOUBLE , MPI_Datatype. «MPI_» (int, char, double, …), . «» MPI , , , MPI . » «.
- , . MPI 0 ( -1). 0 1, 1 0.
- . 0 32767, . , , , — -:
- ;
- , , . «#define» «const int».
- (). MPI_Send MPI_Recv.
- . : , -, .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
«MPI_Status» — .
, MPI_Recv , , ; — MPI status? , MPI_Recv -(» / «), /, MPI_SOURCE MPI_TAG status.
MPI_ERROR, , — , MPI , MPI_Recv. , MPI_Recv status.MPI_ERROR 0 (, , MPI_SUCCESS);
MPI_Status , . :
MPI_Status status; int count; MPI_Recv( … , MPI_INT, … , &status ); MPI_Get_count( &status, MPI_INT, &count ); /* … count */ , — MPI_Recv MPI_Get_count , , :
- count ;
- .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
В условиях России

Моторы с технологией MPI прекрасно подходят для использования в российских условиях.
- Они не требовательны к качеству топлива, что актуально для российского топливного рынка. Ведь до сих пор топливо на многих российских автозаправках не отличается высоким качеством. Но MPI-моторы способны хорошо и долго работать даже на бензине с запредельным содержанием серы.
- Простая и надежная, с дополнительной защитой от механических нагрузок, конструкция MPI-двигателя актуальна и для российских дорог, большинство из которых (так же, как и топливо) не отличается высоким качеством.
- Двигатели MPI соответствуют российским экологическим стандартам по выхлопу в отличие от Европы, где экологические требования к двигателям намного выше.
Вполне возможно, что указанные выше факторы стали причиной открытия производственной линии по выпуску MPI-двигателей на заводе в Калуге. Однако списывать двигатели MPI с европейского рынка еще рано. И подтверждением этому может служить замена немецкими производителями TSI-двигателей 1.2 литра на неприхотливые MPI-двигатели 1.6 литра.
Видео о разборке мотора MPI:
Советы автомобилистам Статья о двигателе MPI — особенности мотора, его эксплуатация, достоинства и недостатки. В конце статьи — видео о разборе мотора MPI.
Источник: http://mobile-dvr.ru/rashodniki/chto-takoe-dvigatel-mpi.html
Технические характеристики движка 1.6 mpi
|
Мощность |
110 л.с. |
|
Рабочий объем |
1595 см³ |
|
Тип топлива |
бензин с октановым числом выше 91 |
|
Максимальная скорость |
195 км/ч |
|
Расход топлива (город, трасса, смешанный) |
8.1 л на 100 км, 5.0, 6.3 |
|
Max крутящий момент/частота вращения Нм/мин |
155/3800-4000 |
|
Время разгона до 100 км/ч |
10,7 с |
|
Содержание СО2 (город, трасса, смешанный) |
187/117/142 |
|
Экологический класс |
Евро-4 |
|
Впрыск |
распределенный |
|
Расположение двигателя |
спереди, поперечно |
|
Степень сжатия |
10,5:1 |
|
Диаметр цилиндра |
81,0 мм |
|
Ход поршня |
77,4 мм |
|
Порядок работы цилиндров |
1-3-4-2 |
|
Объем масла |
4,5 л |
|
Ресурс |
250-300 тыс. км |
Источник: http://autotopik.ru/dvigatel/dvigatel-mpi-modifikaci-pljusy-i-minusy.html
Характерные преимущества MPI

Прежде чем пересесть на автомобиль с MPI, многие автомобилисты, которые в той или иной степени знакомы с этой системой очень хорошо подумают о получении набора достоинств, за счет которых установки с многоточечным впрыском заслужили призвание в мире.
Простота устройства
Это не говорит о том, что такие системы проще по сравнению с карбюраторными моделями. Если сопоставить модель TSI, имеющую в конструкции ТНВД и турбокомпрессоры, то естественно превосходство на лицо. И стоимость автомобиля будет ниже и уменьшенные расходы на эксплуатацию и возможность осуществления самостоятельного ремонта.
Нетребовательные запросы по качеству топлива
Гарантировать надлежащее качество топлива и масел везде и всегда не возможно, что очень характерно для России. Использование низкоакктановых бензинов ниже 92 не влияет на работоспособность двигателей MPI, поскольку они очень неприхотливы. Минимальный пробег автомобилей без поломок, по мнению разработчиков, составляет 300 000 км, при условии своевременной замены масла и фильтрующих элементов.
Минимальное значение вероятности перегрева
Угол опережения зажигания регулируемый. Присутствие системы опор двигателя, которая рассчитана на применении резиновых опор. Конечно, на прямую с двигателем это не связано, но на работоспособность мотора и комфортность водителя это все таки имеет значение.
Поскольку за счет опор гасятся вибрации и различные шумы, которые возникают при езде. Интересной особенностью является то, что опоры имеют автоматическую настройку под различные режимы работы двигателя.
Источник: http://shokavto.ru/dvigatel-mpi/
?
, MPI_Recv status , MPI_Get_count . , , : MPI_Probe. , , MPI_Recv. MPI_Status MPI_Get_count. MPI , MPI_Probe MPI_Recv ( -, ) , MPI_Probe. MPI_Probe :
- — . :MPI_Probe( MPI_ANY_SOURCE, tagMessageInt, MPI_COMM_WORLD, &status ); /* MPI_Probe */ /* */MPI_Get_count( &status, MPI_INT, &bufElems );buf = malloc( sizeof(int) * bufElems );MPI_Recv( buf, bufElems, MPI_INT, … /* … MPI_Recv , MPI_Probe ); */ /* MPI_Recv */ /* */ , , , , , «» .
- — . MPI_Probe :MPI_Recv( floatBuf, floatBufSize, MPI_FLOAT, MPI_ANY_SOURCE, tagFloatData, … );MPI_Recv( intBuf, intBufSize, MPI_INT, MPI_ANY_SOURCE, tagIntData, … );MPI_Recv( charBuf, charBufSize, MPI_CHAR, MPI_ANY_SOURCE, tagCharData, … ); , tagCharData , MPI «» MPI_Recv. . MPI_Probe , , :for( i=0; i<3; i++ ) { MPI_Probe( MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&status ); switch( status.MPI_TAG ) { case tagFloatData: MPI_Recv( floatBuf, floatBufSize, MPI_FLOAT, … ); break; case tagIntData: MPI_Recv( intBuf, intBufSize, MPI_INT, … ); break; case tagCharData: MPI_Recv( charBuf, charBufSize, MPI_CHAR, … ); break; } /* switch */} /* for */
, 4 MPI_Recv , MPI_Probe.
MPI_Probe 2.
Источник: http://opennet.ru/docs/RUS/MPI_intro/
.
2 : MPI_ANY_SOURCE — (» «) MPI_ANY_TAG (» «).MPI — , 0 32767. , MPI_Recv , -.
, MPI_Probe MPI_Iprobe, (-, , — , MPI_Recv — ).
: , MPI_Recv /. .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
Skoda Octavia 2012, л. с. — просто так

Красноярск
Skoda Octavia, 2012
588 000 ₽

Иркутск
Skoda Octavia, 2008
385 000 ₽

Реж
Skoda Octavia, 2011
360 000 ₽

Москва
Skoda Octavia, 2012
525 000 ₽
Посмотреть больше машин на Дроме
Участвовать в обсуждениях могут только зарегистрированные пользователи.
Войти Зарегистрироваться
Источник: http://mobile-dvr.ru/rashodniki/chto-takoe-dvigatel-mpi.html
: MPI_Sendrecv.
— :
- ( !): MPI_Comm_size( MPI_COMM_WORLD, &size ); MPI_Comm_rank( MPI_COMM_WORLD, &rank ); if( rank % 2 ) { /* * , * */ MPI_Send(…, ( rank+1 ) % size ,…); MPI_Recv(…, ( rank+size—1 ) % size ,…); } else { /* : * , * . */ MPI_Recv(…, ( rank—1 ) % size ,…); MPI_Send(…, ( rank+1 ) % size ,…); }
- : MPI_Send(…, anyRank ,…); /* */ MPI_Recv(…, anyRank ,…); /* */
, MPI , . — MPI_Sendrecv. 12 : 5 , MPI_Send, 7 MPI_Recv. , IF-ELSE . , :
- , ;
- MPI_Sendrecv ; , «» ;
- MPI_Sendrecv MPI_Send MPI_Recv, . «» .
MPI_Sendrecv_replace — . , count : , . :
- ;
- ;
- .
MPI_Sendrecv_replace .
? , , .
1:
— 1 — — 2 — Recv( 2 ) Recv( 1 ) Send( 2 ) Send( 1 )
1 , : , ; ; … SIG_KILL;)
2:
— 1 — — 2 — Send( 2 ) Send( 1 ) Recv( 2 ) Recv( 1 )
2 , , . , /-.
MPI ! MPI_Send, ( MPI_Recv), , . MPI_Recv , , . — — , ( SMP-), : .
MPI_Sendrecv MPI_Sendrecv_replace : 1 2.
Источник: http://opennet.ru/docs/RUS/MPI_intro/
Характерные недостатки MPI
Все недостатки данного двигателя выражены именно его конструктивными особенностями. Соединение топлива с воздухом происходит в каналах, а не на прямую в цилиндрах. Соответственно присутствует ограничение возможностей впускной системы. Это выражено в недостаче мощности и довольно слабом крутящем моменте.
Исходя из этого не получается приличной динамики, спортивной приемистости, горячего драйва. В современных авто наличие восьми клапанов, как правило, не хватает, поэтому все эти характеристики увеличиваются. Если охарактеризовать данный автомобиль с такой системой, то он вполне сойдет за семейный и спокойный транспорт.
Именно поэтому такие автомобили перестали пользоваться спросом и отходят на задний план в прошлое. Почему же так происходит, т.е. мир сделал оценку качеств данной системы и решил, что ему этого недостаточно и конструктора разработчики принялись проектировать более современные моторы по мощности. Но нет, есть неожиданные сюрпризы в автомобилестроении.
Разработчики фирмы Skoda разработав российский вариант внедорожника для семейного пользования Yeti, в 2014 году намеренно отказались от турбированного двигателя с объемом 1.2 в пользу двигателя MPI с объемом 1.6 и мощностью 110 л.с.
Как заявили разработчики известного всемирного концерна, данный двигатель практически не имеет ничего общего по сравнению со старой моделью мощностью в 105 л.с. Больше всего он подходит к моделям TSI, но у него отсутствует непосредственный впрыск и турбирование.
Источник: http://shokavto.ru/dvigatel-mpi/
MPI ?
, ? ,, memcpy, — . MPI : (MPI_INT, ..). :
- MPI , , , , «» . , MPI . MPI . MPI_Sendrecv, .
- MPI ( ). , : 3 (IEEE,IBM,Cray); char Windows , — KOI-8r ; Intel ( Intel — , — ). , XDR (eXternal Data Representation), Internet. / XDR. , MPI , .
- MPI . CHARACTER , , . MPI, , . , — MPI_CHARACTER. : — , — . , .
- , , , , ( 2, 4 8) — . . . , ( ), , . MPI . , 9 16 : typedef struct { char c; double d; } CharDouble;
.
Источник: http://opennet.ru/docs/RUS/MPI_intro/
.
— — . , , — , ( ).
1 ( , ). :
#define msgTag 10 struct { int i; float f[4]; char c[8]; } s; MPI_Send(&s.i, 1, MPI_INT, targetRank, msgTag, MPI_COMM_WORLD ); MPI_Send( s.f, 4, MPI_FLOAT, targetRank, msgTag+1, MPI_COMM_WORLD ); MPI_Send( s.c, 8, MPI_CHAR, targetRank, msgTag+2, MPI_COMM_WORLD ); … MPI_Recv.
2 («»). / , / /:
======== int bufPos = 0; char tempBuf[ sizeof(s) ]; MPI_Pack(&s.i, 1, MPI_INT, tempBuf, sizeof(tempBuf), &bufPos, MPI_COMM_WORLD ); MPI_Pack( s.f, 4, MPI_FLOAT, tempBuf, sizeof(tempBuf), &bufPos, MPI_COMM_WORLD ); MPI_Pack( s.c, 8, MPI_CHAR, tempBuf, sizeof(tempBuf), &bufPos, MPI_COMM_WORLD ); MPI_Send( tempBuf, bufPos, MPI_BYTE, targetRank, msgTag, MPI_COMM_WORLD ); ===== int bufPos = 0; char tempBuf[ sizeof(s) ]; MPI_Recv( tempBuf, sizeof(tempBuf), MPI_BYTE, sourceRank, msgTag, MPI_COMM_WORLD, &status ); MPI_Unpack( tempBuf, sizeof(tempBuf), &bufPos,&s.i, 1, MPI_INT, MPI_COMM_WORLD); MPI_Unpack( tempBuf, sizeof(tempBuf), &bufPos, s.f, 4, MPI_FLOAT,MPI_COMM_WORLD); MPI_Unpack( tempBuf, sizeof(tempBuf), &bufPos, s.c, 8, MPI_CHAR, MPI_COMM_WORLD);
2 , MPI PVM, . , . :
- MPI_BYTE — ; ( unsigned char). MPI_BYTE , — , .
- / ? , , . , , , / XDR (eXternal Data Representation — Sun Microsystems, ). , / / , ;
- , MPI , bufPos. /. , , . — » » — ;
- : , XDR- , ; XDR- . MPI_Probe / MPI_Get_count / MPI_Recv, — MPI_Pack_size: int bufSize = 0; void *tempBuf; MPI_Pack_size( 1, MPI_INT, MPI_COMM_WORLD, &bufSize ); MPI_Pack_size( 4, MPI_FLOAT, MPI_COMM_WORLD, &bufSize ); MPI_Pack_size( 8, MPI_CHAR, MPI_COMM_WORLD, &bufSize ); tempBuf = malloc( bufSize ); /* … , */
2 : memcpy SMP- / — !
3 («»). , , :
: MPI_Send( &s, sizeof(s), MPI_BYTE, … ); : MPI_Recv( &s, sizeof(s), MPI_BYTE, … );
, , .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
.
:
- , ;
- : MPI_INT, MPI_CHAR, MPI_LONG, MPI_FLOAT, MPI_DOUBLE ; MPI_BYTE ;
- , MPI_Type_commit;
- MPI_Type_free;
.
MPI_Type_vector MPI_Type_indexed, MPI_Type_struct.
MPI_Type_contiguous : , . MPI_Send .
int a[16]; MPI_Datatype intArray16; MPI_Type_contiguous( 16, MPI_INT, &intArray16 ); MPI_Type_commit( &intArray16 ); MPI_Send( a, 16, MPI_INT, … ); MPI_Send( a, 1, intArray16, … ); MPI_Type_free( &intArray16 ); MPI_Type_count : MPI_Type_count( intArray16, &count ) count 16. , , .
MPI_Type_vector : . . — , , , ( ) :
MPI_Type_vector( int count, /* */ int blocklength, /* */ int stride, /* -, */ MPI_Datatype oldtype, /* , .. */ MPI_Datatype &newtype /* c */); :
- ;
- ;
- , ; , , «» .
MPI_Type_hvector , : , . .
MPI_Type_indexed : «»; , . , #2 #3 — , : .
: .
#define SIZE 100 float a[ SIZE ][ SIZE ]; int pos[ SIZE ] int len[ SIZE ]; MPI_Datatype upper; … for( i=0; i<SIZE; i++ ) { /* xxxxxx */ pos[i] = SIZE*i + i; /* .xxxxx */ len[i] = SIZE — i; /* ..xxxx */ } /* …xxx */ MPI_Type_indexed( SIZE, /* */ len, /* */ pos, /* , */ /* */ MPI_FLOAT, /* */ &upper ); MPI_Type_commit( &upper ); /* ‘float’ * ‘a’ */ MPI_Recv( a, 1, upper, …. ); MPI_Type_hindexed, , .
MPI_Type_struct : . .
MPI_Type_struct( count, /* */ int *len, /* */ /* ( , ) */ MPI_Aint *pos, /* */ /* , */ MPI_Datatype *types, /* */ MPI_Datatype *newtype ); /* */
MPI_Aint: , . , «». MPI_Address: ( & offsetof() ); , MPI_Address.
«»:
#include <stddef.h> /* ‘offsetof()’ */typedef struct { int i; double d[3]; long l[8]; char c;} AnyStruct;AnyStruct st;MPI_Datatype anyStructType;int len[5] = { 1, 3, 8, 1, 1 };MPI_Aint pos[5] = { offsetof(AnyStruct,i), offsetof(AnyStruct,d), offsetof(AnyStruct,l), offsetof(AnyStruct,c), sizeof(AnyStruct) };MPI_Datatype typ[5] = { MPI_INT,MPI_DOUBLE,MPI_LONG,MPI_CHAR,MPI_UB };MPI_Type_struct( 5, len, pos, typ, &anyStructType );MPI_Type_commit( &anyStructType ); /* */MPI_Send( st, 1, anyStructType, … );
: 4 , 5 . , MPI , . MPI_UB («upper bound»).
, , , : typ MPI_LB.
MPI_Type_extent MPI_Type_size : . :
| sizeof | MPI_Type_extent | MPI_type_size | |
|---|---|---|---|
| sizeof(1)+sizeof(2)+… | |||
| MPI | — + sizeof( ) |
sizeof( ) + sizeof( ) + … |
, MPI_Type_extent , , MPI_Type_size — ( ). MPI_Type_size , WinMPICH — binding.h , .
sizeof ( — ).
Источник: http://opennet.ru/docs/RUS/MPI_intro/
Основные значения MPI
На следующем изображении представлены наиболее часто используемые значения MPI. Вы можете записать файл изображения в формате PNG для автономного использования или отправить его своим друзьям по электронной почте.Если вы являетесь веб-мастером некоммерческого веб-сайта, пожалуйста, не стесняйтесь публиковать изображение определений MPI на вашем веб-сайте.

Источник: http://prometey96.ru/ustrojstvo-avto/mpi-dvigatel-chto-eto-takoe.html
.
«» MPI :
- ;
- , ;
- .
(). , — , ( , ). : , ; .
, , — ? / / , .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
, .
:
int MPI_Barrier( MPI_Comm comm );
MPI_Barrier , , . , MPI_Barrier .
MPI , ! , ; — , MPI_Barrier.
? : 0 , MPI_Abort -, MPI_Abort .
, : , , . — . , .
, , . , «» ( «backmasking»; , ). ,:
: 0 xxxx….xxxxxxxxxxxxxxxxxxxx 1 xxxxxxxxxxxx….xxxxxxxxxxxx 2 xxxxxxxxxxxxxxxxxxxxxx….xx : 0 xxxx….xx(xxxxxxxx(||||xxxxxxxx(||xx 1 xxxxxx(||||x….xxxxxxx(xxxxxxxx(||xx 2 xxxxxx(||||xxxxxxxx(||||..xxxxxxxx(xx —————————— > : x . — ( MPI_Barrier | MPI_Barrier
«» .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
.
: . (// / ..), .. .
MPI_Reduce : root:
int vector[16];int resultVector[16];MPI_Comm_rank( MPI_COMM_WORLD, &myRank );for( i=0; i
MPI 12:
- MPI_MAX MPI_MIN ;
- MPI_SUM ;
- MPI_PROD ;
- MPI_LAND, MPI_BAND, MPI_LOR, MPI_BOR, MPI_LXOR, MPI_BXOR — , , ;
- MPI_MAXLOC, MPI_MINLOC — / — .
: ? :
| MPI_MAX, MPI_MIN | |
| MPI_SUM, MPI_PROD | , , |
| MPI_LAND, MPI_LOR, MPI_LXOR | |
| MPI_LAND, MPI_LOR, MPI_LXOR | ( .. ) |
:
| MPI_INT, MPI_UNSIGNED_INT, MPI_LONG, MPI_UNSIGNED_LONG, MPI_SHORT, MPI_UNSIGNED_SHORT | MPI_INTEGER | |
| MPI_BYTE | () | |
| MPI_FLOAT, MPI_DOUBLE, MPI_LONG_DOUBLE | MPI_REAL, MPI_DOUBLE_PRECISION | |
| (, int) | MPI_LOGICAL | |
| () | MPI_COMPLEX |
. ! , ( «(a+b)+c = a+(b+c)» ) ( «a+b = b+a» ).
MPI_Allreduce : , ‘root’ .
MPI_Reduce_scatter : -, . — . .
MPI_Scan : MPI_Allreduce , . : — i 0 i .
, , . MPI_Op_create MPI_Op_free, MPI_User_function.
Источник: http://opennet.ru/docs/RUS/MPI_intro/
, .
— . . MPI_Group , . , ,: MPI_GROUP_EMPTY , , ; MPI_GROUP_NULL , . MPI, — .
(«communication domain») — : , , . . , .
, — (, , ), «» : , , .
.
» «: , — , — .
, ?
- , , — — — , ;
- — , . , , . , , MPI_COMM_WORLD ;
- , , , «-«, ;
- , .
( » «), (» «) — . ( ) , :
- , , ;
- , , .
, , , ! ., , :
- ;
- — .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
. — «—» :
MPI_Comm tempComm; MPI_Comm_dup( MPI_COMM_WORLD, &tempComm ); /* … tempComm … */ MPI_Comm_free( &tempComm ); — . .. 6
. , .
MPI_Comm_split( existingComm, /* , MPI_COMM_WORLD */ indexOfNewSubComm, /* , */ rankInNewSubComm, /* */ &newSubComm ); /* */ , — ; ( , ). indexOfNewSubComm MPI_UNDEFINED, newSubComm MPI_COMM_NULL, .. 7
. , : , . :
- MPI_Comm_group , ;
- MPI_Group_xxx ;
- MPI_Comm_create ; , — , ;
- MPI_Group_free.
, , MPI_Comm_split, . MPI 7 .
, ?
. MPI, . .
«» (, , MPI_Send/MPI_Recv , , ) , , , .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
: .
, (). «caching». ; , , :
- — ;
- ;
- .
, MPI . : MPI_TAG_UB, MPI_HOST, MPI_IO, MPI_WTIME_IS_GLOBAL. , ; , , ,, MPI_Errhandler_xxx.
— ; , (, MPP-, , , , .. ).
MPI_Keyval_create MPI_Keyval_free; MPI_Attr_put, MPI_Attr_get MPI_Attr_delete. MPI_Copy_function, .
: MPI_Delete_function, .
Источник: http://opennet.ru/docs/RUS/MPI_intro/
.
, MPI_Xxx_free ( MPI_XXX_NULL). MPI-I 7 ( , mpi.h ):
- ;
- ;
- ;
- ;
- (request’s);
- ;
- (errhandler’s).
, .
, . — MPI_Xxx_free . , :
- , MPI_Xxx_free ;
- MPI, .
( ); , ( ).
:
MPI_Comm subComm; MPI_Group subGroup; int rank; MPI_Comm_rank( MPI_COMM_WORLD, &rank ); MPI_Comm_split( MPI_COMM_WORLD, rank / 3, rank % 3, &subComm ); /* subComm, * , . * — subComm. * . */ MPI_Comm_group( subComm, &subGroup ); /* — * , subGroup. */ MPI_Group_free( &subGroup ); /* , * subGroup MPI_GROUP_NULL. * , * . */ MPI_Comm_free( &subComm ); /* , * subComm MPI_COMM_NULL. * , . * . * , * . */ : MPI , MPI_Xxx_free, .
MPI_COMM_WORLD MPI_CHAR: — MPI.
Источник: http://opennet.ru/docs/RUS/MPI_intro/
.
a: .MPI_COMM_WORLD . — , . , , «-» «-» , «-«. :
- : MPI_Bcast ;
- ;
- MPI_Comm_xxx, MPI_Group_xxx, , MPI_Comm_size; MPI_Comm_remote_xxx.
. 0 ( -1). . MPI : n- ( ), . (MPI_Topo_test, MPI_Cart_xxx, MPI_Graph_xxx) . — , , , : , .
. , MPI , . , (malloc,open,write,…;), MPI. : , MPI . , MPI_Errhandler_xxx. , , , -.
. MPI , . : MPI , (threads) . , , , MPI_Recv, , . : MPI_Comm_dup !
. MPI-2 , MPI-1 . (Unix/Parix/NFS/…) , MPP-, . / MPI-1 — MPI_IO — , / ; MPI . MPI , , , .
; , — (?), main() :
setvbuf( stdout, NULL, _IOLBF, BUFSIZ ); setvbuf( stderr, NULL, _IOLBF, BUFSIZ ); «#include <stdio.h>» …
Источник: http://opennet.ru/docs/RUS/MPI_intro/
13 98 — .20 98 — . , » «
:


:
Источник: http://opennet.ru/docs/RUS/MPI_intro/