MPI юэярюэ дну тртвфпрър рчоепв хррчьепкуок
Хкпжвмхкх дну C


Чнрмкфибьке ржтфвюмк

·         Ртфеденепке вфъиоепжрю

IN = тфедрхжвюнуежху тфръфвоокхжро, OUT = ихжвпвюнкювежху ципмзкел

buf: пвавныпэл вдфех чицефв хррчьепкл (IN)
count: мрнкаехжюр шнеоепжрю ю хррчьепкк (IN)
datatype: жкт шнеоепжрю ю хррчьепкк (IN)
dest: фвпъ явдвак пвяпваепку ю мрооипкмвжрфе comm (IN)
tag: жшъ хррчьепку (IN)
comm: мрооипкмвжрф (IN)

·         Чнрмкфибьву хкпйфрппву ржтфвюмв

int MPI_Ssend (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)

·         Чнрмкфибьву ржтфвюмв тр ържрюпрхжк

int MPI_Rsend (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)

·         Чнрмкфибьву чицефкярювппву ржтфвюмв

int MPI_Bsend (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)

·         Чнрмкфибьву хжвпдвфжпву ржтфвюмв

int MPI_Send (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)


Чнрмкфибьке трниаепку

·         Ртфеденепке вфъиоепжрю

IN = тфедрхжвюнуежху тфръфвоокхжро, OUT = ихжвпвюнкювежху ципмзкел

buf: пвавныпэл вдфех чицефв хррчьепку (OUT-явткхвппре хрдефгвпке чицефв)
count: мрнкаехжюр шнеоепжрю ю хррчьепкк (IN)
datatype: жкт шнеоепжрю ю хррчьепкк (IN)
source: фвпъ явдвак кхжрапкмв ю мрооипкмвжрфе comm (IN)
tag: жшъ хррчьепку (IN)
comm: мрооипкмвжрф (IN)
status: хжвжих мрооипкмвзкрппрър хрчэжку (OUT)

int MPI_Recv (void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status status)


Печнрмкфибьке ржтфвюмк

·         Ртфеденепке вфъиоепжрю

IN = тфедрхжвюнуежху тфръфвоокхжро, OUT = ихжвпвюнкювежху ципмзкел

buf: пвавныпэл вдфех чицефв хррчьепку (IN)
count: мрнкаехжюр шнеоепжрю ю хррчьепкк (IN)
datatype: жкт шнеоепжрю ю хррчьепкк (IN)
dest: фвпъ явдвак пвяпваепку ю мрооипкмвжрфе comm (IN)
tag: жшъ хррчьепку (IN)
comm: мрооипкмвжрф (IN)
request: кдепжкцкзкфиеж мрооипкмвзкрппре хрчэжке (OUT)

·         Печнрмкфибьке хкпйфрппэе ржтфвюмк

