![]() |
¥Î¡¼¥È/ÊÂÎó½èÍý¤Î¼ÂÍѲ½http://pepper.is.sci.toho-u.ac.jp/pepper/index.php?%A5%CE%A1%BC%A5%C8%2F%CA%C2%CE%F3%BD%E8%CD%FD%A4%CE%BC%C2%CD%D1%B2%BD |
![]() |
¤¤¤¯¤Ä¤«¤Î¥Ú¡¼¥¸¤¬ÌÌÇò¤«¤Ã¤¿¤Î¤Ç¡¢¥ê¥ó¥¯¤ò»Ä¤·¤Æ¤ª¤³¤¦
GPGPU & CHARMM ¤Ç¸¡º÷
IBM Cell & CHARMM¤Ç¸¡º÷
NAMD¤Î¥Û¡¼¥à¥Ú¡¼¥¸
¤³¤Î¸¦µæ¤Ï¡¢ÅöÌִ̡ÏÀ¥ì¥Ù¥ë¡×¡£²¿¤«¿·¤·¤¤¤³¤È¤¬½Ð¤Æ¤¯¤ë¤«¤É¤¦¤«¤Ï ¤Þ¤À¤ï¤«¤é¤Ê¤¤¡£
¤ä¤ê¤¿¤¤¤³¤È¡§¡¡¸½ºß¥³¥ó¥Ô¥å¡¼¥¿¤Ç¡ÊľÎó¤Ë¡Ë½èÍý¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤Ë¡¢»þ´Ö¤¬¤«¤«¤Ã¤Æ¡Öº¤¤ë¡×¤è¤¦¤ÊÌäÂ꤬¤¢¤ë¡£¤½¤ì¤òÊÂÎó¼Â¹Ô¤·¤Æ¡¢Á᤯¤¹¤ë¡£
ÇØ·Ê¡§¡¡(1)¡Ö¥Þ¥ë¥Á¥³¥¢¡×¤Î£Ã£Ð£Õ¤¬¼ê¤´¤í¤ÊÃÍÃʤǼê¤ËÆþ¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¡Ê£´¥³¥¢¤À¤È£´ÊÂÎó¡¢£¸¥³¥¢¤À¤È£¸ÊÂÎ󡢤«¤±¤ë¡¡£Ã£Ð£Õ¿ô¡Ê£²¤Ä¤È¤«£´¤Ä¤È¤«¡Ë¡Ë
¡¡¡¡¡¡¡¡(2)Âç³Ø¤Ë¤¢¤ë£Ð£Ã¶µ¼¼¤Î£Ð£Ã¤ò¡¢¶õ¤¤¤Æ¤¤¤ë»þ´Ö¤Ë»È¤Ã¤Æ¡¢ÊÂÎó¼Â¹Ô¤Ç¤¤ë¡£¡Ê£¹£°Âæ»È¤¨¤ì¤Ð£¹£°ÊÂÎó¡Ë
Àè¹Ô¸¦µæ¡§¡¡»³¤Î¤è¤¦¤Ë¤¢¤ë¡£ÊÂÎó½èÍý¤Ï¸Å¤¯¤«¤é¤ÎÏÃÂê¡£
¡¡¥Ý¥¤¥ó¥È£±¡§¡¡£ÎÂæ¤Î£Ã£Ð£Õ¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢¤Ê¤«¤Ê¤«£ÎÇÜ®¤¯¤Ê¤é¤Ê¤¤
¡¡¡¡¡¡¡¡¡Ê¼Â¤Ïº£¤Þ¤Ç¤ÏÊÂÎó¤Ç²Ô¤°¤è¤ê£Ã£Ð£Õ¥¯¥í¥Ã¥¯¤ò²Ã®¤¹¤ëÊý¤¬´Êñ¤Ç°Â¤«¤Ã¤¿¡Ë
¡¡¡¡¡¡¡¡¤É¤ì¤À¤±Â®¤¯¤Ê¤ë¤«¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÀ¼Á¤Ë¤è¤ë¡£¤³¤Î¤¢¤¿¤ê¤Î¸¦µæ¤Ï¤¿¤¯¤µ¤ó¤¢¤ë¡£
¡¡¡¡¡¡¡¡´û¤ËÊÂÎ󲽤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤â¤¤¤¯¤Ä¤«¡Ê¤«¤Ê¤ê¤¿¤¯¤µ¤ó¡Ë¤¢¤ë¡£
¡¡¥Ý¥¤¥ó¥È£²¡§¡¡¡ÖÊÂÎ󲽡פϿͼêvs¼«Æ°¤¬¤¢¤ê¡¢¿Í¼ê¤Ï°ìÈ̤ˤÏÂçÊÑ¡£¡Ê¾ÊýÌäÂê¤Ë¤è¤Ã¤Æ¤Ï¼«ÌÀ¤Ê¤â¤Î¤â¿¤¤¡Ë¡¡¼«Æ°²½¤Ïº£¤Ç¤â¸¦µæ¥Í¥¿¡Ê¤¿¤È¤¨¤ÐµÈÅĸ¦¡Ë
¤â¤¦°ìÅÙ¡Ö¤ä¤ê¤¿¤¤¤³¤È¡×¡§¡¡¤È¤Ë¤«¤¯ÊÂÎó¤Ë¤·¤ÆÂ®¤¯¤Ç¤¤ëÌäÂê¤òÊÂÎó¼Â¹Ô¤·¤Æ¡¢Ìò¤ËΩ¤Ã¤Æ¤ß¤¿¤¤¡£
´Ä¶¡§¡¡ºòǯÅÙËö¤ËÇã¤Ã¤¿£È£Ð¤Î¥µ¡¼¥Ð¡¼¤Ï£´¥³¥¢¡ß£²£Ã£Ð£Õ¤Ç£¸ÊÂÎó²Äǽ¡£
£Ï£Ó¡§¡¡Linux¤ò¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¡£¥×¥í¥»¥¹¥ì¥Ù¥ë¤ÎÊÂÎó½èÍý¤Ï´û¤Ë²Äǽ¡£¸å¤ÇÎã¤ò¼¨¤¹¡£
ÊÂÎó¥ß¥É¥ë¥¦¥§¥¢¡§¡¡¥×¥í¥°¥é¥à¤òÊÂÎóʬ³ä¤·¡¢´Êñ¤Ë¼Â¹Ô¤µ¤»¤é¤ì¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¡Ê¥ß¥É¥ë¥¦¥§¥¢¡Ë¤¬¤¤¤¯¤Ä¤«¤¢¤ë¡£ÂçÊ̤¹¤ë¤È
¡¡¡¡¶¦Í¥á¥â¥ê·¿¡ÊÊÑ¿ô¶¦Í·¿¡Ë¥â¥Ç¥ë¡§¡¡¥ß¥É¥ë¥¦¥§¥¢¤È¤·¤ÆOpenMP¤¬Í̾¡£
¡¡¡¡¥á¥Ã¥»¡¼¥¸¸ò´¹·¿¥â¥Ç¥ë¡§¡¡¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤È¤·¤ÆMPI¤¬¤¢¤ê¡¢¤½¤Î¼ÂÁõ¤È¤·¤Æ¥Õ¥ê¡¼¤ÎMPICH/MPICH2¤¬¤¢¤ë¡£
¥â¥Ç¥ë¤È¤·¤ÆÈæ³Ó¤¹¤ë¤È¡¢¶¦Í¥â¥Ç¥ë¤ÏÌ©¤ÊÁê¸ßºîÍѡʺÙγÅÙ¤ÎÊÂÎó¡Ë¤¬²Äǽ¤Ê¤Î¤È¡¢¥³¥ó¥Ñ¥¤¥é¤¬¼«Æ°ÊÂÎ󲽤¹¤ë¤è¤¦¤Ê¤³¤È¤¬²Äǽ¡£¤¿¤È¤¨¤ÐIntel¤Î¥³¥ó¥Ñ¥¤¥é¤Î-parallel¥ª¥×¥·¥ç¥ó¡£¥Ï¡¼¥É¥¦¥§¥¢¤ÎÀ©Ì󤫤éÊÂÎóÅ٤Ϥ½¤ì¤Û¤ÉÂ礤¯¤Ê¤é¤Ê¤¤¡Ê¤»¤¤¤¼¤¤¿ô½½¡Ë
¥á¥Ã¥»¡¼¥¸¥â¥Ç¥ë¤Ï¥á¥Ã¥»¡¼¥¸¸ò´¹¤Ë»þ´Ö¤¬¤«¤«¤ë¤Î¤ÇÁ¤ÊÁê¸ßºîÍÑ¡ÊÂçγÅÙ¤ÎÊÂÎó¡Ë¤Ë¸þ¤¯¡£¤½¤ÎÂå¤ï¤êÊÂÎóÅÙ¤ÏÂ礤¯½ÐÍè¤ë¡£¡ÊTCP/IP¤ò»È¤¦¤Î¤¬Î®¹Ô¤À¤¬¡¢¤½¤ì¤À¤È¤Û¤È¤ó¤É̵¸Â¤Þ¤Ç²Äǽ¡£À¤³¦Ãæ¤Î¥³¥ó¥Ô¥å¡¼¥¿¤ò¤Ä¤Ê¤°¤³¤È¤â²Äǽ¡£¡Ë¥Í¥Ã¥È¥ï¡¼¥¯ÃÙ±ä¤òû½Ì¤¹¤ë¹©ÉפâÀΤ¢¤Ã¤¿¡ÊMyrinet¤¬Í̾¡Ë¡£¥®¥¬¥Ó¥Ã¥È¥¤¡¼¥µ¤Î¾ì¹ç¡¢Å¾Á÷¤ÏÁᤤ¤¬¥»¥Ã¥È¥¢¥Ã¥×¤Ë»þ´Ö¤¬¤«¤«¤ë¤È¸À¤ï¤ì¤ë¡£
¤³¤ÎÊդε½Ò¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¤³¤³¤Ëµó¤²¤ë
ÀÞ³ÑÇã¤Ã¤¿¥µ¡¼¥Ð¡¼¤Ê¤Î¤Ç¡¢ËÜÅö¤ËÊÂÎó¼Â¹Ô¤Ç¤¤ë¤«»î¤·¤Æ¤ß¤¿¡£
CPU¤Ç¤Î»Å»ö¤À¤±¡Ê¤Û¤È¤ó¤É¡¢¤À¤¬¡Ë¤ò¤¹¤ë¥×¥í¥°¥é¥à¤òºî¤ë¡£²¿¤Ç¤â¤¤¤¤¤¬¡¢Í¾¤ê¤Ë¼«ÌÀ¤Ê¥×¥í¥°¥é¥à¤À¤È¥³¥ó¥Ñ¥¤¥é¤¬¸¤¤¤Î¤ÇÌ¿Îá¤òºÇŬ²½¡á¾Ê¤¤¤Æ¤·¤Þ¤¦¤Î¤ÇÍ×Ãí°Õ¡£¥×¥í¥°¥é¥à¤Ï
#include <math.h> #include <stdio.h> #include <unistd.h> #include <string.h> main(int argc, char **argv) { int i, maxi; double x; char bufin[256]; if (argc !=2) { fprintf(stderr, "usage: paratest <maxi>. maxi=~~10000000\n"); } else { maxi = atoi(argv[1]); if (maxi<=0) { fprintf(stderr, "maxi <= 0\n"); } } for (i=0; i<255; i++) bufin[i]='\0'; x = 0.0; for (i=0; i<maxi; i++) { x = x + sin( (double) i/maxi ); } read(0, bufin, 256); printf("%s", strcat(bufin, "a")); fprintf(stderr, "%s", strcat(bufin, "a")); }
¥³¥ó¥Ñ¥¤¥ë»þ¤Ë-lm¤¬É¬Íס£¡ÊMath Library¤ò»È¤Ã¤Æ¤¤¤ë¤¿¤á¡Ë
¤³¤Î¥×¥í¥°¥é¥à¤ò¥×¥í¥»¥¹¤È¤·¤Æ¡¢ÊÂÎó¼Â¹Ô¤µ¤»¤Æ¤ß¤ë¡£¥·¥§¥ë¥ì¥Ù¥ë¤ÇÊÂÎ󵝯°¡¢¤Ä¤Þ¤êcshell¤Ç¤Î¡Ö&¡×¤ä¡Ö|¡×¤ò»È¤¦¡£ºÇ½é¤Ë¡Ö&¡×¤ò»î¤·¤¿¤¬¡¢½ªÎ»¤¬È½Äꤷ¤Ë¤¯¤¤¤Î¤Ç¡¢¡Ö|¡×¡Ê¥Ñ¥¤¥×¡Ë¤ò»È¤¦¤³¤È¤Ë¤¹¤ë¡£
·è¤á¤¿¿ô¤Î¥×¥í¥»¥¹¤ò¥Ñ¥¤¥×¤Ç¤Ä¤Ê¤¤¤ÇÊÂÎó¤Ëµ¯Æ°¤¹¤ë¡£ºÇ¸å¤Ë¥Ñ¥¤¥×¤òÄ̤¸¤Æ¥á¥Ã¥»¡¼¥¸¤¬ºÇ¸å¤Î¥×¥í¥»¥¹¤Ë¹Ô¤Ã夤¤Æ¡¢½ªÎ»¤¬¤ï¤«¤ë¡£¤³¤Î¥·¥§¥ë¥¹¥¯¥ê¥×¥È¤Ï
#!/bin/csh set N = 100000000 # Case of 8 processes echo "" | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $ N | pipebody $N | pipebody $N # Case of 12 processes #echo "" | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pipebody $N | pebody $N | pipebody $N # Case of 1 process #echo "" | pipebody $N
¤Î¤è¤¦¤Ë½ñ¤¤¤¿¡£
¤³¤ì¤ò¼Â¹Ô¤µ¤»¤ë»þ¤Ë¡¢¥³¥Þ¥ó¥Étime¤ò»È¤¦¡£ºÇ¶á¤ÎLinux¤Îtime¥³¥Þ¥ó¥É¤Ï¡¢
The default format string is %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
¤È¤¤¤¦¤³¤È¤Ç¡¢ÀΤʤ¬¤é¤Î real ... user ... sys ... ¤È¤¤¤¦·Á¼°¤Ç¤Ê¤¤¤¬¡¢µÑ¤Ã¤Æ¾ðÊó¤Ïʬ¤«¤ê¤ä¤¹¤¤¡£
·ë²Ì¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ user system elapsed PCPU~ ¥×¥í¥»¥¹£±¤Ä¡§¡¡¡¡ 9.720u 0.028s 0:09.74 100.0% 0+0k 0+0io 0pf+0w~ ¥×¥í¥»¥¹£´¤Ä¡§¡¡¡¡38.814u 0.036s 0:09.75 398.3% 0+0k 0+0io 0pf+0w~ ¥×¥í¥»¥¹£¸¤Ä¡§¡¡¡¡77.476u 0.020s 0:09.76 793.9% 0+0k 0+0io 0pf+0w~ ¥×¥í¥»¥¹£¹¤Ä¡§¡¡¡¡87.301u 0.040s 0:14.62 597.4% 0+0k 0+0io 0pf+0w~ ¥×¥í¥»¥¹£±£²¡§¡¡¡¡116.407u 0.028s 0:15.93 730.8% 0+0k 0+0io 0pf+0w~ ¥×¥í¥»¥¹£±£¶¡§¡¡¡¡155.189u 0.044s 0:19.54 794.3% 0+0k 0+0io 0pf+0w
¤³¤Î´Ä¶¤Ç¤Ï£±¤Ä¤Î¥×¥í¥»¥¹¤¬¿©¤¦£Ã£Ð£Õ»þ´Ö¤Ï9.72ÉÃÄøÅ٤Ǥ¢¤ê¡¢¥×¥í¥»¥¹¿ô¤ò£±¢Í£´¢Í£¸¤Þ¤ÇÁý¤ä¤·¤¿»þ¤Ëuser time¡Ê¡á¥×¥í¥»¥¹Áí»þ´Ö¡Ë¤Ï38.81Éáá4¡ß9.70Éá¢77.48Éáá8¡ß9.685¤Î¤è¤¦¤ËÁý¤¨¤Æ¤¤¤ë¤¬¡¢elapsed time¡Ê¡áüËö¤Ç¸«¤Æ¤¤¤ë»þ´Ö¡Ë¤Ï£³¤Ä¤È¤â9.74¡Á9.76ÉäǤۤȤó¤ÉÊѤï¤é¤Ê¤¤¡£¤Ä¤Þ¤ê£¸ÊÂÎó¤Þ¤Ç¼Â¸½¤Ç¤¤Æ¤¤¤ë¡£¤½¤Î¤È¤¤ÎCPU percentage (PCPU) ¤Ï398.3% 793.9%¤È¡¢¤Û¤È¤ó¤ÉÊÂÎóÅÙ¤ÈÆ±¤¸Ãͤò¼¨¤·¤Æ¤¤¤ë¡£
¤È¤³¤í¤¬¡¢£¹¥×¥í¥»¥¹¤ò±Û¤¨¤¿¤È¤³¤í¤Ç¡¢£¹¤ÄÌÜ¤Î¥×¥í¥»¥¹¤Ï;¤Ã¤Æ¤·¤Þ¤¤¸å¤«¤é¼Â¹Ô¤µ¤ì¤ë¤ï¤±¤Ç¡¢¼ÂºÝ elapsed time ¤¬¡Ê9.75É䫤é¡Ë14.6Éä˿¤Ó¤Æ¤¤¤ë¡£´°Á´¤Ë£²Çܤˤʤé¤Ê¤¤Íýͳ¤Ï¡¢¤ª¤½¤é¤¯³°Â¦¤Î¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤¬¤¢¤ë¤¿¤á¤À¤í¤¦¡£¤½¤·¤Æ¡¢£¹¥×¥í¥»¥¹¢Í£±£²¥×¥í¥»¥¹¢Í£±£¶¥×¥í¥»¥¹¤ÈÁý¤ä¤·¤Æ¤â elapsed time ¤Ï¿¾¯Áý¤¨¤ë¤À¤±¤ÇÇÜÁý¤Ï¤·¤Æ¤¤¤Ê¤¤ 14.6ÉâÍ15.9ÉâÍ19.5Éáʣ±£¶¤Î¾ì¹ç¿¾¯Èù̯¤«¤â¡£Âç¾æÉפ«¤Ê¡©¡Ë
¤È¤¤¤¦¤³¤È¤«¤é¡¢£¸ÊÂÎ󤬼¸½¤µ¤ì¤Æ¤¤¤ë¤é¤·¤¤¤³¤È¤Ïʬ¤«¤Ã¤¿¡£
¹Í¤¨¤é¤ì¤ëÊý¸þ¤È¤·¤Æ¡¢