|
¸½ºß¤Î¥·¥¹¥Æ¥à¤Ï¡¢1¥×¥í¥»¥Ã¥µ¤ËÊ£¿ô¤Î¥Þ¥ë¥Á¥³¥¢¤òÅëºÜ¤·¤Æ¤¤¤ë¤¿¤á¡¢MPI ¤Î¥×¥í¥°¥é¥à³«È¯¤â 1 ¥Î¡¼¥É¾å¤ÎÊ£¿ô¤ÎÊÂÎó¥×¥í¥»¥¹¤ò»ÈÍѤ·¤Æ³«È¯¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤³¤Î¤è¤¦¤Ë¡¢1¥Î¡¼¥ÉÆâ¤Î¥í¡¼¥«¥ë¤Ê¥×¥í¥»¥¹´Ä¶¤Ç
MPI ÊÂÎó¤Î³«È¯¤¬¤Ç¤¤ë¤³¤È¤«¤é¡¢ PGI ¤Î Workstation/Server ¥é¥¤¥»¥ó¥¹¤Ë¤ª¤¤¤Æ¤â¡¢¥í¡¼¥«¥ë¥Î¡¼¥É¾å¤Ç¤ÎMPI ÍѤΥǥХ嬡¢¥×¥í¥Õ¥¡¥¤¥é¤ò´Þ¤á¤¿³«È¯´Ä¶¤òÄ󶡤·¤Þ¤¹¡£¤Ê¤ª¡¢¥í¡¼¥«¥ëʤӤ˥ê¥â¡¼¥È¡¦¥Î¡¼¥É¤â´Þ¤á¤¿ MPI ¤Î³«È¯´Ä¶¤Ï¡¢ PGI CDK ¥é¥¤¥»¥ó¥¹À½ÉʤDzÄǽ¤È¤Ê¤ê¤Þ¤¹¡£
PGI Workstation & Server À½ÉÊ¡¡¡ÊLinux Èǡˡ¡¤Ï¡¢ PGI 7.1 °Ê¹ß¡¢MPICH-1 ¥é¥¤¥Ö¥é¥ê¤ò¥Ð¥ó¥É¥ë¤·¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë¥é¥¤¥Ö¥é¥ê°ì¼°¤ò¼ÂÁõ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¡¡¤³¤ì¤Ëȼ¤¤¡¢¡¢PGI
7.1 °Ê¾å¤Î¥é¥¤¥»¥ó¥¹¤òͤ¹¤ë¤ªµÒÍͤϡ¢¤³¤ÎÀ½ÉÊ·ÏÎó¤Ë¤ª¤¤¤Æ¤â MPICH-1 ¥×¥í¥°¥é¥à¤Î MPI ÊÂÎó¥Ç¥Ð¥Ã¥®¥ó¥°Ê¤Ӥ˥ץí¥Õ¥¡¥¤¥ê¥ó¥°¤Îµ¡Ç½¤¬»ÈÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤µ¤é¤Ë
PGI 8.0 °Ê¹ß¤Ï¡¢¥·¥¹¥Æ¥àÆâ¤Ë MPICH-2¡¢HP-MPI¡¢MVAPICH-1 ¤Î¥é¥¤¥Ö¥é¥ê¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢¤³¤ì¤é¤ò¡¡-MPI=...¡¡¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤Æ¥ê¥ó¥¯¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
PGI Cluster Development Kit (CDK) À½Éʤˤϡ¢½¾Í褫¤é¡¢MPICH-1¡¢MPICH-2 ¥é¥¤¥Ö¥é¥ê¤¬¥Ð¥ó¥É¥ë¤µ¤ì¤Æ¤ª¤ê¡¢¤³¤ì¤é¤ÎMPI ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤µ¤é¤Ë¡¢PGI
CDK 7.1 °Ê¹ß¡¢¹â®ÄÌ¿®ÇÞÂÎ InfiniBand ÍѤΠMVAPICH-1.1 ¥é¥¤¥Ö¥é¥ê¤â¥Ð¥ó¥É¥ë¤µ¤ì¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤Î»°¼ïÎà¤Î
MPI ¥é¥¤¥Ö¥é¥ê¤¬»ÈÍѤǤ¤Þ¤¹¡£¤Þ¤¿¡¢HP-MPI ¥é¥¤¥Ö¥é¥ê¤òÈ÷¤¨¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤³¤ì¤â»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
WIndows ÈǤΠPGI Workstation & Server À½Éʤϡ¢ M£é£ã£ò£ï£ó£ï£æ£ô(R) HPC Pack 2008 SDK (̵½þ¡Ë¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡¢MSMPI ¥é¥¤¥Ö¥é¥ê¤ò¥³¥ó¥Ñ¥¤¥ë¡¦¥ª¥×¥·¥ç¥ó¥ì¥Ù¥ë¤Ç»ÈÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£PGI 7.1°Ê¹ß¤Î Windows
ÈǤǤϡ¢¶È³¦¤Ç½é¤á¤Æ¡¢MSMPI Âбþ¤Î MPI ÊÂÎó¥Ç¥Ð¥Ã¥¬¤È¥×¥í¥Õ¥¡¥¤¥é¤òÄ󶡤·¤Þ¤·¤¿¡£PGI ¥³¥ó¥Ñ¥¤¥é¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥í¡¼¥«¥ë¤Ê¥Î¡¼¥É¾å¤Ç¡¢MPI
³«È¯´Ä¶¤ò¨ºÂ¤Ë¹½ÃÛ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
|
|
PGI 9.0 °Ê¹ß¡¢PGI Workstation/Server ¥é¥¤¥»¥ó¥¹¤Ë¤ª¤¤¤Æ¤â¡¢°Ê²¼¤Î -Mmpi= ¥ª¥×¥·¥ç¥ó¤¬»ÈÍѤǤ¤Þ¤¹¡£Ã¢¤·¡¢MPICH1
°Ê³°¤ÎMPI ¥é¥¤¥Ö¥é¥ê¤Ï¡¢¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤´¼«¿È¤ÇMPI¥é¥¤¥Ö¥é¥ê¤ò¼ÂÁõ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
|
| Implementation |
Host Operating Systems |
-Mmpi= Option |
| MPICH1 |
Linux |
-Mmpi=mpich1 |
| MVAPICH2 |
Linux |
-Mmpi=mpich2 |
| MVAPICH |
Linux |
-Mmpi=mvapich |
| HP-MPI |
Linux |
-Mmpi=hpmpi |
| MSMPI |
Windows |
-Mmpi=msmpi |
| OpenMPI |
Linux, Mac OS X 10.5.x °Ê¾å¡¡ |
ÌÀ¼¨Åª¤Ê¥ê¥ó¥¯¤¬É¬Í× |
|
|
¡ü PGI Workstation/ServerÀ½Éʤ˥Хó¥É¥ë¤µ¤ì¤¿MPICH-1´Ä¶¤Î¥«¥¹¥¿¥Þ¥¤¥º
|
|
PGI ¥³¥ó¥Ñ¥¤¥é¤È¶¦¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿ MPICH-1 ´Ä¶¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥·¥¹¥Æ¥à¾å¡Ê¥í¡¼¥«¥ë¾å¡Ë¤Ç¤Î¤ß MPI ¼Â¹Ô¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£°ìÈ̤Ë
MPI ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Ï¡¢¥ê¥â¡¼¥È¥Î¡¼¥É¤ò´Þ¤á¤¿Ê¬»¶¥Î¡¼¥É´Ä¶¤ÇÊÂÎó¼Â¹Ô¤ò¹Ô¤¤¤Þ¤¹¤Î¤Ç¡¢MPICH ´Ä¶¤Î¥«¥¹¥¿¥Þ¥¤¥º¤¬É¬ÍפȤʤê¤Þ¤¹¡£¤½¤Î°ìÎã¤È¤·¤Æ¡¢ÊÂÎó¼Â¹Ô¤Ë»²²Ã¤¹¤ë¥Î¡¼¥É̾¤òÄêµÁ¤·¤¿¡¢machines.LINUX
¤È¸À¤¦¥Õ¥¡¥¤¥ë¤òÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£machines.LINUX ¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë¡¢MPI ¼Â¹Ô¤Ë»ÈÍѤµ¤ì¤ë¥Û¥¹¥È̾¤òÄêµÁ¤¹¤ë¤È¡¢mpirun ¥³¥Þ¥ó¥É¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤ËÄêµÁ¤µ¤ì¤¿¥Û¥¹¥È̾¤òÊÂÎó·×»»ÍѤΥΡ¼¥É¤È¤·¤Æ½çÈ֤˻ÈÍѤ·¤Þ¤¹¡£machines.LINUX
¥Õ¥¡¥¤¥ë¤Ï¡¢PGI ´Ä¶¤Ç¤Ï°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤«¤ì¤Æ¤ª¤ê¤Þ¤¹¡£$PGI ¤Ï¡¢PGI ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê̾¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ï/opt/pgi
¤È¤Ê¤ê¤Þ¤¹¡£¡¡¤Ê¤ª¡¢PGI CDK À½ÉʤǤϡ¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËɬÍפȤ¹¤ëÊÂÎó·×»»ÍѤΥΡ¼¥É̾¤ò¥»¥Ã¥È¤·¤Þ¤¹¤Î¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ê¥«¥¹¥¿¥Þ¥¤¥º¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£
¡¡¡Ê32¥Ó¥Ã¥ÈLinux´Ä¶¡Ë $PGI/linux86/9.0/mpi/mpich/share/machines.LINUX
¡¡¡Ê64¥Ó¥Ã¥ÈLinux´Ä¶¡Ë $PGI/linux86-64/9.0/mpi/mpich/share/machines.LINUX
¤³¤Î¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë¡¢°Ê²¼¤Î¤è¤¦¤Ê·ÁÂÖ¤Ç MPI ÊÂÎó¼Â¹Ô¤Ë¶¡¤µ¤ì¤ë¡Ö¥Û¥¹¥È̾¡×¤ò1¹Ô¤Å¤Ä»ØÄê¡ÊÊѹ¹¡Ë¤·¤Þ¤¹¡£ °Ê²¼¤ÎÎã¤Ç¤Ï¡¢¥í¡¼¥«¥ëʤӤ˥ê¥â¡¼¥È¤Î
3Âæ¤Î¥Û¥¹¥È̾¤¬ photon26/27/28 ¤È¸À¤¦Ì¾¾Î¤Ç¡¢¤½¤Î̾Á°¤Ë³¤¯¥³¥í¥ó°Ê¹ß¤Î¿ô»ú¤Ï¡¢¤½¤Î¥Û¥¹¥È¤ËÅëºÜ¤µ¤ì¤Æ¤¤¤ë¡Ö¥×¥í¥»¥Ã¥µ¡¦¥³¥¢¿ô¡×¤ò»ØÄꤷ¤¿Îã¤Ç¤¹¡£¥×¥í¥»¥Ã¥µ¤Î¥³¥¢¤Î¿ô¤¬£±¤Î¥·¥¹¥Æ¥à¤Î¾ì¹ç¤Ï¡¢¡É¡§¥³¥í¥ó¡É°Ê¹ß¤Ï¾Êά¤·¤Æ¤è¤¤¤Ç¤¹¡£¤Ê¤ª¡¢¤³¤ì¤é¤Î¥Û¥¹¥È¤Î
Linux ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï¡¢glibc ¥é¥¤¥Ö¥é¥ê¤Î¸ß´¹À¤ÎÌäÂê¤Ë¤è¤êƱ¤¸¤Ç¤¢¤ë¤³¤È¤¬É¬ÍפǤ¹¡£
|
photon26:2
photon27:4
photon28:4
|
|
Linux ¾å¤Ç¤Î rsh¡¢¤¢¤ë¤¤¤Ï ssh ÀßÄê»þ¤ÎÃí°Õ»ö¹à
PGI CDK ¤ÎÀâÌÀµ»ö¤ÎÃæ¤Ë¡¢ rsh¡¢¤¢¤ë¤¤¤Ï ssh ÀßÄê»þ¤ÎÃí°Õ»ö¹à¤òµ¤·¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤â¤´Í÷¤¯¤À¤µ¤¤¡£
¡ rsh ¤ÎÀßÄê
rsh ·Ï¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¢¸½ºß¤Î Linux ¤Î¥Ç¥Õ¥©¥ë¥È¡¦¥¤¥ó¥¹¥È¡¼¥ë¤Ë¤ª¤¤¤Æ¤Ï¡¢¼ÂÁõ¤µ¤ì¤Æ¤ª¤ê¤Þ¤»¤ó¡£½¾¤Ã¤Æ¡¢ÌÀ¼¨Åª¤Ë rsh/rlogin·Ï¤Î¥½¥Õ¥È¥¦¥§¥¢¤òLinux¾å¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤Î¤Û¤«¡¢¤¤¤¯¤Ä¤«¤Î
L£é£î£õ£ø ¾å¤ÎÀßÄ꤬¤¢¤ê¤Þ¤¹¡£°Ê²¼¤Ë¡¢rsh ´ØÏ¢¤ÎÀßÄê¤Ë´Ø¤·¤Æ»²¹Íµ»ö¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤Î¥ê¥ó¥¯¤òµ¤·¤Þ¤¹¡£
¡¡http://mikilab.doshisha.ac.jp/dia/research/report/2005/0913/001/report20050913001.html¡¡¡Ê£³¡¥£´¹à rsh)
¢ ssh ¤ÎÀßÄê¤Ë´Ø¤¹¤ëµ»ö¥ê¥ó¥¯
ssh ¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÇLinux¾å¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç¡¢´ðËÜŪ¤Ë¸Ä¿ÍÍѤΡָ°¡×¤ÎÀßÄê¤À¤±¹Ô¤¦¤³¤È¤Ç»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡http://www.geocities.jp/turtle_wide/tools/sshpass.html¡¡
¡¡http://www.ads.ie.u-ryukyu.ac.jp/index.php?Documents%2Ftips%2Fhp_clusters
|
|
¡ü MPI¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤¹¤ë¤¿¤á¤Î¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó
|
¡ü PGI Workstation and PGI Server À½ÉÊ (PGI 8.0 °Ê¹ß¡Ë
(Linux ÈÇ¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=mpich1 (MPICH-1¥é¥¤¥Ö¥é¥ê»ÈÍÑ¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=mpich2 (MPICH-2¥é¥¤¥Ö¥é¥ê»ÈÍÑ¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=mvapich1 (MVAPICH-£±¥é¥¤¥Ö¥é¥ê»ÈÍÑ)
pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=hpmpi (HP-MPI¥é¥¤¥Ö¥é¥ê»ÈÍÑ¡Ë
(Windows ÈÇ MPMSI : Windows HPC pack SDKÅëºÜ¤·¤¿¥·¥¹¥Æ¥à¾å¤Î¤ß¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=msmpi
(Mac OS XÈÇ ¥×¥ê¥³¥ó¥Ñ¥¤¥ë OpenMPI ¤¬ ¼ÂÁõºÑ¤ß¡Ë
¡¡OpenMPI ¤Ï¡¢Mac OS X 10.4.x (Tiger)¤Ç¤Ï¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó¡£
mpif90/mpicc -fastsse -Minfo test.f
¡ü PGI Workstation and PGI Server À½ÉÊ (PGI 7.1 °Ê¹ß¡Ë
(Linux ÈÇ MPICH-1¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=mpich1
(Windows ÈÇ MPMSI : Windows HPC pack SDKÅëºÜ¤·¤¿¥·¥¹¥Æ¥à¾å¤Î¤ß¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=msmpi
¡ü PGI Cluster Development Kit (CDK) À½ÉÊ
(PGI CDK 7.2 °Ê¹ßÄɲáË
pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=hpmpi (HP-MPI¥é¥¤¥Ö¥é¥ê»ÈÍÑ¡Ë
(PGI CDK 7.1 °Ê¹ß¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=mpich1 (MPICH-1¥é¥¤¥Ö¥é¥ê»ÈÍÑ¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=mpich2 (MPICH-2¥é¥¤¥Ö¥é¥ê»ÈÍÑ¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi=mvapich1 (MVAPICH¥é¥¤¥Ö¥é¥ê»ÈÍÑ¡Ë
(PGI CDK 7.0 °ÊÁ°¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi (MPICH-1¥é¥¤¥Ö¥é¥ê»ÈÍÑ¡Ë
¡¡pgf95/pgcc/pgCC -fastsse -Minfo test.f -Mmpi2 (MPICH-2¥é¥¤¥Ö¥é¥ê»ÈÍÑ¡Ë
- -Mmpi ¥ª¥×¥·¥ç¥ó¤Ï¡¢PGI ¥³¥ó¥Ñ¥¤¥éÀ½Éʤ˼ÂÁõ¤µ¤ì¤¿¡¢MPI ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Æ MPI ¥×¥í¥°¥é¥à¤ò¹½ÃÛ¤¹¤ëºÝ¤Ë¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤È¥ê¥ó¥¯»þ¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¡¢MPI
¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤ò¼è¤ê¹þ¤ß¡¢¥ê¥ó¥¯»þ¤Ë¤ÏŬÀÚ¤Ê MPI ¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤·¤Þ¤¹¡£PGI Workstation/Server ¥é¥¤¥»¥ó¥¹¤Ç¤Ï¡¢¤³¤Î
-Mmpi ¤Î¤ß¡¢»ØÄꤹ¤ë¡£
- Linux ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë -I$MPIDIR/include ¤ò¥»¥Ã¥È¤·¡¢¥ê¥ó¥¯¡¦¥Õ¥§¡¼¥º¤Ç¤Ï¡¢-L$MPIDIR/lib¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤ËÁÞÆþ¤·¤Þ¤¹¡£»ØÄꤵ¤ì¤¿¡¢¥µ¥Ö¥ª¥×¥·¥ç¥ó(mpich1,mpich2,mvapich1,hpmpi)
¤Ï¡¢MPICH-1 ¡¢MPICH-2¡¢MVAPICH-1¡¢HP-MPI ÄÌ¿®¥é¥¤¥Ö¥é¥ê¤Î¤É¤Á¤é¤òÁªÂò¤¹¤ë¤«¤ò·è¤á¤ë¤â¤Î¤Ç¤¹¡£MPICH ¥é¥¤¥Ö¥é¥ê¤ò¼ÂÁõ¤·¤Æ¤¤¤ë
¡Ö¥Ù¡¼¥¹¡¦¥Ç¥£¥ì¥¯¥È¥ê¡Ê$MPIDIR)¡× ¤Ï¡¢¥µ¥¤¥È¤Î¥³¥ó¥Ñ¥¤¥é½é´üÀßÄê¥Õ¥¡¥¤¥ë siterc ¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¤Þ¤¹¡£PGI ¤¬Ä󶡤¹¤ë¥×¥ê¡¦¥³¥ó¥Ñ¥¤¥ë MPICH¥é¥¤¥Ö¥é¥ê¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Î¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ë¼«Æ°Åª¤Ë¥»¥Ã¥È¤µ¤ì¤Þ¤¹¤¬¡¢¥æ¡¼¥¶¼«¿È¤¬¥Ó¥ë¥É¤·¤¿¡¢MPICH
¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¤Ç¤â¡¢MPIDIR ¤Î¤½¤Î¥Ù¡¼¥¹¡¦¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹Ì¾¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¾åµ¤Î¤è¤¦¤Ê¥ª¥×¥·¥ç¥ó¤Ç MPI ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤǤ¤Þ¤¹¡£¤Ê¤ª¡¢siterc ¥Õ¥¡¥¤¥ë¤Ï¡¢Î㤨¤Ð¡¢$PGI/linux86-64/{version}/bin
ÇÛ²¼¤Ë¸ºß¤·¤Þ¤¹¡£
- Windows(R) ¥·¥¹¥Æ¥à¾å¤Ç¤Ï¡¢-Mmpi=msmpi ¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë»þ¤Ë
-I$(CCP_INC)/include ¤ò¥»¥Ã¥È¤·¡¢¥ê¥ó¥¯¡¦¥Õ¥§¡¼¥º¤Ç¤Ï¡¢-L$(CCP_LIB**)/lib ¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤ËÁÞÆþ¤·¤Þ¤¹¡£CCP_****
´Ä¶ÊÑ¿ô¤Ï¡¢É¬¤º¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£°ìÈ̤ˡ¢Microsoft(R) HPC pack SDK ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¤¡¢¤³¤ÎÊÑ¿ô¤Ï¡¢MSMPI
¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ì½ê¤Ë¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡£
¡ÊÃí°Õ¡Ë
¥æ¡¼¥¶¼«¿È¤Ç¡¢¥Ç¥Õ¥©¥ë¥È¤Î MPI ¥Ç¥£¥ì¥¯¥È¥ê¤È¥é¥¤¥Ö¥é¥ê̾¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë¡¢ ´Ä¶ÊÑ¿ô MPIDIR ¤È MPILIBNAME ¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
|
|
¡ü MPICH-1/MPICH-2 ¤ò»ÈÍѤ¹¤ëºÝ¡¢2GB °Ê¾å¤ÎÇÛÎ󥪥֥¸¥§¥¯¥È¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Î¥³¥ó¥Ñ¥¤¥ëÊýË¡¡ÊÂ絬ÌÏ¥µ¥¤¥º¡Ë
|
|
°ìÈ̤ˡ¢MPI ¥×¥í¥°¥é¥à¤Ç»ÈÍѤµ¤ì¤ëÇÛÎóÅù¤Î¥µ¥¤¥º¤¬ 2GB °Ê¾åͤ¨¤¿¾ì¹ç¡¢PGI ¥³¥ó¥Ñ¥¤¥é¤Ç¤Ï¡¢-mcmodel=medium ¤È¸À¤¦¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤Þ¤¹¡£¥æ¡¼¥¶¡¦¥×¥í¥°¥é¥à¥µ¥¤¥É¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Î¤ß¤Ç 2GB °Ê¾å¤ÎÂн衢¤¹¤Ê¤ï¤Á¡¢64¥Ó¥Ã¥È¥¢¥É¥ì¥Ã¥·¥ó¥°Âбþ¤Ë¤Ê¤ë¤Î¤Ç¤¹¤¬¡¢¤½¤Î¥×¥í¥°¥é¥à¤Ë¥ê¥ó¥¯¤¹¤ë
MPICH ¥é¥¤¥Ö¥é¥ê¤Ï¡¢Æ°Åª¥é¥¤¥Ö¥é¥ê ¡Êshared library) ¤Ç¤¢¤ë libmpich.so ¤È libfmpich.so (*.so·Á¼°¡Ë
¤ò¥ê¥ó¥¯»þ¤ËÌÀ¼¨Åª¤Ë»ØÄꤹ¤ë¤³¤È¤¬É¬ÍפȤʤê¤Þ¤¹¡£°ìÈÌŪ¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë MPICH ¥é¥¤¥Ö¥é¥ê¤Ï¡¢ libmpich.a ¡Ê*.a ·Á¼°¡Ë¤Èɽµ¤µ¤ì¤ë¡ÖÀÅۥ饤¥Ö¥é¥ê¡×¤¬¥Ç¥Õ¥©¥ë¥È¤Î¥ê¥ó¥¯¡¦¥Õ¥¡¥¤¥ë¤È¤·¤Æ»È¤ï¤ì¤Þ¤¹¡£PGI
¥³¥ó¥Ñ¥¤¥é¤Ë¤ª¤¤¤Æ¤â¡¢-mcmodel=medium ¥ª¥×¥·¥ç¥ó¤òÉÕ¤± MPICH ¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¸«¤«¤±¾å¡¢¼Â¹Ô¥â¥¸¥å¡¼¥ë¤¬À¸À®¤Ç¤¤Þ¤¹¤¬¡¢¼Â¹Ô»þ¤Ë¥¨¥é¡¼¤È¤Ê¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢-mcmodel=medium ¤òÉÕ¤±¤¿¤È¤·¤Æ¤â¡¢¾ï¤Ë¡¢MPICH ¤Î¡ÖÀÅۡץ饤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤·¤Æ¤¤¤ë¤¿¤á¤ËÀ¸¤¸¤Þ¤¹¡£MPICH
¤Î¡ÖÀÅۥ饤¥Ö¥é¥ê¡×¤Ï¡¢2GB °Ê¾å¥¢¥É¥ì¥Ã¥·¥ó¥°¤Î¥Ï¥ó¥É¥ê¥ó¥°¤¬¤Ç¤¤Þ¤»¤ó¡£PIC ¡ÊPosition independent corde)
·Á¼°¤ÇÀ¸À®¤µ¤ì¤¿Æ°Åª¥é¥¤¥Ö¥é¥ê ¡Êshared library) ¤Ç¤¢¤ë libmpich.so¡¡Åù¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Æ¡¢¥ê¥ó¥¯¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
PGI ¥³¥ó¥Ñ¥¤¥é¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤Ë¡¢-Mmpi ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤¦¤·¤¿ÍÑÅӤǤϻÈÍѤǤ¤Þ¤»¤ó¡£²¼µ¤Ë¼¨¤¹ÊýË¡¤Ç¡¢¥³¥ó¥Ñ¥¤¥é¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËÌÀ¼¨Åª¤Ë¥é¥¤¥Ö¥é¥êÅù¤ò»ØÄꤷ¤Æ¡¢¼Â¹Ô¥â¥¸¥å¡¼¥ë¤òÀ¸À®¤·¤Þ¤¹¡£
|
PGI 7.1 °Ê¹ß¤Ç¤Ï¡¢MPICH-1 ¥é¥¤¥Ö¥é¥ê¤Ï¡¢°Ê²¼¤Î directory path ¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
(PGI CDK ¤Ç¤Ï¡¢MPICH-2 ¤â¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢**/7.1/mpi2/mpich/ ¤Ë¸ºß¤·¤Þ¤¹¡£
¤³¤³¤Ç $PGI ¤Ï¡¢PGI ´Ä¶ÊÑ¿ô¤ÎÄêµÁ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤·¤Þ¤¹¡£
¥Ç¥Õ¥©¥ë¥È¤Ï¡¢/opt/pgi ¤Ç¤¹¡£
°Ê²¼¤ÎÎã¤Ï¡¢PGI 7.1 ¥Ð¡¼¥¸¥ç¥ó¤ÎÎã¡Ê¥Ñ¥¹Ì¾¤Îµ½Ò¤Ë "7.1" ¤¬¤¢¤ê¤Þ¤¹¡Ë¤òµ¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¾¤Î¥Ð¡¼¥¸¥ç¥ó¤Î¾ì¹çŬµ¹¡¢¤³¤ÎÈÖ¹æ¤òÆÉ¤ßÂØ¤¨¤Æ¤¯¤À¤µ¤¤¡£
¡Ê64¥Ó¥Ã¥È´Ä¶ MPICH)
$PGI/linux86-64/7.1/mpi/mpich/
¡Ê32¥Ó¥Ã¥È´Ä¶ MPICH)
$PGI/linux86/7.1/mpi/mpich/
¤³¤ÎÇÛ²¼¤Ë lib/ , libso/ ¤È¸À¤¦¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ê¤Þ¤¹¡£2GB´Ä¶°ÊÆâ¤Ç¤¢¤ì¤Ð lib ÇÛ²¼¤Î
mpich ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Þ¤¹¤¬¡¢2GB ¤òͤ¨¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ libso ÇÛ²¼¤Î¤â¤Î¤ò»ÈÍѤ·¤Þ¤¹¡£
|
|
2GB ¤òͤ¨¤¿¥¢¥É¥ì¥¹¶õ´Ö¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Î¥³¥ó¥Ñ¥¤¥ëÊýË¡¡¡¡ÊÌÀ¼¨Åª¤Ë¥ª¥×¥·¥ç¥ó»ØÄꤹ¤ë¡Ë ¤òÀâÌÀ¤·¤Þ¤¹¡£
¤³¤³¤Ç¤Ï¡¢$PGI = /opt/pgi ¤È¤·¤Þ¤¹¡£-mcmodel=medium ¤Ï 2GB ¤òͤ¨¤¿¥¢¥É¥ì¥¹¶õ´Ö¤Î¥Ï¥ó¥É¥ê¥ó¥°¤¬¤¢¤ê¤¦¤ë¾ì¹ç¤Ï¡¢É¬¤ºÉ¬ÍפǤ¹¡£MPICH¥é¥¤¥Ö¥é¥ê¤Î¥¤¥ó¥¯¥ë¡¼¥É¡¦¥Ñ¥¹¤ò
-I¡¡¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤Æ¡¢¥é¥¤¥Ö¥é¥ê¤Î¸¡º÷¥Ñ¥¹¤ò -L ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤Þ¤¹¡£
|
pgf95 -fastsse -Minfo -I/opt/pgi/linux86-64/7.1/mpi/mpich/include -mcmodel=medium
test.f -L/opt/pgi/linux86-64/7.1/mpi/mpich/libso -lfmpich -lmpich
-R/opt/pgi/linux86-64/7.1/mpi/mpich/libso
°Ê¾å¤Î¥ª¥×¥·¥ç¥ó¤Î¤Ê¤«¤Ç¡¢°Ê²¼¤ÎÆó¤Ä¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡ -L/opt/pgi/linux86-64/7.1/mpi/mpich/libso ¤Ï¡¢libso ÇÛ²¼¤Î¥é¥¤¥Ö¥é¥ê¤ò
¡¡¥ê¥ó¥¯¤»¤è¤È¤¤¤¦°ÕÌ£¤È¤Ê¤ê¤Þ¤¹¡£
¢ -R/opt/pgi/linux86-64/7.1/mpi/mpich/libso¡¡¤Ï¡¢¼Â¹Ô»þ¤Î a.out ¤¬
¡¡¼Â¹Ô¤ËɬÍ×¤Ê runtime library(libmpich.so,libfmpich.so) ¤ò¸¡º÷¤¹¤ë¾ì½ê¤ò
¡¡ÌÀ¼¨Åª¤Ë¼Â¹Ô·Á¼°¥â¥¸¥å¡¼¥ë¤ÎÃæ¤ËËä¤á¹þ¤ß¡¢¼Â¹Ô»þ¤Î¸¡º÷¥Ñ¥¹¤È¤·¤Æ
¡¡»ÈÍѤ¹¤ë¤³¤È¤ò»Ø¼¨¤¹¤ë¤â¤Î¤Ç¤¹¡£É¬¤º¡¢Æþ¤ì¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡Ê¤³¤Î¥Ñ¥¹Ì¾¤Ï¡¢Í½¤áLD_LIBRARY_PATH Åù¤ÇÄêµÁ¤¹¤ë¾ì¹ç¤Ï¾Êά¤Ç¤¤Þ¤¹¡£
¡¡¡¡¤³¤³¤Ç¤Ï¡¢¥³¥ó¥Ñ¥¤¥ë¥ª¥×¥·¥ç¥ó¤ÇÁ´¤ÆÊĤ¸¤ë·Á¤ÎÊýË¡¤òÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡Ë
¼Â¹Ô¥â¥¸¥å¡¼¥ë a.out ¤¬¤Ç¤¤Þ¤·¤¿¤é¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç runtime ¥é¥¤¥Ö¥é¥ê
¤Î¥Ñ¥¹¸¡º÷¤¬ complete ¤·¤Æ¤¤¤ë¤«³Îǧ¤·¤Æ²¼¤µ¤¤¡£
¡Ê°Ê²¼¤ÎÎã¤Ï¡¢ÊÀ¼Ò¤Î¥Þ¥·¥ó¤ÎÎã¡§PGI¤ò /usr/pgi¡¡¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¾ì¹ç¤Ç¤¹¡£¡Ë
$ ldd a.out
libfmpich.so => /usr/pgi/linux86-64/7.1/mpi/mpich/libso/libfmpich.so (0x00002aaaaabc2000)
libmpich.so => /usr/pgi/linux86-64/7.1/mpi/mpich/libso/libmpich.so (0x00002aaaaacd3000)
libpgf90.so => /usr/pgi/linux86-64/7.1-1/libso/libpgf90.so (0x00002aaaaaea1000)
libpgf90_rpm1.so => /usr/pgi/linux86-64/7.1-1/libso/libpgf90_rpm1.so (0x00002aaaab260000)
libpgf902.so => /usr/pgi/linux86-64/7.1-1/libso/libpgf902.so (0x00002aaaab363000)
libpgf90rtl.so => /usr/pgi/linux86-64/7.1-1/libso/libpgf90rtl.so (0x00002aaaab475000)
libpgftnrtl.so => /usr/pgi/linux86-64/7.1-1/libso/libpgftnrtl.so (0x00002aaaab598000)
libpgc.so => /usr/pgi/linux86-64/7.1-1/libso/libpgc.so (0x00002aaaab6c7000)
librt.so.1 => /lib64/tls/librt.so.1 (0x00002aaaab81f000)
libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x00002aaaab927000)
libm.so.6 => /lib64/tls/libm.so.6 (0x00002aaaaba3d000)
libc.so.6 => /lib64/tls/libc.so.6 (0x00002aaaabb94000)
/lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)
|
|
PGI Workstation/Server ¥é¥¤¥»¥ó¥¹¤Î¾ì¹ç¡¢PGI ¥³¥ó¥Ñ¥¤¥éÊÂ¤Ó¤Ë MPICH ¥é¥¤¥Ö¥é¥ê¤Î¼ÂÁõ¤Ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Þ¥·¥ó¾å¤Ç¤·¤«¹Ô¤ï¤ì¤Þ¤»¤ó¡£¼ÂºÝ¤Ë
MPI ÊÂÎó¼Â¹Ô¤ò¾¤Î¥ê¥â¡¼¥È¥Î¡¼¥É¤â»ÈÍѤ·¤Æ¹Ô¤¦¾ì¹ç¤Ï¡¢¾åµ¤Î¼ê³¤¤Ç»ÈÍѤµ¤ì¤ë¡¢MPICH ¤Îưۥ饤¥Ö¥é¥ê ¡Êshared library)
¤Ç¤¢¤ë libmpich.so Åù¤¬¥ê¥â¡¼¥È¥Î¡¼¥É¾å¤Ç¤â¼Â¹Ô»þ¤ËɬÍפȤʤê¤Þ¤¹¡£¤³¤Î¤¿¤á¤Ë¡¢PGI ¥³¥ó¥Ñ¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Þ¥·¥ó¤«¤é¡¢°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤È¥Õ¥¡¥¤¥ë¤ò¤½¤Î¤Þ¤Þ¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Ë¥³¥Ô¡¼¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
|
°Ê²¼¤Î $PGI ¤Ï¡¢PGI ´Ä¶ÊÑ¿ô¤ÎÄêµÁ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò»Ø¤·¤Þ¤¹¡£
¥Ç¥Õ¥©¥ë¥È¤Ï¡¢/opt/pgi ¤Ç¤¹¡£
¡Ê64¥Ó¥Ã¥È´Ä¶ MPICH)
$PGI/linux86-64/7.1/mpi/mpich/libso/* Á´¤Æ¤Î¥Õ¥¡¥¤¥ë
¡Ê32¥Ó¥Ã¥È´Ä¶ MPICH)
$PGI/linux86/7.1/mpi/mpich/libso/*¡¡Á´¤Æ¤Î¥Õ¥¡¥¤¥ë
¥³¥Ô¡¼¤Ë¤ª¤¤¤Æ¤Ï¡¢Â¾¤Î¥·¥¹¥Æ¥à¾å¤Ç¤âÁ´¤¯Æ±¤¸¥Ç¥£¥ì¥¯¥È¥ê¹½À®¤òºîÀ®¤·¡¢¤½¤ÎÇÛ²¼¤Ë¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼
¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£¤Þ¤¿¡¢¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤âÃí°Õ¤·¤ÆÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
¤³¤ì¤Ë¤Æ¡¢¥ê¥â¡¼¥È¥Î¡¼¥É¤â´Þ¤á¤¿ MPICH ¼Â¹Ô´Ä¶¤¬¹½ÃۤǤ¤Þ¤¹¡£
|
¡Ê¤´»²¹Í¡Ë-mcmodel=medium ¤òÉÕ¤±¤º¤Ë 2GB °Ê¾å¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¢¤ë¥×¥í¥°¥é¥à¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È
¡¡¡¡¡¡¡¡¡¡¡¡°Ê²¼¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬¥ê¥ó¥¯»þ¤ËÀ¸¤¸¤Þ¤¹¡£
/usr/pgi/linux86-64/7.0-7/lib/libpgf90.a(initpar.o): In function `__hpf_myprocnum':
initpar.c:(.text+0x2): relocation truncated to fit: R_X86_64_PC32 against symbol `__hpf_lcpu'
defined in COMMON section in /usr/pgi/linux86-64/7.0-7/lib/libpgf90.a(initpar.o)
|
|
¡ü MPI ÊÂÎó¥×¥í¥°¥é¥à¤Î¼Â¹ÔÊýË¡
|
¡ÊMPICH-1 ¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯¡Ë¡¡
¡¡ pgf95 -fastsse -o mpihello mpihello.f -Mmpi=mpich1
¡ÊMPI-1 ÊÂÎó¼Â¹Ô¡Ë
¡¡ mpirun -np 4 ./mpihello
¡¡ Hello world! I'm node 1
¡¡Hello world! I'm node 3
¡¡ Hello world! I'm node 0
¡¡ Hello world! I'm node 2
----------------------------------------------------------------------------------
¡ÊMPICH-2 ¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯¡§ PGI CDK¡Ë¡¡
¡¡ photon27:> pgf77 -o mpihello mpihello.f -Mmpi=mpich2
¡¡ photon27:> pgcc -o myname myname.c -Mmpi=mpich2
¡ÊMPI-2 ÊÂÎó¼Â¹Ô¡Ë
¡¡ photon27:> mpdboot -n 2 -f mpd.hosts -verbose ¡ÊÆó¤Ä¤Î¥Î¡¼¥É¤Çmpd¥Ç¡¼¥â¥ó¤òµ¯Æ°¡Ë
¡¡ running mpdallexit on photon27
¡¡ LAUNCHED mpd on photon27 via
¡¡ RUNNING: mpd on photon27
¡¡ LAUNCHED mpd on photon26 via photon27
¡¡RUNNING: mpd on photon26
¡¡ photon27:> mpiexec -n 4 ./mpihello¡ÊÆó¤Ä¤Î¥Î¡¼¥É¤Î4CPU¤ò»ÈÍѤ·¤ÆmpihelloÊÂÎó¼Â¹Ô¡Ë
¡¡ Hello world! I'm node 1
¡¡Hello world! I'm node 3
¡¡ Hello world! I'm node 0
¡¡ Hello world! I'm node 2
¡¡ photon27:> mpiexec -n 4 ./myname¡¡¡ÊÆó¤Ä¤Î¥Î¡¼¥É¤Î4CPU¤ò»ÈÍѤ·¤ÆmynameÊÂÎó¼Â¹Ô¡Ë
¡¡ My name is photon27
¡¡ My name is photon26
¡¡ My name is photon26
¡¡ My name is photon27
- MPI ÊÂÎó¼Â¹Ô»þ¤Î¥×¥í¥»¥¹¿ô¤ËÀ©Ìó¤Ï¤¢¤ê¤Þ¤»¤ó¡£
- ¾åµ¤Î mpihello.f ¤È myname.c ¤Î¥½¡¼¥¹¥×¥í¥°¥é¥à¤Ï¡¢¤³¤Á¤é¤Ë¤¢¤ê¤Þ¤¹¡£
|
|
¡ü MPIÂбþ PGI PGDBG ÊÂÎó¥Ç¥Ð¥Ã¥¬¤ÎÍøÍÑ¡¡¡ÊPGI Workstation / Server ¥é¥¤¥»¥ó¥¹)
|
¡ÊMPICH-1 ¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯¡Ë
pgf95 -g test.f -Mmpi=mpich1
¡Ê¥í¡¼¥«¥ë¥Î¡¼¥É¾å¤Çưºî¤µ¤»¤ë¤¿¤á¤Î machinefile ¤ÎÀßÄê¡Ë
¡¡¥í¡¼¥«¥ë¡¦¥Þ¥·¥ó̾¤ò photon27 ¤È¤¹¤ë¡£"photon27"¤Ç 4 ¥×¥í¥»¥¹ÍÑʬ¤òµ½Ò
¡¡photon27:> cat hostfile
¡¡photon27
photon27
photon27
photon27
¡ÊPGDBG for MPICH-1 ¥Ç¥Ð¥Ã¥¬¤Îµ¯Æ°¡Ë
mpirun -np 4 -dbg=pgdbg -machinefile hostfile ./a.out
- PGI Workstation/Server¥é¥¤¥»¥ó¥¹¤Î¾ì¹ç¤Ï¡¢MPI ÊÂÎó¥Ç¥Ð¥Ã¥®¥ó¥°µ¡Ç½¤Ï¡¢PGI ¥³¥ó¥Ñ¥¤¥é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥í¡¼¥«¥ë¾å¡ÊƱ°ì¥·¥¹¥Æ¥à¾å¡Ë¤Ç¤Î 8 ¥×¥í¥»¥¹¤Þ¤Ç¤Î MPICH-1 ¥×¥í¥»¥¹¡¦¥Ç¥Ð¥Ã¥®¥ó¥°¤ËÀ©Ì󤵤ì¤Þ¤¹¡£mpirun ¤Î¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ë -machinefile ¤Ç¡¢ºÇÂç 8 ¥×¥í¥»¥¹Ê¬¤Î¥í¡¼¥«¥ë¥Û¥¹¥È̾¤òµ½Ò¤·¤¿¥Õ¥¡¥¤¥ë¤òÍѰդ·¡¢¾åµ¤Î¤è¤¦¤Ê
mpirun¥³¥Þ¥ó¥É¤Ë -dbg=pgdbg ¤ò»È¤¤¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢PGDBG ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤¬µ¯Æ°¤µ¤ì¤Þ¤¹¡£
- °ìÊý¡¢PGI CDK À½Éʤϡ¢¥í¡¼¥«¥ëʤӤ˥ê¥â¡¼¥È MPI ¥×¥í¥»¥¹¤ËÂбþ¤·¡¢¤½¤Î¾å¸Â¥×¥í¥»¥¹¿ô¤Ï¡¢¹ØÆþ¥é¥¤¥»¥ó¥¹¤Î¡ÖPGI CDK¥×¥í¥»¥¹¿ô¡×¤Þ¤ÇÂбþ¤·¤Þ¤¹¡£
|
|
¡ü MPIÂбþ PGI PGDBG ÊÂÎó¥Ç¥Ð¥Ã¥¬¤ÎÍøÍÑ¡¡¡ÊPGI CDK ¥é¥¤¥»¥ó¥¹)
|
(MPICH-1 ¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯)
pgf95 -g test.f -Mmpi=mpich1
(PGDBG for MPICH-1 ¥Ç¥Ð¥Ã¥¬¤Îµ¯Æ°)
mpirun -np 8 -dbg=pgdbg ./a.out
(MPICH-2 ¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯)
pgf95 -g test.f -Mmpi=mpich2
(PGDBG for MPICH-2 ¥Ç¥Ð¥Ã¥¬¤Îµ¯Æ°¡Ë
mpdboot -n 4 -f mpd.hosts -verbose (»ÍÂæ¤Î¥Î¡¼¥É¤Ç mpd ¥Ç¡¼¥â¥ó¤òµ¯Æ°)
mpiexec -pgi -n 8 ./a.out (8¥×¥í¥»¥¹¤ÎMPI¥Ç¥Ð¥Ã¥®¥ó¥°)
¤¢¤ë¤¤¤Ï¡¢
pgdbg -mpi:mpiexec -n 8 ./a.out
- PGI CDK¥é¥¤¥»¥ó¥¹¤Ç¤Ï¡¢¥í¡¼¥«¥ëʤӤ˥ê¥â¡¼¥È MPI ¥×¥í¥»¥¹¤ËÂбþ¤·¡¢¤½¤Î¾å¸Â¥×¥í¥»¥¹¿ô¤Ï¡¢¹ØÆþ¥é¥¤¥»¥ó¥¹¤Î¡ÖPGI CDK¥×¥í¥»¥¹¿ô¡×¤Þ¤ÇÂбþ¤·¤Þ¤¹¡£
- MPICH-1 ¤ò»ÈÍѤ·¤¿¥Ç¥Ð¥Ã¥°¤Ç¤Ï¡¢mpirun ¤Î¥ª¥×¥·¥ç¥ó¤Ë -dbg=pgdbg ¤ò»ÈÍѤ·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ¥Ç¥Ð¥Ã¥¬¤¬µ¯Æ°¤·¤Þ¤¹¡£
- MPICH-2 ¤ò»ÈÍѤ·¤¿¥Ç¥Ð¥Ã¥°¤Ç¤Ï¡¢mpiexec ¤Î¥ª¥×¥·¥ç¥ó¤È¤·¤Æ¡¢ -pgi ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤Ê¤ª¡¢-pgi ¤Ï¡¢mpiexec
¤Î¤¹¤°¸å¤Ë¤·¤Æ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£¤Ê¤ª¡¢ PGI CDK ¥½¥Õ¥È¥¦¥§¥¢¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¤È¤¤Ë¤Î¤ß¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç¥Ç¥Ð¥Ã¥¬¤¬µ¯Æ°¤Ç¤¤Þ¤¹¡£¤â¤¦°ì¤Ä¤Îµ¯Æ°ÊýË¡¤Ï¡¢pgdbg¥³¥Þ¥ó¥É¤Î¤¹¤°¸å¤Ë¡¢-mpi:<command
path>¡¡¥ª¥×¥·¥ç¥ó¤òÉÕ¤·¤¿¸å¡¢Ä̾mpiexec¤ÇɬÍפʰú¿ô¤ò»ØÄꤹ¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£¡Ê¾ÜºÙ¤Ï¡¢PGI Tools¡Ç Guide¤ò»²¾È¡Ë¡¡¢¨ GUI²èÌ̤˥½¡¼¥¹¥³¡¼¥É¤¬É½¼¨¤µ¤ì¤ë¤Þ¤Ç¡¢¾¯¡¹¡¢»þ´Ö¤¬¤«¤«¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
|

¥Õ¥ë¥µ¥¤¥º¡¦¥¤¥á¡¼¥¸
|
|
¡ü MPIÂбþ PGI PGPROF ÊÂÎó¥×¥í¥Õ¥¡¥¤¥é¤ÎÍøÍÑ¡¡¡ÊPGI Workstation/Server¡¢PGI CDK ¥é¥¤¥»¥ó¥¹¡Ë
|
(MPICH-1 ¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯) : PGI Workstation/Server ¥é¥¤¥»¥ó¥¹¤Ï¡¢MPICH1Âбþ¤Î¤ß
pgf95 -fastsse -Minfo -Mprof=mpich1,func test.f
(MPICH-1 ¼Â¹Ô¸å¡¢pgprof ¤Îµ¯Æ°)
mpirun -np 4 ./a.out
pgprof
PGI Workstation/Server¥é¥¤¥»¥ó¥¹¤Î¾ì¹ç¤Ï¡¢°Ê²¼¤Î´Ä¶¤Ç¹Ô¤¦
¡Ê¥í¡¼¥«¥ë¥Î¡¼¥É¾å¤Çưºî¤µ¤»¤ë¤¿¤á¤Î machinefile ¤ÎÀßÄê¡Ë
¡¡¥í¡¼¥«¥ë¡¦¥Þ¥·¥ó̾¤ò photon27 ¤È¤¹¤ë¡£"photon27"¤Ç 4 ¥×¥í¥»¥¹ÍÑʬ¤òµ½Ò
¡¡photon27:> cat hostfile
¡¡photon27
photon27
photon27
photon27
(MPICH-1 ¼Â¹Ô¸å¡¢pgprof ¤Îµ¯Æ°)
mpirun -np 4 -machinefile hostfile ./a.out
pgprof
(MPICH-2¡¢MVAPICH-1 ¥³¥ó¥Ñ¥¤¥ë¡¢¥ê¥ó¥¯) : PGI CDK ¥é¥¤¥»¥ó¥¹¤Î¤ß»ÈÍѲÄǽ
pgf95 -fastsse -Minfo -Mprof=mpich2,func test.f
pgf95 -fastsse -Minfo -Mprof=mvapich1,func test.f
(MPICH-2 ¼Â¹Ô¸å¡¢pgprof ¤Îµ¯Æ°)
mpdboot -n 4 -f mpd.hosts -verbose (»ÍÂæ¤Î¥Î¡¼¥É¤Ç mpd ¥Ç¡¼¥â¥ó¤òµ¯Æ°)
mpiexec -n 4 ./a.out ¡¡¡¡¡¡ (8¥×¥í¥»¥¹¤ÎMPI¥Ç¥Ð¥Ã¥®¥ó¥°)
pgprof
- PGI Workstation/Server¥é¥¤¥»¥ó¥¹¤Î¾ì¹ç¤Ï¡¢MPI ÊÂÎó¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°µ¡Ç½¤Ï¡¢PGI ¥³¥ó¥Ñ¥¤¥é¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥í¡¼¥«¥ë¾å¡ÊƱ°ì¥·¥¹¥Æ¥à¾å¡Ë¤Ç¤Î 8¥×¥í¥»¥¹¤Þ¤Ç¤Î MPICH-1 ¥×¥í¥»¥¹¤Î¼Â¹Ô¥×¥í¥Õ¥¡¥¤¥ë¤ËÀ©Ì󤵤ì¤Þ¤¹¡£PGI CDK¥é¥¤¥»¥ó¥¹¤Ç¤Ï¡¢¥í¡¼¥«¥ëʤӤ˥ê¥â¡¼¥È MPI ¥×¥í¥»¥¹¤ËÂбþ¤·¡¢¤½¤Î¾å¸Â¥×¥í¥»¥¹¿ô¤Ï¡¢¹ØÆþ¥é¥¤¥»¥ó¥¹¤Î¡ÖPGI CDK¥×¥í¥»¥¹¿ô¡×¤Þ¤ÇÂбþ¤·¤Þ¤¹¡£
- -Mprof[=[mpich1|mpich2|mvapich1]] ¡Ý¡¡PGI 7.1 °Ê¹ß¡¢¥×¥í¥Õ¥¡¥¤¥ë¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¥ê¥ó¥¯¤¹¤ë¤¿¤á¤Î
mpich1 ¤È mpich2¡¢mvapich1 ¥é¥¤¥Ö¥é¥ê̾¤ò¡¢-Mprof¥ª¥×¥·¥ç¥ó¤Ë»ØÄꤹ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£¤³¤Î¸å¡¢¥³¥ó¥Þ¤Ë°ú¤Â³¤¡¢¥×¥í¥Õ¥¡¥¤¥ë¤Îµ¡Ç½¡Êfunc|line|time)¤ò»ØÄꤹ¤ë¡£
- mpich1 ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥ëÍÑ MPICH-1 ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Þ¤¹¡£ -Mmpi=mpich1 ¤òÊñ´Þ¤·¤Þ¤¹¡£
- mpich2 ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥ëÍÑ MPICH-2 ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Þ¤¹¡£ -Mmpi=mpich2 ¤òÊñ´Þ¤·¤Þ¤¹¡£
- mvapich1 ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥ëÍÑ MVAPICH-1 ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Þ¤¹¡£ -Mmpi=mvapich1 ¤òÊñ´Þ¤·¤Þ¤¹¡£
- hpmpi ¥µ¥Ö¥ª¥×¥·¥ç¥ó¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥ëÍÑ HP-MPI ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Þ¤¹¡£ -Mmpi=hpmpi ¤òÊñ´Þ¤·¤Þ¤¹¡£
|

¡¡¡¡¡¡MPI ¥×¥í¥»¥¹Ã±°Ì¤Î¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¡Ê´Ø¿ô¥ì¥Ù¥ë¡¦¥×¥í¥Õ¥¡¥¤¥ë¡Ë
|