¥Î¡¼¥È/¥Î¡¼¥È

2009-07-03¡¡À¸Ì¿²Ê³Ø·Ï¤Î¥×¥í¥°¥é¥à¤ÎÊÂÎó²½¤ÎÆ°¸þ

¤¤¤¯¤Ä¤«¤Î¥Ú¡¼¥¸¤¬ÌÌÇò¤«¤Ã¤¿¤Î¤Ç¡¢¥ê¥ó¥¯¤ò»Ä¤·¤Æ¤ª¤³¤¦
GPGPU & CHARMM ¤Ç¸¡º÷

IBM Cell & CHARMM¤Ç¸¡º÷

NAMD¤Î¥Û¡¼¥à¥Ú¡¼¥¸

2009-06-16 Äɵ­ ¡Ê¥Þ¥ë¥Á¥³¥¢¤ÈÊÂÎó¥×¥í¥°¥é¥ß¥ó¥°¡Ë

2007-04-16

¤³¤Î¸¦µæ¤Ï¡¢ÅöÌִ̡ÏÀ¥ì¥Ù¥ë¡×¡£²¿¤«¿·¤·¤¤¤³¤È¤¬½Ð¤Æ¤¯¤ë¤«¤É¤¦¤«¤Ï ¤Þ¤À¤ï¤«¤é¤Ê¤¤¡£

²¿¤ò¤ä¤ë¤Î¤«

¤ä¤ê¤¿¤¤¤³¤È¡§¡¡¸½ºß¥³¥ó¥Ô¥å¡¼¥¿¤Ç¡ÊľÎó¤Ë¡Ë½èÍý¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤Ë¡¢»þ´Ö¤¬¤«¤«¤Ã¤Æ¡Öº¤¤ë¡×¤è¤¦¤ÊÌäÂ꤬¤¢¤ë¡£¤½¤ì¤òÊÂÎó¼Â¹Ô¤·¤Æ¡¢Á᤯¤¹¤ë¡£

ÇØ·Ê¡§¡¡(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Éáʣ±£¶¤Î¾ì¹ç¿¾¯Èù̯¤«¤â¡£Âç¾æÉפ«¤Ê¡©¡Ë

¤È¤¤¤¦¤³¤È¤«¤é¡¢£¸ÊÂÎ󤬼¸½¤µ¤ì¤Æ¤¤¤ë¤é¤·¤¤¤³¤È¤Ïʬ¤«¤Ã¤¿¡£

¼¡¤Î¥¹¥Æ¥Ã¥×

¹Í¤¨¤é¤ì¤ëÊý¸þ¤È¤·¤Æ¡¢


źÉÕ¥Õ¥¡¥¤¥ë: file070418.ppt 596·ï [¾ÜºÙ]

¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2009-07-05 (Æü) 17:00:30 (5015d)