MPI-1ÀÇ ´ÜÁ¡
MPI ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ½ÃÀÛÇÑ ÈÄ ÇÁ·Î¼¼½ºÀÇ »ý¼º°ú Çùµ¿ÀûÀÎ Á¾·á°¡ °¡´É
»õ·Î »ý¼ºµÈ ÇÁ·Î¼¼½º¿Í ±âÁ¸ÀÇ MPI ÀÀ¿ëÇÁ·Î±×·¥°£ÀÇ Åë½Å ¼³Á¤ Á¦°ø
»ý¼ºÇÑ ÇÁ·Î¼¼½º°¡ ¾Æ´Ï´õ¶óµµ ÇÁ·Î¼¼½º °£ÀÇ Åë½Å ¼³Á¤ Á¦°ø
MPI ÀÀ¿ëÇÁ·Î±×·¥Àº ¿ÜºÎ ÇÁ·Î¼¼½º °ü¸®ÀÚ¿ÍÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ »õ·Î¿î ÇÁ·Î¼¼½º¸¦ ½ÃÀÛ °¡´É
MPI_COMM_SPAWN : MPI ÇÁ·Î¼¼½ºµéÀ» ½ÃÀÛÇÏ°í ±×µé°ú Åë½ÅÀ» ¼³Á¤Çϰí intercommunicator¸¦ ¹Ýȯ
MPI_COMM_SPAWN_MULTIPLE : ¼·Î ´Ù¸¥ ¹ÙÀ̳ʸ®³ª ´Ù¸¥ ÀÎÀÚÀÇ °°Àº ¹ÙÀ̳ʸ®¸¦ ½ÃÀÛÇϰí
°°Àº MPI_COMM_WORLD¿¡ ³õ°í intercommunicator¸¦ ¹Ýȯ
ÇÁ·Î¼¼½ºµéÀ» Ç¥ÇöÇϱâ À§ÇØ ±âÁ¸ÀÇ group °ü³äÀ» »ç¿ë
ÇÁ·Î¼¼½º´Â (group,rank)ÀÇ ½ÖÀ¸·Î ½Äº°
MPI_COMM_SPAWN°ú MPI_COMM_SPAWN_MULTIPLEÀº MPI¿Í MPIÀÀ¿ëÇÁ·Î±×·¥ÀÇ runtime ȯ°æ»çÀÌÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°ø
ȯ°æÀÇ ¿¹
| MPI_COMM_SPAWN(command, argv, maxprocs, info, root, comm, intercomm, array_of_errcodes) | ||
| IN | command | ½ÃÀÛÇÒ ÇÁ·Î±×·¥ À̸§(¹®ÀÚ¿) |
| IN | argv | commandÀÇ ÀÎÀÚ(¹®ÀÚ¿ ¹è¿) |
| IN | maxprocs | ½ÃÀÛÇÒ ÇÁ·Î¼¼½ºÀÇ ÃÖ´ë°ª(Á¤¼ö) |
| IN | info | runtime ½Ã½ºÅÛ¿¡°Ô ¾îµð¼ ¾î¶»°Ô ½ÃÀÛÇÒ °ÍÀÎÁö ¾Ë¸®´Â key¿Í °ªÀÇ ÁýÇÕ(handle) |
| IN | root | ÀÌÀü ÀÎÀÚ¸¦ °ËÅäÇÑ ÇÁ·Î¼¼½ºÀÇ rank(Á¤¼ö) |
| IN | comm | ÇÁ·Î¼¼½ºÀÇ group¸¦ °¡Áø intracommunicator(handle) |
| OUT | intercomm | ¿ø·¡ group°ú ÃÖ±ÙÀÇ »ý¼ºµÈ group°£ÀÇ intercommunicator(handle) |
| OUT | array_of_errcodes | ÇÁ·Î¼¼½º´ç ÇϳªÀÇ ÄÚµå(Á¤¼ö ¹è¿) |
| int MPI_Comm_spawn(char *command, char *argv[], int maxprocs, MPI_INFO info, int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]) | ||
| MPI_COMM_GET_PARENT(parent) | ||
| IN | parent | ºÎ¸ð communicator(handle) |
| int MPI_Comm_get_parent(MPI_Comm *parent) | ||
| MPI_COMM_SPAWN_MULTIPLE(count, array_of_commands, array_of_argv, array_of_maxprocs, array_of_info, root, comm, intercomm, array_of_errcodes) | ||
| IN | count | ¸í·É¾îÀÇ °³¼ö(¾çÀÇ Á¤¼ö) |
| IN | command | ½ÃÀÛÇÒ ÇÁ·Î±×·¥ À̸§(¹®ÀÚ¿ ¹è¿) |
| IN | argv | commandÀÇ ÀÎÀÚ(¹®ÀÚ¿ ¹è¿) |
| IN | maxprocs | ½ÃÀÛÇÒ ÇÁ·Î¼¼½ºÀÇ ÃÖ´ë°ª(Á¤¼ö ¹è¿) |
| IN | info | runtime ½Ã½ºÅÛ¿¡°Ô ¾îµð¼ ¾î¶»°Ô ½ÃÀÛÇÒ °ÍÀÎÁö ¾Ë¸®´Â key¿Í °ªÀÇ ÁýÇÕ(handle ¹è¿) |
| IN | root | ÀÌÀü ÀÎÀÚ¸¦ °ËÅäÇÑ ÇÁ·Î¼¼½ºÀÇ rank(Á¤¼ö) |
| IN | comm | ÇÁ·Î¼¼½ºÀÇ group¸¦ °¡Áø intracommunicator(handle) |
| OUT | intercomm | ¿ø·¡ group°ú ÃÖ±ÙÀÇ »ý¼ºµÈ group°£ÀÇ intercommunicator(handle) |
| OUT | array_of_errcodes | ÇÁ·Î¼¼½º´ç ÇϳªÀÇ ÄÚµå(Á¤¼ö ¹è¿) |
| int MPI_Comm_spawn(int count, char *array_of_commands[], char **array_of_argv[], int array_of_maxprocs, MPI_INFO info, int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]) | ||
| host | hostname |
| arch | architecture |
| wdir | ÀÛ¾÷ µð·ºÅ丮 |
| path | ½ÇÇà ÆÄÀÏÀ» ãÀ» °÷, pathÀÇ formatÀº ±¸ÇöÇÏ¸é¼ °áÁ¤ |
| file | Ãß°¡Á¤º¸°¡ ±ÔÁ¤µÈ ÆÄÀÏ À̸§ |
| soft | MPI_COMM_SPAWNÀÌ »ý¼ºÇÒ ¼ö ÀÖ´Â ÇÁ·Î¼¼½ºÀÇ ¼ö¿¡ ´ëÇÑ Çã°¡µÈ °ª |
|
manager
|
|
worker
|
communicator¸¦ °øÀ¯ÇÏÁö ¾Ê´Â MPI ÇÁ·Î¼¼½ºµéÀÇ µÎ ÁýÇÕ»çÀÌÀÇ Åë½ÅÀ» ¼³Á¤ÇÏ´Â ÇÔ¼ö
ÀÌ·¯ÇÑ ÇÔ¼ö°¡ À¯¿ëÇÑ °æ¿ì
| MPI_OPEN_PORT(info,port_name) | ||
| IN | info | ÁÖ¼Ò¸¦ ¼³Á¤Çϴµ¥ ÇÊ¿äÇÑ ±¸Çö»óÀÇ Á¤º¸(ÇÚµé) |
| OUT | port_name | »õ·Î ¼³Á¤µÈ port(¹®ÀÚ¿) |
| int MPI_Open_port(MPI_Info info, char *port_name) | ||
| MPI_CLOSE_PORT(port_name) | ||
| IN | port_name | port(¹®ÀÚ¿) |
| int MPI_Close_port(char *port_name) | ||
| MPI_COMM_ACCEPT(port_name,info,root,comm,newcomm) | ||
| IN | port_name | portÀ̸§(¹®ÀÚ¿) |
| IN | info | ±¸Çö»óÀÇ Á¤º¸(ÇÚµé) |
| IN | root | root nodeÀÇ comm¿¡¼ÀÇ rank(Á¤¼ö) |
| IN | comm | ¾îµð¿¡¼ collectiveÀÎÁö¿¡ ´ëÇÑ intracommunicator(ÇÚµé) |
| OUT | newcomm | remote groupÀ¸·Î client¿ÍÀÇ intercommunicator(ÇÚµé) |
| int MPI_Comm_accept(char *port_name,MPI_Info info,int root,MPI_Comm comm,MPI_Comm *newcomm) | ||
| MPI_COMM_CONNECT(port_name,info,root,comm,newcomm) | ||
| IN | port_name | network ÁÖ¼Ò(¹®ÀÚ¿) |
| IN | info | ±¸Çö»óÀÇ Á¤º¸(ÇÚµé) |
| IN | root | root nodeÀÇ comm¿¡¼ÀÇ rank(Á¤¼ö) |
| IN | comm | ¾îµð¿¡¼ collectiveÀÎÁö¿¡ ´ëÇÑ intracommunicator(ÇÚµé) |
| OUT | newcomm | remote groupÀ¸·Î server¿ÍÀÇ intercommunicator(ÇÚµé) |
| int MPI_Comm_connect(char *port_name,MPI_Info info,int root,MPI_Comm comm,MPI_Comm *newcomm) | ||
| MPI_PUBLISH_NAME(service_name,info,port_name) | ||
| IN | service_name | port¿¡ ÇØ´çÇÏ´Â service À̸§(¹®ÀÚ¿) |
| IN | info | ±¸Çö»óÀÇ Á¤º¸(ÇÚµé) |
| IN | port_name | port À̸§(¹®ÀÚ¿) |
| int MPI_Publish_name(char *service_name,MPI_Info info,char *port_name) | ||
| MPI_UNPUBLISH_NAME(service_name,info,port_name) | ||
| IN | service_name | port¿¡ ÇØ´çÇÏ´Â service À̸§(¹®ÀÚ¿) |
| IN | info | ±¸Çö»óÀÇ Á¤º¸(ÇÚµé) |
| IN | port_name | port À̸§(¹®ÀÚ¿) |
| int MPI_Unpublish_name(char *service_name,MPI_Info info,char *port_name) | ||
| MPI_LOOKUP_NAME(service_name,info,port_name) | ||
| IN | service_name | port¿¡ ÇØ´çÇÏ´Â service À̸§(¹®ÀÚ¿) |
| IN | info | ±¸Çö»óÀÇ Á¤º¸(ÇÚµé) |
| OUT | port_name | port À̸§(¹®ÀÚ¿) |
| int MPI_Lookup_name(char *service_name,MPI_Info info,char *port_name) | ||
|
server
|
|
client
|
|
server
|
|
client
|
|
server
|
|
client
|
| MPI_COMM_DISCONNECT(comm) | ||
| INOUT | comm | communicator(ÇÚµé) |
| int MPI_Comm_disconnect(MPI_Comm *comm) | ||
| MPI_COMM_JOIN(fd,intercomm) | ||
| IN | fd | socket ÆÄÀÏ Áö½ÃÀÚ |
| OUT | intercomm | »õ·Î¿î intercommunicator(ÇÚµé) |
| int MPI_Comm_join(int fd,MPI_Comm *intercomm) | ||