¥½¥Õ¥Æ¥Ã¥¯¡¦¥È¥Ã¥×¥Ú¡¼¥¸¤Ø
¥Û¡¼¥à À½ÉÊ ¥»¥­¥å¥ê¥Æ¥£¡¦¥µ¡¼¥Ó¥¹ HPC¥µ¡¼¥Ó¥¹ ¥À¥¦¥ó¥í¡¼¥É ´ë¶È¾ðÊó

PGI compiler TIPS
MPI¥×¥í¥°¥é¥à³«È¯ÍÑ¥ª¥×¥·¥ç¥ó
µ»½Ñ¾ðÊó¡¦TIPS¡¡> ¥³¥ó¥Ñ¥¤¥é¡¦¥ª¥×¥·¥ç¥ó¤Î»ÈÍÑÊýË¡ > MPI ÍÑ¥ª¥×¥·¥ç¥ó

¡¡Á´¤Æ¤Î¥³¥ó¥Ñ¥¤¥ë¡¦¥ª¥×¥·¥ç¥ó

MPI ¥×¥í¥°¥é¥à¤Î¥³¥ó¥Ñ¥¤¥ë¡õ¥ê¥ó¥¯¤Î¤¿¤á¤Î¥³¥ó¥Ñ¥¤¥ë¡¦¥ª¥×¥·¥ç¥ó

¸½ºß¤Î¥·¥¹¥Æ¥à¤Ï¡¢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 ¥×¥í¥»¥¹Ã±°Ì¤Î¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¡Ê´Ø¿ô¥ì¥Ù¥ë¡¦¥×¥í¥Õ¥¡¥¤¥ë¡Ë


<<¡¡Ìá¤ë


¡¡¥½¥Õ¥Æ¥Ã¥¯¤Ï¡¢PGI À½ÉʤθøÇ§Àµµ¬ÂåÍýŹ¤Ç¤¹

¥µ¥¤¥È¥Þ¥Ã¥× ¤ªÌä¹ç¤»
Copyright SofTek Systems Inc. All Rights Reserved.