´ÙÀ½ ÀÌÀü Â÷·Ê

3. ±¸Á¶ °³¿ä

3.1 ¹«¾ù ó·³ º¸À̴°¡?

³» »ý°¢¿¡´Â º£¿À¿ïÇÁ ½´ÆÛÄÄÇ»ÅÍ ±¸Á¶¸¦ ±â¼úÇϱâÀ§ÇÑ °¡Àå ÁÁÀº ¹æ¹ýÀº ½ÇÁ¦ º£¿À¿ïÇÁ¿Í ¸Å¿ì ºñ½ÁÇÑ ¿¹¸¦ µå´Â °ÍÀÌ´Ù. ±×·¯³ª, ´ëºÎºÐÀÇ ½Ã½ºÅÛ °ü¸®Àڵ鿡°Ô Àͼ÷ÇÑ °ÍÀ̾î¾ß ÇÑ´Ù. ±× ¿¹·Î, º£¿À¿ïÇÁ ½Ã½ºÅÛ°ú °¡Àå ±ÙÁ¢ÇÑ °ÍÀÌ ÇϳªÀÇ ¼­¹ö¿Í ¿©·¯°³ÀÇ Å¬¶ó¾ðÆ®µé·Î ±¸¼ºµÈ À¯´Ð½º ÄÄÇ»ÅÍ ¿¬±¸½Ç ÀÌ´Ù. Á» ´õ ±¸Ã¼ÀûÀ¸·Î ¸»Çϸé, ¿¹¸¦ µé¾î ³ª´Â USQÀÇ Faculty of Sciences¿¡ ÄÄÇ»ÅÍ ¿¬±¸½Ç¿¡ ÀçÇÐÁß¿¡ DEC AlpahÀ» »ç¿ëÇÏ·ÁÇÑ´Ù°í ÇÏÀÚ. ÀÌ ¼­¹ö ÄÄÇ»ÅÍ´Â beldinÀ̶ó ÇÏ°í Ŭ¶óÀ̾ðÆ® ¸Ó½ÅµéÀº scilab01, scilab02, scilab03¿¡¼­ scilab20±îÁö ÀÖ´Ù°í ÇÏÀÚ. ¸ðµç Ŭ¶óÀ̾ðÆ®µéÀº Digital Unix 4.0 ¿î¿µÃ¼Á¦ÀÇ Áö¿ª Ä«ÇǺ»À¸·Î ¼³Ä¡µÇ¾îÀÖÁö¸¸, »ç¿ëÀÚ ÆÄÀÏ °ø°£ (/home)°ú /usr/localÀº NFS (Network File System)¸¦ ÅëÇؼ­ °øÀ¯µÇ¾î Áø´Ù. °¢°¢ÀÇ Å¬¶óÀ̾ðÆ® °¢ /etc/hosts.equiv ÆÄÀÏ¿¡ ¼­¹ö³ª ´Ù¸¥ ¸ðµç Ŭ¶óÀ̾ðÆ®µé ¿¡´ëÇÑ ¿£Æ®¸®°¡ Æ÷ÇԵǾî À־, ¸ðµç Ŭ¶óÀ̾ðÆ®´Â ´Ù¸¥ °÷À¸·Î ¿ø°Ý ½© (rsh)¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Ù. ¼­¹ö ¸Ó½ÅÀº ¸ðµç ¿¬±¸½Ç¿¡ ´ëÇÑ NIS ¼­¹ö·Î¼­, ´Ù¸¥ ¸Ó½ÅµéÀ» ³¢¸® °èÁ¤ Á¤º¸¸¦ °øÀ¯ÇÑ´Ù. ¾î¶² »ç¶÷ÀÌ scilab02 Äֿܼ¡ ¾É¾Æ¼­, ·Î±×ÀÎÇϸé, ±×°¡ ¼­¹ö³ª scilab15¿¡ Á¢¼ÓÇÑ´Ù Çصµ °°Àº ȯ°æÀ» °¡Áö°Ô µÈ´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î ¸ðµç Ŭ¶óÀ̾ðÆ®´Â ¶È°°Àº °üÁ¡°ú ´À³¦À» °¡Áø´Ù. ÀÌ ÀÌÀ¯´Â ¸ðµç ¸Ó½Å¿¡ °°Àº ¹æ¹ýÀ¸·Î ¿î¿µÃ¼Á¦°¡ ¼³Ä¡µÇ¾ú°í ¼³Á¤ µÇ¾úÀÖ°í, »ç¿ëÀÚÀÇ /home°ú /usr/local ¿µ¿ª µÑ´Ù ¹°¸®ÀûÀ¸·Î´Â ¼­¹ö¿¡ ÀÖÁö¸¸ Ŭ¶óÀ̾ðÆ®´Â NFS¸¦ °ÅÃļ­ ¿¢¼¼½º ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. NIS³ª NFS¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¿øÇϸé NIS¿Í NFS HOWTO¸¦ Àо±â ¹Ù¶õ´Ù.