int MPI_Issend (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

·         Печнрмкфибьке ржтфвюмк тр ържрюпрхжк

int MPI_Irsend (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

·         Печнрмкфибьке чицефкярювппэе ржтфвюмк

int MPI_Ibsend (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

·         Печнрмкфибьке хжвпдвфжпэе ржтфвюмк

int MPI_Isend (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)


Печнрмкфибьее трниаепке

·         Ртфеденепке вфъиоепжрю

IN = тфедрхжвюнуежху тфръфвоокхжро, OUT = ихжвпвюнкювежху ципмзкел

buf: пвавныпэл вдфех чицефв хррчьепку (OUT-явткхвппре хрдефгвпке чицефв)
count: мрнкаехжюр шнеоепжрю ю хррчьепкк (IN)
datatype: жкт шнеоепжрю ю хррчьепкк (IN)
source: фвпъ явдвак кхжрапкмв ю мрооипкмвжрфе comm (IN)
tag: жшъ хррчьепку (IN)
comm: мрооипкмвжрф (IN)
request: кдепжкцкзкфиеж мрооипкмвзкрппре хрчэжке (OUT)

int MPI_Irecv (void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request)


Итфвюнепке чицефро (тфеднргеппэо трныярювженео)

·         Тфкмфетнепке чицефв

Ртфеденепке вфъиоепжрю

buf: пвавныпэл вдфех тфеднргеппрър трныярювженео чицефв (IN)
size: мрнкаехжюр чвлж ю тфеднргеппро трныярювженео чицефе (IN)

int MPI_Buffer_attach (void* buf, int size)

·         Ржденепке чицефв

Ртфеденепке вфъиоепжрю

buf: пвавныпэл вдфех тфеднргеппрър трныярювженео чицефв (OUT)
size: мрнкаехжюр чвлж ю тфеднргеппро трныярювженео чицефе (OUT)

int MPI_Buffer_detach (void** buf, int* size)


Чнрмкфибьву тфрюефмв явтрнпепку

·         Ртфеденепке вфъиоепжрю

request: кдепжкцкзкфиеж мрооипкмвзкрппре хрчэжке (INOUT)
status: хжвжих мрооипкмвзкрппрър хрчэжку (OUT)
count: мрнкаехжюр мрооипкмвзкрппэй хрчэжкл (IN)
index: кпдемх ю овххкюе явтфрхрю явюефщеппэй хрчэжкл (OUT)
incount: мрнкаехжюр мрооипкмвзкрппэй хрчэжкл (IN)
outcount: мрнкаехжюр явюефщеппэй хрчэжкл (OUT)

int MPI_Wait (MPI_Request *request, MPI_Status *status)

int MPI_Waitall (int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses)

int MPI_Waitany (int count, MPI_Request *array_of_requests, int *index, MPI_Status *status)

int MPI_Waitsome (int incount, MPI_Request *array_of_requests, int *outcount, int* array_of_indices, MPI_Status *array_of_statuses)


Печнрмкфибьву тфрюефмв явтрнпепку

·         Ртфеденепке вфъиоепжрю

request: кдепжкцкзкфиеж мрооипкмвзкрппре хрчэжке (INOUT)
flag: TRUE ехнк мрооипкмвзкрппре хрчэжке явюефщепр (OUT)
status: хжвжих мрооипкмвзкрппрър хрчэжку (OUT)
count: мрнкаехжюр мрооипкмвзкрппэй хрчэжкл (IN)
index: кпдемх ю овххкюе явтфрхрю явюефщеппэй хрчэжкл (OUT)
incount: мрнкаехжюр мрооипкмвзкрппэй хрчэжкл (IN)
outcount: мрнкаехжюр явюефщеппэй хрчэжкл (OUT)

int MPI_Test (MPI_Request *request, int *flag, MPI_Status *status)

int MPI_Testall (int count, MPI_Request *array_of_requests, int *flag, MPI_Status *array_of_statuses)

int MPI_Testany (int count, MPI_Request *array_of_requests, int *index, int *flag, MPI_Status *status)

int MPI_Testsome (int incount, MPI_Request *array_of_requests, int *outcount, int* array_of_indices, MPI_Status *array_of_statuses)


Хоехк

·         Мрочкпкфрювппэл Send/Recv (ржтфвюмв/трниаепке)

Ртфеденепке вфъиоепжрю

sendbuf: вдфех пвавнв (хжвфжрюэл вдфех) чицефв ржтфвюмк (IN)
sendcount: мрнкаехжюр шнеоепжрю ю кхйрдуьео хррчьепкк (IN)
sendtype: жкт шнеоепжрю ю кхйрдуьео хррчьепкк (IN)
dest: фвпъ ю мрооипкмвжрфе явдвак пвяпваепку (IN)
sendtag: жеъ хррчьепку дну кхйрдуьеър хррчьепку (IN)
recvbuf: вдфех пвавнв (хжвфжрюэл вдфех) чицефв трниаепку (OUT-buffer contents written)
recvcount: мрнкаехжюр шнеоепжрю юр юйрдуьео хррчьепкк (IN)
recvtype: жкт шнеоепжрю юр юйрдуьео хррчьепкк (IN)
source: фвпъ ю мрооипкмвжрфе явдвак кхжрапкмв (IN)
recvtag: жеъ хррчьепку дну юйрдуьел мрооипкмвзкк (IN)
comm: мрооипкмвжрф (IN)
status: хжвжих мрооипкмвзкрппрър хрчэжку (OUT)
buf: вдфех пвавнв (хжвфжрюэл вдфех) чицефрю ржтфвюмк к трниаепку (INOUT)

int MPI_Sendrecv (void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status)

int MPI_Sendrecv_replace (void *buf, int count, MPI_Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI_Comm comm, MPI_Status *status)

·         Втфрчвзку (ярпдкфрювпке)

Ртфеденепке вфъиоепжрю

source: фвпъ явдвак кхжрапкмв ю мрооипкмвжрфе comm (IN)
tag: жеъ хррчьепку (IN)
comm: мрооипкмвжрф (IN)
status: хжвжих мрооипкмвзкрппрър хрчэжку (OUT)
flag: TRUE ехнк мрооипкмвзкрппре хрчэжке явюефщепр (OUT)

int MPI_Probe (int source, int tag, MPI_Comm comm, MPI_Status *status)

int MPI_Iprobe (int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status)

·         Твфвоежфэ хжвжихв

                  FORTRAN                       C
               -------                       -

         source: status(MPI_SOURCE)  status.MPI_SOURCE

         tag:    status(MPI_TAG)     status.MPI_TAG

         error:  status(MPI_ERROR)   status.MPI_ERROR

·         Ртфеденепке мрнкаехжюв шнеоепжрю

Ртфеденепке вфъиоепжрю

status: хжвжих мрооипкмвзкрппрър хрчэжку (IN)
count: мрнкаехжюр шнеоепжрю ю хррчьепкк (OUT)
datatype: жкт шнеоепжрю ю хррчьепкк (IN)

int MPI_Get_count (MPI_Status *status, MPI_Datatype datatype, int *count)


Нкжефвжифв

Message Passing Interface Forum (1995) MPI: A Message Passing Interface Standard. June 12, 1995.
Web: http://www-unix.mcs.anl.gov/mpi/standard.html кнк тефеюрд шжрър дрмиоепжв пв фиххмкл уяэм