int MPI_Iprobe( int source, int msgtag, MPI_Comm comm, int *flag, MPI_Status *status)
source — процесс-жіберушінің нӛмірі немесе
MPI
_
ANY
_
SOURCE
;
msgtag — күтілетін хабарлама идентификаторы немесе
MPI
_
ANY
_
TAG
;
comm —коммуникатор идентификаторы;
OUT
flag — алмасу операциясының аяқталу белгісі;
OUT
status — келіп тұрған хабарлама параметрлері.
Күтілетін бұғатталусыз хабарламаның құрылымы және келіп түсуі
жайлы ақпаратты алу. Егер хабарламаны жарамды атрибуттарымен
қабылдауға болатын болса, онда flag параметрінде 1 мәні қайтарылады,
және 0 қайтарылады, егер кӛрсетілген атрибуттарымен хабарлама әлі
болмаса.
Келесі мысалда, процестер арасында жол бойынша таратылған квадрат
матрицаны транспонирлеу үшін бұғаттамайтын операцияларды қолдану
бағдарламасы келтірілген. Алғашында әрбір процесс а массивінің n1 жолын
жеке анықтайды. Одан ары
MPI
_
ISEND
және
MPI
_
IRECV
бұғаттамайтын
операцияларының кӛмегімен барлық деректер алмасуды транспонирлеу үшін
қажеттілер инициалданады. Басталған алмасулар фонында әрбір процесс а массивіндегі
ӛзінің
жеке
бӛлігін
транспонирлейді.
Одан
кейін
MPI_WAITANE процедурасының шақыруы кӛмегімен кезкелген басқа
процестен хабарламаның келуін күтеді және бұл процестен алынған а массиві бӛлігін транспонирлейді. Бұл ӛңдеу, қашан барлық процестен
хабарлама алынбайынша жалғаса береді. Соңында берілген а массиві және
транспонирленген b массиві баспаға беріледі.