3.2 ´Ù¸¥ ³ëµå¸¦ ¾î¶»°Ô ÀÌ¿ëÇÒ °ÍÀΰ¡?

Áö±ÝºÎÅÍ ¿ì¸®´Â ½Ã½ºÅÛ ±¸Á¶¿¡ ´ëÇÑ ¾î¶² »ý°¢À» °¡Áö°í ÀÖ°í, ÄÄÇ»ÅÍ ¿¬±¸½Ç¿¡ ÀÖ´Â ¸Ó½ÅÀÇ »ç¿ë°¡´ÉÇÑ CPU »çÀÌŬµéÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ã¾Æº¸±â·Î ÇÏÀÚ. ¾î¶² »ç¶÷ÀÌ ÀÓÀÇÀÇ ¸Ó½Å¿¡ ·Î±×ÀÎ ÇÒ ¼ö ÀÖ°í, ±×µéÀÇ È¨ µð·ºÅ丮¿¡¼­ ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼öµµ ÀÖÁö¸¸, °°Àº ÀÏÀ» ¿ø°Ý ½©À» °¡Áö°í ¿©·¯ °³¸¦ ½ÇÇà ÇÒ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¾î, ¿ì¸®°¡ 1¿¡¼­ 10À» Æ÷ÇÔÇÑ ¸ðµç Á¤¼ö °ªÀÇ Æò¹æ±ÙÀÇ ÇÕÀ» °è»êÇÒ·Á°í ÇÑ´Ù. À̸¦ ¿Ïº®È÷ ½ÇÇàÇÒ sigmasqrt("¼Ò½º ÄÚµå" ºÎºÐÀ» º¸¾Æ¶ó)¶ó´Â °£´ÜÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÀ» ÇÑ´Ù. 1¿¡¼­ 10±îÁöÀÇ Æò¹æ±Ù ÀÇ ÇÕÀ» °è»êÇÏ´Â °ÍÀ» ½ÇÇàÇϸé:

[jacek@beldin sigmasqrt]$ time ./sigmasqrt 1 10
  22.468278
real    0m0.029s
  user    0m0.001s
  sys     0m0.024s
