åæ§ã«ãé«æ§èœã³ã³ãã¥ãŒãã£ã³ã°ã®å Žåã ã¯ãŒã«ãŒïŒengãWorkersïŒã¯ãMATLABããã±ãŒãžïŒè±èªã®MATLABïŒã®çšèªã«åºã¥ããŠãã³ã³ãã¥ãŒãã£ã³ã°ã¯ã©ã¹ã¿ãŒå ã®åã ã®ã³ã³ãã¥ãŒã¿ãŒããã³ããã»ããµã³ã¢ãšåŒã°ããŸãã ä»ã®ã¯ã©ã¹ã¿ãŒã®ããã¥ã¡ã³ãã§ã¯ããããã®ã«ãŒãã«ãšã³ã³ãã¥ãŒã¿ãŒã¯ããŒãïŒè±èªã®ããŒãïŒãšåŒã°ãããã®ããŒãã§ã¯ããããåŒã³åºããŸãã
ã¡ããã©è€éãªïŒãšã³ãžãã¢ãªã³ã°ãšç 究ã®ããã®é«æ§èœã³ã³ãã¥ãŒãã£ã³ã°
ã¯ããã«
Habrahabrã¯ãã§ã«ãé«æ§èœãªåæ£ã³ã³ãã¥ãŒãã£ã³ã°ïŒBBïŒã«ã€ããŠå€ãã®ããšãæžããŠããŸãã freetonikã¯ãã§ã«äžŠåã³ã³ãã¥ãŒãã£ã³ã°ã®è©³çŽ°ãã€æ確ãªçŽ¹ä»ãè¡ã£ãŠãããBBã¯ããã§kelegã«ãã£ãŠæ€èšãããåæ£ã³ã³ãã¥ãŒãã£ã³ã°ã®çè«ã¯ mkosyakovã®ããŒãã§é瀺ããã Melges ã¯Cã§ã®ãããã¯ãŒã¯äžã®äžŠåã³ã³ãã¥ãŒãã£ã³ã°ã®çµéšã説æãã XakepRU ã¯Linux ããããåèªããåŸãç§ã¯ççºç©ã䜿çšããŠå·¥åŠçããã³ç§åŠçåé¡ã解決ããã®ã«åœ¹ç«ã€ããŒãã¯ãªãããšã«æ°ä»ããŸããã ããã¯ããã®ãããã¯ã«é¢ããå€ãã®æ å ±æºã®äžè¬çãªæ©èœã§ãã ããã°ã©ããŒã¯ãå²ãåœãŠãããã¿ã¹ã¯ãå®è¡ããåªããããã°ã©ã ãäœæããŸãã 倧åŠææã¯ãé«æ§èœã³ã³ãã¥ãŒãã£ã³ã°ã䟡å€ãããæ¹æ³ãšçç±ã説æããŸãã ããããç 究è ãççºç©ã䜿çšããææã§ããããšã«æ°ã¥ããšããã«ãççºç©ã®ç解ãšççºç©ã·ã¹ãã ã®çŽæ¥çãªäœ¿çšãä»äºã§çµã³ä»ããå°æ°ã®ãæ©ãã«çŽé¢ããŸãã 倧åŠã§ã¯ãåŠçã¯å®éšå®€ãå®ç¿ã§ãã®ãããªãæ©ããèŠã€ããããšãã§ããŸãã ãããŠããã®è³æããŸã å匷ããŠããªã人ã«ãšã£ãŠæçšã§ãããBBã®äœ¿çšãéå§ããã®ã«åœ¹ç«ã€ããšãæåŸ ããŠããã®ã®ã£ãããåããããšããŸãã æåã«ççºç©ã®ç°¡åãªçŽ¹ä»ãããããã®åŸãMATLABãHPCondorã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒã䜿çšããå¯èœæ§ãèæ ®ãããŸãã
é«ããã©ãŒãã³ã¹ã³ã³ãã¥ãŒãã£ã³ã°ïŒBBïŒã¯ãèšç®æéãççž®ããããããå€ãã®ã¡ã¢ãªã«ã¢ã¯ã»ã¹ãããããå¿ èŠãããå Žåã«åœ¹ç«ã¡ãŸãã ããšãã°ãããã°ã©ã ã¯1é±é以å ã«å¿ èŠãªèšç®ãå®è¡ã§ããŸãããææ¥çµæãååŸããå¿ èŠããããŸãã ãã®ããã°ã©ã ãéšåã«åå²ãããããããå¥ã ã®ããŒãã§å®è¡ãããšãçè«çã«ã¯ãé¢ä¿ããããŒãã®æ°ã«æ¯äŸããŠèšç®ãé«éåã§ããŸãã ããããããã¯çè«çã«ã®ã¿ã§ãããå®éã«ã¯ãäœããåžžã«ããã«å¹²æžããŸãïŒè©³çŽ°ã¯ããã§èª¬æããŸãã ïŒã ããã§ãããã°ã©ã ã倧éã®RAMãå¿ èŠãšããå¥ã®ã±ãŒã¹ã«èšåãã䟡å€ããããŸãã ããšãã°ãã³ã³ãã¥ãŒã¿ãŒã«ã¯4 GBã®RAMããã€ã³ã¹ããŒã«ãããŠããŸããããèšç®ã«ã¯å°ãªããšã64 GBãå¿ èŠã§ãã BBã·ã¹ãã ã§ã¯ãç¹å®ã®å®¹éã®ã¡ã¢ãªãåããŒãã«ã€ã³ã¹ããŒã«ãããŸãã ãããã£ãŠãåããŒãã§2 GBã®ã¡ã¢ãªã䜿çšå¯èœãªå Žåãããã°ã©ã ã32ã®éšåã«åå²ãããããããå¥ã ã®ããŒãã§å®è¡ããä»ã®éšåãšããåãããããŒã¿ã亀æããæçµçã«ããã°ã©ã å šäœã64ã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãGBã®ã¡ã¢ãªã
ãããã®äŸãããããããé«æ§èœã³ã³ãã¥ãŒãã£ã³ã°ã¯ãåŸæ¥ã®ã³ã³ãã¥ãŒã¿ãŒãã¯ããã«è¶ ããä»æ§ãæã€ã³ã³ãã¥ãŒã¿ãŒã·ã¹ãã ã§å®è¡ãããã³ã³ãã¥ãŒãã£ã³ã°ã§ããããšãããããŸããã ãã®æŠå¿µã¯æ¡ä»¶ä»ãã§ãããããããããæ£ç¢ºãªå®çŸ©ããããããããŸããããç§ã¯ãããèŠã€ããããšãã§ããŸããã§ããã 䞊åã®åæ£çè¬ãšãã®çµã¿åããããããŸãã
䞊åã³ã³ãã¥ãŒãã£ã³ã°ã«ã¯ãå®è¡äžã«è€æ°ã®äžŠåã§çžäºäœçšããããã»ã¹ã§ããããã°ã©ã ã®éçºãå«ãŸããŸãã ããšãã°ã倪éœé»æ± ã»ã«ã®ç¹æ§ã®ã¢ããªã³ã°ã«ã¯ããã£ãªã¢èŒžéãã»ã«å ã®å ¥å°å ã®äŒæã枩床å¹æã匵åå§çž®ãèšè¿°ãã3ã€ã®ã¢ãã«ã®çžäºäœçšãå«ãŸããŸãã ãããã£ãŠããã£ãªã¢èŒžéã匵åå§çž®ãããã³å ¥å°å ã®å åŠã¢ãã«ã§äœ¿çšãããææã®å±æçã¯æž©åºŠã«äŸåãããããã®å¹æã説æããã¢ãã«ã¯èšç®ããã»ã¹ã§çžäºäœçšããå¿ èŠããããŸãã èšç®ãé«éåããããã«ã1ã€ã®ããŒãã§ã®ãã£ãªã¢ã®èŒžéãèšè¿°ããã¢ãã«ã®ã³ãŒããä»ã®ããŒãã§ã®å ã®äŒæãæ åœããã³ãŒãã3çªç®ã®ããŒãã§ã®æž©åºŠã¢ãã«ãªã©ãå®è¡ã§ããŸãã ã€ãŸããããŒãã¯çžäºäœçšããèšç®ã䞊è¡ããŠå®è¡ããŸãã
åæ£ã³ã³ãã¥ãŒãã£ã³ã°ã§ã¯ãçžäºäœçšããªãè€æ°ã®ããŒããšããã»ã¹ã䜿çšããŸãã ãã®å Žåãéåžžã«å€ãã®å Žåãåãã³ãŒããç°ãªãããŒãã§å®è¡ãããŸãã ããšãã°ã倪éœé»æ± ã®åãã»ã«ã®äŒžã³ãšå§çž®ã枩床ã®é¢æ°ãšããŠè©äŸ¡ããå¿ èŠããããŸãã ãã®å Žåã枩床ã¯ã¢ãã«ã®å ¥åãã©ã¡ãŒã¿ãŒã§ããããã®ã¢ãã«ã®åãããã°ã©ã ã³ãŒããç°ãªã枩床å€ã®ç°ãªãããŒãã§å®è¡ã§ããŸãã
åæ£èšç®ãšäžŠåèšç®ã®ã©ã¡ããéžæãããã¯ãèšç®ã«äœ¿çšããããã°ã©ã ã³ãŒãã®æ§æãç©çã¢ãã«èªäœãããã³ãšã³ããŠãŒã¶ãŒã®ççºæ§ã·ã¹ãã ã®å¯çšæ§ã«ãã£ãŠç°ãªããŸãã ãã®èšäºã®åŸåã«ã€ããŠ
- ãšã³ããŠãŒã¶ãŒãBBã·ã¹ãã ãšå¯Ÿè©±ããæ¹æ³ã
- 䜿çšå¯èœãªççºæ§ã·ã¹ãã ãšãã®å¶éã¯äœã§ããïŒ
- CondorãœãããŠã§ã¢ãšMATLABã䜿çšããŠæ§ç¯ãããã¯ã©ã¹ã¿ãŒã«ã€ããŠïŒäœæè ããããã䜿çšããçµéšããããããéžæã¯ãããã«ããã£ãïŒã
- ã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãšã°ãªããã«ã€ããŠå°ãã
- ãããŠãã©ã®ããã«ãã®ãã¹ãŠã®çµæžã䜿çšã§ãããã
é«æ§èœã³ã³ãã¥ãŒãã£ã³ã°ãšã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³
ãŠãŒã¶ãŒãBBã·ã¹ãã ããªã¢ãŒãã§äœ¿çšããå Žåã次ã®ããšãè¡ãã³ã³ãã¥ãŒã¿ãŒãå¿ èŠã§ãã
- ççºæ§ã·ã¹ãã ã§èµ·åããããã®ããã°ã©ã ãæºåããŸãã
- BBã·ã¹ãã ã§èšç®ãå®è¡ããããBBã·ã¹ãã ã«æ¥ç¶ããŠããã°ã©ã ãå®è¡ããŸãã
- 圌ã¯èšç®ã®çµæãåŠçããŸãã
ããã§ã®å€ãã¯ããŠãŒã¶ãŒã®å人çãªå¥œã¿ãå¿ èŠãªãœãããŠã§ã¢ã®å¯çšæ§ãããã³ãã®ä»ã®èŠä»¶ã«äŸåããŸãã ããã°ã©ãã³ã°èšèªã皌åäžã®ã³ã³ãã¥ãŒã¿ãŒãšã¯ã©ã¹ã¿ãŒã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãã¯ã©ã¹ã¿ãŒã®ç·šæã«äœ¿çšãããœãããŠã§ã¢ã©ã€ãã©ãªãšãœãããŠã§ã¢ãéžæã§ããŸãã å人çã«ãç§ã¯åžžã«MPIãšopenMP for Linuxã䜿çšããŠCãŸãã¯C ++ã§ããã°ã©ã ãäœæããããšããŸãïŒ ãããšããã§ã¯ããããã®é«æ§èœã³ã³ãã¥ãŒãã£ã³ã°ã®ãããšããã®äž»é¡ã«é¢ããè¯ãèšäºããã§ã«ãããŸãïŒããããŸããŸãªçç±ã§ãããåžžã«æ©èœãããšã¯éããŸããã å žåçãªç¶æ³-äžåžã¯éææ¥ã«æ¥ãŠãç§ãã¡ã¯ç·æ¥ã«çµæãå¿ èŠã ãšèšããŸãã æåŸã«ãå¿ èŠãªèšç®çšã®ããã°ã©ã ãMATLABã§äœæããŸãã ãŸããçµæãããéãååŸããããã«ããã®ããã°ã©ã ã¯æææ¥ãŸã§çµç¹ã®MATLABã¯ã©ã¹ã¿ãŒã§å®è¡ãããŸãã
ãŠãŒã¶ãŒã®äœæ¥ã³ã³ãã¥ãŒã¿ãŒã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«é¢ããŠã¯ãã»ãšãã©ã®å ŽåãBBã·ã¹ãã ã«ã€ã³ã¹ããŒã«ãããŠããåããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšãã®é åžãããã䜿çšããã®ãæã䟿å©ã§ãã çŸåšãã»ãšãã©ã®BBã·ã¹ãã ã¯ããŸããŸãªLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãå®è¡ããŠããŸãã Scientific Linuxãã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ãããŠããå Žåãåãã·ã¹ãã ã皌åäžã®ã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ããæ¹ãç°¡åã§ããããã«ãããä»åŸã³ãã³ããšæ··åãããããšããªããªããŸãã MATLABããŒã¹ã®ã¯ã©ã¹ã¿ãŒã䜿çšããå Žåããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éžæã¯éèŠã§ã¯ãããŸãããMATLABã§èšè¿°ãããããã°ã©ã ã¯ãä»»æã®OSïŒãã¡ãããMATLABã®ã€ã³ã¹ããŒã«ã«äœ¿çšå¯èœïŒãæèŒããã³ã³ãã¥ãŒã¿ãŒã§å®è¡ã§ããŸãã
MS Windowsãã¡ããªãŒOSãã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ãããŠãããBBã·ã¹ãã ãLinux OSäžã«æ§ç¯ãããŠããæ··åã¹ããŒã ãéžæããå Žåããªã¢ãŒãã·ã¹ãã ïŒPuTTYãªã©ïŒã«æ¥ç¶ããã¯ã©ã€ã¢ã³ããšãXãµãŒããŒãŸãã¯ããã«Cygwinã«ãªããŸãã ããŒã«ã«ãœãããŠã§ã¢ç®¡çè ã¯ããœãããŠã§ã¢ã®éžæãåžžã«æ¯æŽããŸãã
éèŠãªç¹ïŒBBã·ã¹ãã ã¯éåžžãã€ã³ã¿ã©ã¯ãã£ããªäœæ¥ïŒå®è¡äžã«ããŒã¿å ¥åãèŠæ±ããããŒã¹ãããŒã¯ãããŠã¹æäœãªã©ã®ä»ã®ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãåŸ ã€ïŒãå¿ èŠãšããããã°ã©ã ããµããŒãããªãããéå®çã«ãµããŒãããŸãã åæ§ã«ãã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã«é¢ããŠã¯ãã»ãšãã©ã®å Žåããã®äœ¿çšã¯æäŸãããŠããããBBã·ã¹ãã ã¯ã³ãã³ãã©ã€ã³ããããã¹ãã¢ãŒãã§äœ¿çšãããŸãïŒäŸå€ã¯åãMATLABã§ãïŒã BBã·ã¹ãã ã§ããã°ã©ã ã䜿çšããåã«ãããããããã°ããŠããå€æããBBã·ã¹ãã ã§å®è¡ã§ããããã«å€æããããã«äººéã®ä»å ¥ãªãã«èšç®ãå®è¡ããçµæããã¡ã€ã«ã«ä¿åããããå¥ã®æ¹æ³ã§ãŠãŒã¶ãŒã«è»¢éããå¿ èŠããããŸãã
äž»ãªèšç®ã¯ãŸã BBã·ã¹ãã ã§å®è¡ãããäºå®ã§ããããããŠãŒã¶ãŒã®ã³ã³ãã¥ãŒã¿ãŒããã©ãŒãã³ã¹ã®èŠä»¶ã¯æå°éã§ãã èšç®ã®ã¹ããŒã¿ã¹ãç£èŠããæå°æ§æã®ã³ã³ãã¥ãŒã¿ãŒãšæºåž¯é»è©±ããèšç®ãéå§ããã³äžæã§ããŸãã
äžéšã®BBã·ã¹ãã
äžè¬çãªã¬ãã¥ãŒ
ã»ãšãã©ã®å Žåãã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãã³ã³ãã¥ãŒã¿ãŒã¯ã©ã¹ã¿ãŒãããã³ã°ãªãããççºç©ã«äœ¿çšãããŸãã
ã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒã¯ãããã©ãŒãã³ã¹ã䜿çšå¯èœãªRAMã䜿çšå¯èœãªããã»ããµãŒæ°ãªã©ã®ãã©ã¡ãŒã¿ãŒã®ç¹ã§ãæ¢åã®ã³ã³ãã¥ãŒã¿ãŒã®ã»ãšãã©ãå€§å¹ ã«è¶ ããã³ã³ãã¥ãŒã¿ãŒã·ã¹ãã ã§ãã ãããã®è©³çŽ°ã«ã€ããŠã¯ãäžçã§æãçç£æ§ã®é«ã500å°ã®ã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒã®ãªã¹ããåç §ã§ããŸãã
ã³ã³ãã¥ãŒã¿ãŒã¯ã©ã¹ã¿ãŒã¯ãå©çšå¯èœãªã¡ã¢ãªãšäœæ¥ã«é¢äžããããã»ããµãŒã®æ°ãå¢ããããã«çžäºã«å¯Ÿè©±ã§ããã³ã³ãã¥ãŒã¿ãŒã®ã°ã«ãŒãã§ãã ã»ãšãã©ã®å Žåããã®ãããªã¯ã©ã¹ã¿ãŒã¯ç 究ã°ã«ãŒããŸãã¯çµç¹å ã«æ§ç¯ãããŸãã
ã°ãªããã¯ãããŸããŸãªéœåžãåœã«æ£åšããã¯ã©ã¹ã¿ãŒãšã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒã®ã°ã«ãŒãã§ãã ããšãã°ãèšç®ã¿ã¹ã¯ãã¹ã€ã¹ã®ãµãŒããŒã«è»¢éã§ããŸããããã€ãããã©ã³ã¹ããŸãã¯ããŒã©ã³ãã®ã¯ã©ã¹ã¿ãŒã§å®è¡ãããŸãã ã°ãªããã®æãæåãªäŸã¯ããšãŒãããã®EGEEã°ãªããã·ã¹ãã ã§ããããã¯ãçŽ4äžã®ããã»ããµãšæ°ãã¿ãã€ãã®ãã£ã¹ã¯ã¹ããŒã¹ãçµã¿åããããã®ã§ãã
ãšã³ããŠãŒã¶ãŒãã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãšã¯ã©ã¹ã¿ãŒãåºå¥ããããšã¯ããã°ãã°å°é£ãŸãã¯äžå¯èœã§ãã 以äžã«3ã€ã®äŸã瀺ããŸãã
1.ã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒããé«ééä¿¡ãããã¯ãŒã¯ãä»ããŠäºãã«æ¥ç¶ãããã³ã³ãã¥ãŒã¿ãŒã®ã°ã«ãŒããšåŒã°ããããšã¯çãããããŸãããããã¯ãæ¬è³ªçã«åãã³ã³ãã¥ãŒã¿ãŒã®ã¯ã©ã¹ã¿ãŒã§ãã
2.åæã«ãHPCondorãœãããŠã§ã¢ã«åºã¥ããŠæ§ç¯ãããã¯ã©ã¹ã¿ãŒããããŸããããã¯ãããŒã«ã«ãããã¯ãŒã¯ïŒå€ãã®å Žåäœéãããã¯ãŒã¯ïŒäžã®ãµãŒããŒãšå¯Ÿè©±ããã³ã³ãã¥ãŒã¿ãŒã®ã°ã«ãŒãã§ãããããã®ãããªã¯ã©ã¹ã¿ãŒãã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãšåŒã¶åæ°ã¯ãããŸããã
3.ã³ã³ãã¥ãŒãã£ã³ã°ã·ã¹ãã å šäœããããã¯ãŒã¯å šäœã«æ£åšããããã®ã·ã¹ãã ãŠãããã«åãŸãNVIDIAã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒïŒéåžžã®ãªãã£ã¹ã³ã³ãã¥ãŒã¿ãŒããã倧ããªã·ã¹ãã ãŠããããæã£ãŠããïŒããããŸãã
äŸ2ãšäŸ3ããšããšãã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãšã¯ã©ã¹ã¿ãŒã®éãã¯æããã§ãã æåãš3çªç®ã§ã¯ãç¹å¥ãªãã¡ã»ããã¯è¡šç€ºãããŸããããã®2ã€ã®äŸã®äž¡æ¹ã®ã·ã¹ãã ã¯ãã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãšåŒã°ããŸãã
HPCondorã¯ã©ã¹ã¿ãŒïŒCondorã2012幎以é-HTCondorïŒ
ãã®ãããªã¯ã©ã¹ã¿ãŒãç·šæããããã®ãœãããŠã§ã¢ã¯ããããžã§ã¯ãããŒãžããç¡æã§ããŠã³ããŒãã§ããŸã ã ãã®ã¿ã€ãã®ã¯ã©ã¹ã¿ãŒã¯ãäœæ¥ã³ã³ãã¥ãŒã¿ãŒãšãµãŒããŒã§æ§æãããŸãã Dunordavindã¯ãã³ã¡ã³ãã«å¯ŸããŠéèŠãªæ確åãè¡ããŸããããã®ãããªBBã·ã¹ãã ã¯ãå€å žçãªæå³ã§ã®ã¯ã©ã¹ã¿ãŒã§ã¯ãªãããªãœãŒã¹ãããŒãžã£ãŒã§ãïŒãã ããããã¹ãå šäœãæžãæããªãããã«ããšã«ããã¯ã©ã¹ã¿ãŒãšåŒã³ãŸãïŒã ãã®ãããªã¯ã©ã¹ã¿ãŒã®å©ç¹ã¯ãã¯ã©ã€ã¢ã³ããœãããŠã§ã¢ãã€ã³ã¹ããŒã«ãããŠããéåžžã®ãªãã£ã¹ãç 究宀ã®ã³ã³ãã¥ãŒã¿ãŒãäœæ¥ã³ã³ãã¥ãŒã¿ãŒãšããŠæ©èœã§ããããšã§ãã æŒéããããã®ã³ã³ãã¥ãŒã¿ãŒã¯åºæ¬çãªäœæ¥ã«äœ¿çšã§ããŸããã䜿çšãããããšïŒèšå®ã«ãã£ãŠç°ãªããŸãïŒããµãŒããŒã¯ãããã®ã³ã³ãã¥ãŒã¿ãŒã§ä»¥åã«è»¢éãããã¿ã¹ã¯ã®å®è¡ãéå§ããŸãã ãã®ã¯ã©ã¹ã¿ãŒã䜿çšããããã®åææ¡ä»¶ã¯ããŠãŒã¶ãŒãã¿ã¹ã¯ã転éããã³ã³ãã¥ãŒã¿ãŒã«ã¯ã©ã€ã¢ã³ããœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããããšã§ãã ã€ãŸãããããã®ã³ã³ãã¥ãŒã¿ãŒã¯ã¯ã©ã¹ã¿ãŒã®äžéšã§ãªããã°ãªããŸããã ãµããŒããããŠãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒMS WindowsãMacOSãLinuxã
ããã°ã©ã ãå®è¡ããã«ã¯ããã®ããã°ã©ã ãç®çã®OSã®å®è¡å¯èœã³ãŒãã«ã³ã³ãã€ã«ããå¿ èŠãªã©ã€ãã©ãªãšãšãã«ãµãŒããŒã«è»¢éããå¿ èŠããããŸãã ããã¯ãMATLABçšã«äœæãããããã°ã©ã ã«ãé©çšãããŸããMATLABã«ä»å±ã®Cã³ã³ãã€ã©ã䜿çšããŠã³ã³ãã€ã«ããå¿ èŠããããŸãã ãã®ããã°ã©ã ãã¯ã©ã¹ã¿ãŒã§å®è¡ããã«ã¯ãããã°ã©ã ã®ã©ã³ã¿ã€ã ã®èŠä»¶ïŒRAMãµã€ãºããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãªã©ïŒããã³ãã®ããã°ã©ã ã§è»¢éããããã¡ã€ã«ã®ãªã¹ããæžãçããç°¡åãªæ§æã¹ã¯ãªãããäœæããå¿ èŠããããŸãã äŸãšããŠããããã®ãã¡ã€ã«ã®1ã€ããã®ããã¹ãã以äžã«ç€ºããŸãïŒcost_top.txtãšåŒã³ãŸãããïŒïŒ
universe = vanilla executable = cost_top.bat transfer_input_files = cost_top.exe output = dump.txt error = errdump.txt log = foo.log requirements = (OpSys == "WINNT51") rank = kflops transfer_files = ALWAYS queue
ãã®ãã¡ã€ã«ã¯ãå®è¡å¯èœããã°ã©ã ã®ååãã¯ã©ã¹ã¿ã«è»¢éãããã¡ã€ã«ãããã°ã©ã ã®çµæãæžã蟌ããã¡ã€ã«ããšã©ãŒã¡ãã»ãŒãžãè¿œå ã¡ãã»ãŒãžãªã©ã®éèŠãªãã€ã³ããã説æããããã®ã§ããããŒãã®OSãšãã®ããã©ãŒãã³ã¹ãããã³ãã¡ã€ã«ã転éãããã©ããã«ãã£ãŠæ瀺ãããèŠä»¶ã§ãã
ããŒãã§å®è¡ãããcost_top.batãã¡ã€ã«ã®å 容ïŒ
path=c:\windows\system32;c:\windows;c:\windows\system;p:\matlab6\bin\win32 cost_top.exe
ã»ãšãã©ã®å Žåããã®ã¹ã¯ãªããã®æåã®è¡ã¯å¿ èŠãªãã¹ãç°å¢å€æ°ã«è¿œå ãã2çªç®ã®è¡ã¯å¿ èŠãªããã°ã©ã ãèµ·åããããšãç解ããã§ãããã
ã¿ã¹ã¯ãã¯ã©ã¹ã¿ãŒãµãŒããŒã«è»¢éããã«ã¯ãã³ãã³ãã©ã€ã³ã§ãcondor_submit cost_top.txtããšå ¥åããå¿ èŠããããŸãã ãã®åŸãã¿ã¹ã¯ã¯ãã¥ãŒã«å ¥ãããããã°ãããããšãµãŒããŒã¯ã¯ã©ã€ã¢ã³ãã³ã³ãã¥ãŒã¿ãŒã§ã¿ã¹ã¯ãå®è¡ããæºåãæŽããŸãã ãã¥ãŒã§ã®åŸ æ©æéã¯ãåãŠãŒã¶ãŒã®åªå é äœãšã¯ã©ã¹ã¿ãŒã®è² è·ã«äŸåãããµãŒããŒã¿ã¹ã¯ãã©ã³ã·ã³ã°ã·ã¹ãã ã«ãã£ãŠéžæãããŸãã
ãã®ã¿ã€ãã®ã¯ã©ã¹ã¿ãŒã«ã¯å¶éããããŸãã
- ã¿ã¹ã¯ããã¥ãŒã«å ¥ããããŠããèšç®ãçµäºãããŸã§ããµãŒããŒãšã¯ã©ã€ã¢ã³ãã¯ãã¡ã€ã«ã亀æãããããã¯ã©ã€ã¢ã³ãã³ã³ãã¥ãŒã¿ãŒã®é»æºãå ¥ããŠããŒã«ã«ãããã¯ãŒã¯ã«æ¥ç¶ããå¿ èŠããããŸãã
- ãã®ã¯ã©ã¹ã¿ãŒã¯ãåæ£ççºã¿ã¹ã¯ã®ã¿ããµããŒãããŸãã
- ãµãŒãããŒãã£ã®ããã°ã©ã ïŒèªåã§äœæããŠã³ããŒãããã®ãé€ãïŒããã³å€ãã®ã©ã€ãã©ãªãå¿ èŠãšããããã°ã©ã ã䜿çšããã®ã¯å°é£ã§ãã
MATLABã¯ã©ã¹ã¿ãŒ
MATLABèªäœãã¯ã©ã¹ã¿ãŒãäœæã§ããŸã ã ãããè¡ãã«ã¯ãé©åãªã©ã€ãã©ãªãšãµãŒããŒïŒDistributed Computing ToolboxãšDistributed Computing ServerïŒãå¿ èŠã§ãã çŸåšãææ°ã®ã³ã³ãã¥ãŒã¿ãŒããã»ããµã«ã¯è€æ°ã®ã³ã¢ããããMATLABã¯äœ¿çšäžã®ã³ã³ãã¥ãŒã¿ãŒã«åºã¥ããŠç¬èªã®ããŒã«ã«ã¯ã©ã¹ã¿ãŒãçŽæ¥å±éã§ããŸãã ãã®ã¯ã©ã¹ã¿ãŒæ§æã¯ãããŒã«ã«æ§æãšåŒã°ããŸãã ã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãã¯ã©ã¹ã¿ãŒãªã©ã®ããæ·±å»ãªBBã·ã¹ãã ã§ããã°ã©ã ãéå§ããåã«ããã°ã©ã ããã¹ãããå¿ èŠãããå Žåãªã©ãããã»ã©åŽåããããã«èšç®ãå°ãã¹ããŒãã¢ãããããå Žåã«äŸ¿å©ã§ãã
ããŒã«ã«æ§æã«å ããŠãä»ã®æ§æããããŸãã ããšãã°ãããŒã«ã«ãããã¯ãŒã¯å ã®ã³ã³ãã¥ãŒã¿ãŒã®ã°ã«ãŒããçµåããã¯ã©ã¹ã¿ãŒã®å Žåãã¯ã©ã¹ã¿ãŒãŸãã¯ã°ãªããå ã®ã³ã³ãã¥ãŒã¿ãŒã®ã°ã«ãŒãã 管çè ã«æ©äŒããããæ ãè ã§ãªãå ŽåãéåžžãMATLABã¯ã©ã¹ã¿ãŒãã»ããã¢ãããããŠãŒã¶ãŒããã®ãããªã¯ã©ã¹ã¿ãŒãç°¡åã«äœ¿çšã§ããããã«ãã¬ãŒãã³ã°ã³ãŒã¹ãå®æœããŸãã
MATLABã¯ã©ã¹ã¿ãŒã®å©ç¹ïŒ
- èšç®ã®ã¿ã¹ã¯ã®è»¢éå ã®ã¯ã©ã€ã¢ã³ãã³ã³ãã¥ãŒã¿ãŒã¯ãã¿ã¹ã¯ã®è»¢éåŸã«ãªãã«ããããšãã§ãããŠãŒã¶ãŒã¯åŸã§èšç®çµæãååŸã§ããŸãã
- åæ£ã³ã³ãã¥ãŒãã£ã³ã°ãšäžŠåã³ã³ãã¥ãŒãã£ã³ã°ã®äž¡æ¹ã®ã¿ã¹ã¯ãå®è¡ã§ããŸãã
- ããã°ã©ãã³ã°èšèªã¯ãã§ã«éŠŽæã¿ããããããMATLABãŠãŒã¶ãŒã¯ãã®ãããªã¯ã©ã¹ã¿ãŒã®äœ¿çšãç°¡åã«éå§ã§ããŸãã
- ããã°ã©ã ã¯ã³ã³ãã€ã«ãå¿ èŠãšããŸããã
- ãforããµã€ã¯ã«ã®æŒç®åãæ¢ã«ååšãã䞊åèšç®ãžã®ããã°ã©ã ã®é©å¿ã¯éåžžã«ç°¡åã§ã-ãã®ãããªæŒç®åããparforãã«çœ®ãæããã¯ã©ã¹ã¿ãŒãåæåããŠäœæ¥çµäºåŸã«ã¯ã©ã¹ã¿ãŒãéããããã«æ°è¡ãè¿œå ããã ãã§ãã
ããšãã°ãparforã䜿çšããªãã³ãŒãïŒ
clear all; Na=4:50; Nc=4:30; for i1=1:length(Na), for i2=1:length(Nc), [out1,out2]=fom(Na(i1),Na(i1),Nc(i2),0) ; end end save FigOM.dat FigOM -ascii save dF.dat dF -ascii exit
ãããŠä»ãparforãš4ã€ã®ããŒãã䜿çšããåãããšïŒ
clear all; matlabpool open 4 Na=4:50; Nc=4:30; for i1=1:length(Na), parfor i2=1:length(Nc), [out1,out2]=fom(Na(i1),Na(i1),Nc(i2),0) end end matlabpool close save FigOM.dat FigOM -ascii save dF.dat dF -ascii exit
çæïŒ
- MATLABã¯ç¡æã®è£œåã§ã¯ãªããäžéšã®ãŠãŒã¶ãŒã«ãšã£ãŠã¯æé ãªäŸ¡æ Œã§ã¯ãããŸããã
- ã¯ã©ã¹ã¿ãŒãœãããŠã§ã¢ã«ã¯è² è·åæ£ããã°ã©ã ãä»å±ããŠããªãããïŒåå¥ã«ã€ã³ã¹ããŒã«ã§ããŸãïŒãäžéšã®ãŠãŒã¶ãŒããã¹ãŠã®ã¯ã©ã¹ã¿ãŒããŒããå æããä»ã®ãŠãŒã¶ãŒã®ã¢ã¯ã»ã¹ããããã¯ããå ŽåããããŸãã
ã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãšã°ãªãã
åè¿°ã®ããã«ãã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãã³ã³ãã¥ãŒãã£ã³ã°ã¯ã©ã¹ã¿ãŒãã°ãªããã®éããèŠã€ããã®ã¯é£ããå ŽåããããŸãã ã¿ãŒããã«ãŠã£ã³ããŠã®ãã¡ãåŽããã¯ããã¹ãŠåãããã«èŠããŸãã ãããã¯ãã¹ãŠãBBã·ã¹ãã ã«å€æ°ã®ããã»ããµãšã¡ã¢ãªãåããŠããŸãã ã€ã³ã¹ããŒã«ããããœãããŠã§ã¢ã®äžã«ã¯ãã³ã³ãã€ã©ãšMPIããã³OpenMPã©ã€ãã©ãªããããŸãã ããŒããšãã®ã¡ã¢ãªã®ã°ã«ãŒãã®äœ¿çšããµããŒãããMATLABããã³ãã®ä»ã®ããã°ã©ã ãã€ã³ã¹ããŒã«ãããå ŽåããããŸãã
æãäžè¬çãªæäœã¢ã«ãŽãªãºã ã¯æ¬¡ã®ãšããã§ãã
- ãŠãŒã¶ãŒã¯ãã³ãã³ãã®äžéšã察話çã«å®è¡ããããèšç®ãå¶åŸ¡ãããã§ããç¹å¥ãªããŒãïŒè±èªã®ãã°ã€ã³ããŒãïŒã«ïŒéåžžSSHçµç±ã§ïŒæ¥ç¶ããŸãã
- gccã³ã³ãã€ã©ãŒãMPIã©ã€ãã©ãªãŒãªã©ãç¹å®ã®ã¿ã¹ã¯ãå®è¡ããããã«å¿ èŠãªã¢ãžã¥ãŒã«ãããŒãããŸãã
- å¿ èŠã«å¿ããŠãå¿ èŠãªã©ã€ãã©ãªããµããŒãããŠããã°ã©ã ãã³ã³ãã€ã«ããŸãã
- HPCondorã¯ã©ã¹ã¿ãŒãšåæ§ã«ãããã°ã©ã ãå®è¡ããããã®èšå®ãã¡ã€ã«ãšã³ãã³ãïŒãžã§ããµãããã·ã§ã³ãã¡ã€ã«ïŒãæºåããŸãã
- ã³ãã³ã 'qsub file_name'ã䜿çšããŠãã®èšå®ãšã³ãã³ãã®ãã¡ã€ã«ãå®è¡ããããã«ãã¥ãŒã«è»¢éããŸãã
- ããã°ã©ã ãå®äºãããšããã«ããŠãŒã¶ãŒã¯ãã®å®è¡çµæãååŸã§ããŸãïŒãã¡ã€ã«ã«ä¿åããæ¹ãç°¡åã§ãïŒã
èšå®ãã¡ã€ã«ã¯HPCondorã¯ã©ã¹ã¿ãŒãã¡ã€ã«ã«äŒŒãŠããŸãã ããšãã°ãparforã䜿çšããŠäžèšã®äŸãå®è¡ããã«ã¯ã次ã®ãã¡ã€ã«ã䜿çšã§ããŸãã
#!/bin/sh #$ -l h_rt=10:00:00 /usr/local/bin/matlab /home/el/calmap.m
2è¡ç®ã¯ãã®ã¿ã¹ã¯ãå®äºããã®ã«å¿ èŠãªæ倧æéã瀺ãã3è¡ç®ã¯ãŠãŒã¶ãŒãå¿ èŠãšããMATLABããã°ã©ã ã³ãŒããå®è¡ããããã«ãã®ã·ã¹ãã ã§å®è¡ããå¿ èŠãããã³ãã³ãã瀺ããŸãã
MPIã©ã€ãã©ãªã䜿çšããããã°ã©ã ãå®è¡ããå¥ã®ãµã³ãã«ãã¡ã€ã«ïŒ
#!/bin/bash #$ -l h_rt=4:00:00 #$ -pe mvapich2-ib 12 # LDFLAGS="-L$HOME/opt/lib -lm" export LDFLAGS CPPFLAGS="-I$HOME/opt/include" export CPPFLAGS LD_LIBRARY_PATH="$HOME/opt/lib:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH PATH=$PATH:$HOME/opt/bin export PATH module add compilers/intel/12.1.15 module add mpi/intel/mvapich2/1.8.1 mpirun -np 12 m-mpi test7.ct
2è¡ç®-èšç®ã«å¿ èŠãªæ倧æéã3è¡ç®-䞊åèšç®ã®ç°å¢åïŒç®¡çè ãèšå®ïŒããã³èŠæ±ãããããŒãæ°ã¹ã¯ãªããã®æåŸã«-12ããŒãã䜿çšããç®çã®ããã°ã©ã ãèµ·åããŸãã
ãããã«
åºå€§ããåãå ¥ããããšã¯äžå¯èœã§ãããè©Šãããšã¯å¯èœã§ãããå¿ èŠã§ãã ãã®èšäºã§ã¯ãåå¿è ãŠãŒã¶ãŒãæ©èœã®ç¯å²ãç解ããå©çšå¯èœãªãã®ãšãã®äœ¿çšæ¹æ³ãç解ã§ããããã«ãé«æ§èœã³ã³ãã¥ãŒãã£ã³ã°ã·ã¹ãã ã®æŠèŠã説æããããšããŸããã ã芧ã®ãšãããã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãã°ãªããã«ã¢ã¯ã»ã¹ã§ããªãå Žåã§ããMATLABãŸãã¯ç¡æã®CondorãœãããŠã§ã¢ã«åºã¥ããŠç¬èªã®ã¯ã©ã¹ã¿ãŒãæ§ç¯ã§ããŸãã
psãã®ã¡ã¢ãè£è¶³ãããããšã©ãŒãèŠã€ãããã§ããå Žåã¯ãããã«ã€ããŠäžã«æžããŠãã ããã æçµçã«ãããã¯åé¡ã®ç¥èãšç解ã«ã®ã¿åœ¹ç«ã¡ãããã¯ã¡ã¢ãæ¹åããæ©äŒãæäŸããŸãã
pps CUDAãã¯ãããžãŒã䜿çšããŠãGPUã³ã¢ãäœæ¥ã«å«ããããšã§C / C ++ããã³MATLABã§ã®èšç®ãé«éåããå¯èœæ§ã¯ãŸã ãããŸãããããã«ã€ããŠå€ãã®ããšãæžãããŠããŸãã