time ¸í·É¾î´Â ÀÌ ÀÛ¾÷ ½ÇÇàÇÏ´Â wall-clock(³¡¸¶Ä¡´Â ½Ã°£)À» È®ÀÎÇÒ ¼ö ÀÖ´Ù. À§¿¡ º¸À̵íÀÌ, ÀÌ ¿¹Á¦´Â ½ÇÇàÇϵ¥ ÀÛÀº ºñÀ²ÀÇ ½Ã°£(0.029ÃÊ)¸¸ °É¸°´Ù. ±×·¯³ª, 1¿¡¼­ 1 000 000 000±îÁöÀÇ Á¤¼ö°ªÀÇ Æò¹æ±Ù ÇÕÀ» ±¸ÇÒ·Á°í ÇÏ´Ù¸é ¾î¶»°Ô µÉ±î? ÀÌ°ÍÀ» °¡Áö°í wall-clock ½Ã°£À» ´Ù½Ã ±¸Çغ¸ÀÚ.
[jacek@beldin sigmasqrt"]$ time ./sigmasqrt 1 1000000000
  21081851083600.559000
real    16m45.937s
  user    16m43.527s
  sys     0m0.108s
ÀÌ ÇÁ·Î±×·¥ÀÇ ½ÇÇà ½Ã°£Àº ²Ï ±æ¾îÁ³´Ù. ±×·¯¸é, ¾î¶»°Ô Çϸé ÀÏÀ» ¼öÇà ÇÏ´Â ½Ã°£À» Á» ´õ »¡¸® ÇÒ ¼ö ¾ø´Â°¡ÇÏ´Â Áú¹®À» ÇÏ°ÔµÉ °ÍÀÌ´Ù. ÀÏÀ» ¾î¶»°Ô ¹Ù²Ù¾î¾ß wall-clock ½Ã°£ÀÌ ÃÖ¼Ò·Î µÉ±î? È®½ÇÇÑ ´ë´äÀº ÀÏÀ» ¿©·¯ °³ÀÇ ÇÏÀ§ Àϵé·Î ³ª´©¾î¼­ °¢°¢ÀÇ ÇÏÀ§ ÀϵéÀ» ¸ðµç ÄÄÇ»Å͵鿡¼­ º´·Ä·Î ¼öÇàÇÏ´Â °ÍÀÌ´Ù. ¿ì¸®´Â ÀÛ¾÷À» Å©°Ô 20°³ ºÎºÐÀ¸·Î ³ª´©¾î¼­, Æò¹æ±ÙÀÇ ÇÑ ¹üÀ§¸¦ °è»êÇؼ­ °¢°¢ÀÇ ³ëµå¿¡ ÀÌ °ªÀ» ´õÇÏ°Ô Çß´Ù. ¸ðµç ³ëµå°¡ ÀÛ¾÷À» ¸¶Ä¡°í °ªÀ» ¹ÝȯÇÒ¶§, 20°³ÀÇ °á°ú¸¦ ¸ðµÎ ´õÇؼ­ ¸¶Áö¸· Çظ¦ ¾ò°ÔµÈ´Ù. ÀÏÀ» ¼öÇàÇϱâ Àü¿¡ ¸ðµç ÇÁ·Î¼¼½º°¡ °ªµéÀ» ±â·ÏÇÒ ¸í¸í ÆÄÀÌÇÁ(named pipe)¸¦ »ý¼ºÄ×´Ù.
[jacek@beldin sigmasqrt"]$ mkfifo output
  [jacek@beldin sigmasqrt"]$ ./prun.sh & time cat output | ./sum
  [1] 5085
  21081851083600.941000
  [1]+  Done                    ./prun.sh
real    0m58.539s
  user    0m0.061s
  sys     0m0.206s

¾à 58.5 ÃÊÀÇ ½Ã°£À» ¾ò¾ú´Ù. ÀÌ ½Ã°£Àº ÀÏÀÌ ½ÃÀÛÇÒ¶§ ºÎÅÍ ¸ðµç ³ëµåµé°¡ °è»êÀ» ¸¶Ä¡°í °¢ °á°ú¸¦ ÆÄÀÌÇÁ¿¡ ±â·ÏÇÏ´Â ½Ã°£±îÁö¸¦ ¸»ÇÑ´Ù. ÀÌ ½Ã°£Àº ¸¶Áö¸· 20°³ÀÇ µ¡¼ÀÀº Æ÷ÇÔÇÏÁö ¾Ê¾ÒÁö¸¸, ¸Å¿ì ÀÛÀº ½Ã°£À̹ǷΠ¹«½ÃÇÒ ¼ö ÀÖ´Ù. ¿ì¸®´Â º´·Ä·Î ÀÏÀ» ¼öÇàÇÔ¿¡¼­ Àǹ̽ÉÀåÇÑ Çâ»óÀÌ ÀÖ¾îÀ½À» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. À§ÀÇ ¿¹Á¦ÀÇ ¸ñÀûÀº °¡Àå °£´ÜÇÑ º´·ÄÈ­µÇ´Â º´Çà ÄÚµåÀÇ ¹æ¹ýÀ» º¸¿©ÁÖÀڴµ¥ ÀÖ´Ù. ½ÇÁ¦·Î ÀÌ¿Í °°Àº ¿¹´Â ¸Å¿ì µå¹°°í ´Ù¸¥ ±â¼ú (PVM°ú PMI APIµé)ÀÌ º´Ç༺À» ÀÌ·ç´Âµ¥ »ç¿ëµÇÁö°ï ÇÑ´Ù.

3.3 º£¿À¿ïÇÁ°¡ COW¿Í ¾î¶»°Ô ´Ù¸¥°¡?

¾Õ¿¡¼­ ±â¼úÇÑ ÄÄÇ»ÅÍ ¿¬±¸½ÇÀº Cluster of Workstations(COW)ÀÇ ¿Ïº®ÇÑ ¿¹ÀÌ´Ù. ±×·¡¼­, º£¿À¿ïÇÁÀÇ Æ¯Â¡ÀÌ ¹«¾ùÀÌ°í COW¿Í ¾î¶»°Ô ´Ù¸¥°¡?¸¦ ¾Ë¾Æ º¸ÀÚ. ±×·¸°Ô ´Ù¸¦ °ÍÀº ¾øÁö¸¸, º£¿À¿ïÇÁÆ®´Â ¾à°£ÀÇ µ¶Æ¯ÇÑ Æ¯Â¡µéÀ» °¡Áø´Ù. ¸ÕÀú, º£¿À¿ïÇÁ Ŭ·¯½ºÅÍ¿¡¼­ ¸ðµç Ŭ¶óÀ̾ðÆ® ³ëµåµéÀÇ °æ¿ì¿¡´Â Å°º¸µå, ¸¶¿ì½º, ºñµð¿À Ä«µå, ±×¸®°í ¸ð´ÏÅÍ Á¶Â÷ ¾ø´Ù. ¼­¹ö ³ëµå, ÄÜ¼Ö Àü¿ë ³ëµå, ¶Ç´Â ½Ã¸®¾ó Äֿܼ¡¼­ÀÇ Å¬¶óÀ̾ðÆ® ³ëµéÀÇ ¸ðµç ¿¢¼¼½º´Â ¿ø°Ý Á¢¼ÓÀ» ÅëÇؼ­ ÀÌ·ç¾îÁø´Ù. Ŭ¶óÀ̾ðÆ® ³ëµå°¡ Ŭ·¯½ºÅÍ ¿ÜºÎÀÇ ¸Ó½ÅÀ» ¿¢¼¼½ºÇϰųª, Ŭ·¯½ºÅÍ ¿ÜºÎÀÇ ¸Ó½ÅÀÌ Å¬¶óÀ̾ðÆ® ³ëµå¸¦ Á÷Á¢ ¿¢¼¼½ºÇÒ ÇÊ¿ä°¡ ¾ø±â ¶§¹®¿¡, Ŭ¶óÀ̾ðÆ® ³ëµå´Â 10.0.0.0/8 À̳ª 192.168.0.0/13 ÁÖ¼Ò ¹üÀ§ ((RFC 1918 www.alternic.net/rfcs/1900/rfc1918.txt.html)¿Í °°Àº »ç¼³ IP ÁÖ¼ÒµéÀÌ ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëÇÑ´Ù. º¸Åë µÎ ¹ø° ³×Æ®¿öÅ© Ä«µå·Î ¿ÜºÎ·Î ¿¬°áµÇ´Â ¸Ó½ÅÀº ¼­¹ö ³ëµå¸¸ÀÌ ÇÒ ¼ö ÀÖ´Ù. ½Ã½ºÅÛÀ» »ç¿ëÇÏ´Â °¡Àå ÀϹÝÀûÀÎ ¹æ¹ýÀº ¼­¹ö Äֿܼ¡¼­ Á÷Á¢ ¿¢¼¼½ºÇϰųª, °³ÀÎ ¿öÅ©½ºÅÛÀ̼ǿ¡¼­ ÅÚ³ÝÀ̳ª ¿ø°Ý ·Î±×ÀÎÀ¸·Î ¼­¹ö ³ëµå¸¦ ¿¢¼¼½ºÇÑ´Ù. ¼­¹ö ³ëµå »ó¿¡¼­ »ç¿ëÀÚ°¡ Äڵ带 ÆíÁýÇÏ°í ÄÄÆÄÀÏ ÇÏ°í, Ŭ·¯½ºÅÍ¿¡ ÀÖ´Â ¸ðµç ³ëµåµé¿¡°Ô ÀÏÀ» ½ÃÅ°°Ô µÈ´Ù. ´ëºÎºÐÀÇ °æ¿ì COWÀº ¹ã¿¡ º´·Ä °è»êÇϴµ¥ »ç¿ëµÇ°ïÇÏ°í, »ç¶÷µéÀÌ »ç¿ëÇÏÁö¾ÊÀº ÁÖ¸»¿¡ »ç¿ëµÇ±âµµ ÇÑ´Ù. ±×·¯¹Ç·Î, »ç¿ëÇÏÁö ¾ÊÀº CPU ½Ã°£À» ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù. ´Ù¸¥ °üÁ¡¿¡¼­ º£¿À¿ïÇÁ´Â ÀϹÝÀûÀ¸·Î º´·Ä °è»êÀ» Çϱâ À§ÇÑ Àü¿ë ¸Ó½ÅÀÌ°í ÀÌ·¯ÇÑ ¸ñÀû¿¡ ¸Â°Ô ÃÖÀûÈ­µÇ¾ú´Ù. ¶ÇÇÑ, º£¿À¿ïÇÁ´Â off-the-shelf ¿ä¼Òµé·Î ÀÌ·ç¾îÁö°í ÁÖ·Î °ø°³ ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇϱ⠴빮¿¡ °¡°Ý/¼º´É ºñ°¡ ¸Å¿ì ÁÁ´Ù. ¿©·¯ ½Ã½ºÅÛÀ» °¡Áö°í ÀÖ´Â º£¿À¿ïÇÁ´Â »ç¿ëÀÚ°¡ º£¿À¿ïÇÁ Ŭ·¯½ºÅÍÀ» ¹Ù¶óº¼¶§ ÇϳªÀÇ °è»ê ¿öÅ©½ºÅ×ÀÌ¼Ç À¸·Î º¸À̴ Ư¡À» °¡Áö°í ÀÖ´Ù.


´ÙÀ½ ÀÌÀü Â÷·Ê