Beowulf HOWTO Jacek Radajewski ¿Í Douglas Eadline v1.1.1, 22 November 1998 ¿ªÀÚ : ¹ÚÀ缺, ospace@chollian.net , kida@inet.cheju.ac.kr ÀϽà : 1999³â 5¿ù ??ÀÏ ÀÌ ¹®¼­´Â º£¿À¿ïÇÁ ½´ÆÛÄÄÇ»ÅÍ ±¸Á¶¸¦ ¼Ò°³ÇÏ°í º´·Ä ÇÁ·Î±×·¥¹Ö¿¡¼­ÀÇ ±âº»ÀûÀÎ Áö½ÄÀ» Á¦°øÇÏ´Â °Í ¿Ü¿¡ ´Ù¸¥ ƯÁ¤ ¹®¼­¿Í À¥ÆäÀÌÁö·ÎÀÇ ¸µÅ©µµ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ______________________________________________________________________ ¸ñÂ÷ 1. ¸Ó¸®¸» 1.1 Disclaimer 1.2 ÆÇ±Ç 1.3 ÀÌ ¹®¼­¿¡ ´ëÇØ 1.4 ÀúÀڵ鿡 °üÇØ 1.5 °¨»çÀÇ ¸» 2. °³¿ä 2.1 ´©°¡ ÀÌ HOWTO ¹®¼­¸¦ Àоî¾ß Çϴ°¡? 2.2 º£¿À¿ïÇÁ¶õ? 2.3 ºÐ·ù 3. ±¸Á¶ °³¿ä 3.1 ¹«¾ù ó·³ º¸À̴°¡? 3.2 ´Ù¸¥ ³ëµå¸¦ ¾î¶»°Ô ÀÌ¿ëÇÒ °ÍÀΰ¡? 3.3 º£¿À¿ïÇÁ°¡ COW¿Í ¾î¶»°Ô ´Ù¸¥°¡? 4. ½Ã½ºÅÛ µðÀÚÀÎ 4.1 º´·Ä °è»ê¿¡À־ ¹è°æ ¿ä¾à. 4.2 º´·Ä °è»ê ¹æ¹ý 4.2.1 ¿Ö ÇÑ °³ ÀÌ»óÀÇ CPU°¡ ÇÊ¿äÇÑ°¡? 4.2.2 º´·Ä ó¸® °¡°è 4.2.2.1 Single-tasking Operating System 4.2.2.2 Multi-tasking Operating System: 4.2.2.3 Multitasking Operating Systems with Multiple CPUs: 4.2.2.4 Threads on a Multitasking Operating Systems extra CPUs 4.2.2.5 Sending Messages on Multitasking Operating Systems with extra CPUs: 4.3 º´·Ä °è»êÀ» À§ÇÑ ±¸Á¶ 4.3.1 Çϵå¿þ¾î ±¸Á¶ 4.3.2 ¼ÒÇÁÆ®¿þ¾î API ±¸Á¶ 4.3.2.1 ¸Þ½ÃÁö 4.3.2.2 ¾²·¹µå 4.3.3 Ç®±×¸² ±¸Á¶ 4.4 ÀûÇÕ¼º 4.5 º´·Ä ¼ÒÇÁÆ®¿þ¾î ÀÛ¼º°ú Æ÷Æà 4.5.1 ÇÁ·Î±×·¥ÀÇ º´Çà ºÎºÐ °áÁ¤ 4.5.2 º´·Ä È¿À² °è»ê 4.5.3 ÇÁ·Î±×·¥¿¡¼­ º´Çà ºÎºÐÀ» ±â¼ú 4.5.3.1 ¸í½ÃÀû ¹æ¹ý 4.5.3.2 ¾Ï½ÃÀû ¹æ¹ý 5. º£¿À¿ïÇÁ ÀÚ¿øµé 5.1 ½ÃÀÛÁ¡ 5.2 ¹®¼­ 5.3 ³í¹® 5.4 ¼ÒÇÁÆ®¿þ¾î 5.5 º£¿À¿ïÇÁ ¸Ó½Åµé 5.6 ´Ù¸¥ Àç¹ÌÀÖ´Â »çÀÌÆ® 5.7 ¿ª»ç 6. ¹Ø±×¸² 6.1 sum.c 6.2 sigmasqrt.c 6.3 prun.sh ______________________________________________________________________ 1. ¸Ó¸®¸» 1.1. Disclaimer ¿ì¸®´Â ÀÌ ¹®¼­¿¡¼­ ¾î¶² ºÎÁ¤È®ÇÑ Á¤º¸¿¡ ´ëÇÑ, ȤÀº À̸¦ Àû¿ëÇÕÀ¸·Î¼­ ÀϾ¼ö ÀÖ´Â ¾î¶°ÇÑ ÇÇÇØ¿¡ ´ëÇÑ Ã¥ÀÓÀ» ÁöÁö ¾Ê´Â´Ù. We will not accept any responsibility for any incorrect information within this document, nor for any damage it might cause when applied. 1.2. ÆÇ±Ç Copyright ? 1997 - 1998 Jacek Radajewski and Douglas Eadline. ÀÌ ¹®¼­ÀÇ ¹èÆ÷¿Í ¼öÁ¤ÀÇ ±ÇÇÑÀº GNU General Public Licence¸¦ µû¸¥´Ù. 1.3. ÀÌ ¹®¼­¿¡ ´ëÇØ Jacek Radajewski´Â 1997³â¿¡ ÀÌ ¹®¼­¿¡ ´ëÇÑ ÀÛ¾÷À» Âø¼öÇÏ¿´°í, °ð Douglas Eadline¿Í °°ÀÌ µ¿ÂüÇÏ¿´´Ù. ¸î ´ÞÀÌ Áö³­ÈÄ º£¿À¿ïÇÁ HOWTO´Â ¸¹Àº ¾çÀÇ ¹®¼­·Î ´Ã¾î ³µ°í, 1998³â 8¿ù¿¡ ¸Þ¾î¿ïÇÁ HOWTO, º£¿À¿ïÇÁ ±¸Á¶ µðÀÚÀÎ HOWTO, ±×¸®°í º£¿À¿ïÇÁ ¼³Ä¡¿Í °ü¸® HOWTO·Î ¼¼ Á¾·ùÀÇ ¹®¼­·Î ³ª´©¾î Á³´Ù. º£¿À¿ïÇÁ HOWTO ¹öÀü 1.0.0Àº 1998³â 11¿ù¿¡ Linux Documentation Project(LDP)·Î ¹ßÇ¥ µÇ¾ú´Ù. ¿ì¸®´Â ÀÌ ÀÛ¾÷ÀÌ ¿Ïº®ÇÑ º£¿À¿ïÇÁ ¹®¼­È­ ÇÁ·ÎÁ§Æ®·Î °¡´Â Ãʼ®ÀÌ µÇ±â¸¦ ¹Ù¶ö»ÓÀÌ´Ù. 1.4. ÀúÀڵ鿡 °üÇØ Jacek Radajewski´Â ³×Æ®¿öÅ© °ü¸®Àڷμ­ ÀÏÇÏ°í ÀÖ°í, ¿À½ºÆ®·¹¸®¾ÆÀÇ Southern Queensland ´ëÇп¡¼­ ÄÄÇ»ÅÍ °úÇко߿¡¼­ ¸í¾Ö ÇÐÀ§(?)¸¦ ¹Þ°í ÀÖ´Ù. JacekÀÇ ¸®´ª½º¿ÍÀÇ Ã¹ ¸¸³²Àº 1995³âÀÌ°í, ù ´«¿¡ ¹ÝÇß´Ù°í ÇÑ´Ù. Jacek´Â ù º£¿À¿ïÇÁ Ŭ·¯½ºÅ͸¦ 1997³â 5¿ù¿¡ ¸¸µé¾ú°í, ±× ÀÌÈÄ·Î °è¼Ó ÀÌ ±â¼úÀ» »ç¿ëÇÏ°í ÀÖ´Ù. Ç×»ó, »õ·Ó°í ´õ ÁÁÀº ¼³Ä¡ ¹æ¹ýÀ» ã°í ÀÖ´Ù. jacek@usq.edu.au ·Î e-mail¸¦ º¸³»¸é Jacek¿Í ¿¬¶ôÀ» ÃëÇÒ ¼ö ÀÖ´Ù. Douglas Eadline´Â ¹Ì±¹ ÆҽǺ£´Ï¾Æ(PA?) º£µå·¹ÇÜÀÇ Paralogic¿¡¼­ Principal ScientistÀÌÀÚ President·Î Ph.DÀÌ´Ù. ±×´Â Physical/Analytical Chemist·Î¼­ ÇØ¿Ô¾ú°í, 1978³â¿¡ È­ÇÐ ½ÇÇèÀåÄ¡¿Í »ç¿ëÇÒ ½Ì±Û º¸µå ÄÄÇ»Å͸¦ óÀ½ Á¦ÀÛÇϸ鼭 ºÎÅÍ ´É·ÂÀ» Çâ»ó½ÃÄÑ ¿Ô´Ù. Eadline ¹Ú»çÀÇ °ü½É ºÐ¾ß´Â ¸®´ª½º, º£¿À¿ïÇÁ Ŭ·¯½ºÅ͵é, ±×¸®°í º´·Ä ¾Ë°í¸®ÁòµéÀ» Á¢¸ñ ½ÃÅ°´Â °ÍÀÌ´Ù. Eadline ¹Ú»ç¿Í ¿¬·ÂÀ» ÃëÇÏ°í ½Í´Ù¸é deadline@plogic.com À¸·Î emailÀ» º¸³»¸é µÈ´Ù. 1.5. °¨»çÀÇ ¸» º£¿À¿ïÇÁ HOWTO¸¦ ÀúÀÛ¿¡ À־ ¸¹Àº ½Ã°£ÀÌ °É·È°í, °á±¹ ¿Ï¼ºÀ» Çß´Ù. ÀÌ¿¡ µµ¿ÍÁֽŠºÐµé¿¡ °¨»ç¸¦ µå¸°´Ù. ÀÌ HOWTO¿¡ ´ÙÀ½ »ç¶÷µéÀÇ µµ¿ò°ú ±â¿©¿¡ °¨»ç µå¸®°í ½Í´Ù. Becky ±×³àÀÇ »ç¶÷, Áö¿ø°ú ÀÌÇØ. Tom Sterling, Don Becker, ±×¸®°í NASA¿¡ ÀÖ´Â ´Ù¸§ »ç¶÷µé, ÀÌµé ´ö¿¡ º£¿À¿ïÇÁ ÇÁ·ÎÁ§Æ®°¡ ½ÃÀ۵Ǿú´Ù. Thanh Tran-Cong°ú Faculty of Engineering and Surverying, topcat º£¿À¿ïÇÁ ¸Ó½ÅÀ» ½ÇÇèÇØÁÙ ¼ö ÀÖ°Ô ÇØÁÖ¾ú´Ù. ³ªÀÇ supervisorÀÎ CHristopher Vance, ¸¹Àº ÁÖµÈ »ý°¢À» ÁÖ¾ú´Ù. ³ªÀÇ Ä£±¸ Russell WaldronÀÇ ÈǸ¢ÇÑ ÇÁ·Î±×·¡¹Ö Âø»ó, ÀÌ ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ Àü¹ÝÀûÀÎ °ü½É°ú Áö¿øÀ» ÇØÁÖ¾ú´Ù. ? My friend Russell Waldron for great programming ideas, his general interest in the project, and support. ³ªÀÇ Ä£±¸ David Smith, ÀÌ ¹®¼­¸¦ ±³Á¤ ÇØÁÖ¾ú´Ù. º£¿À¿ïÇÁ ¸ÞÀϸµ ¸®½ºÆ®¿¡ ¸¹Àº ¿©·¯ »ç¶÷µé, ³ª¿¡°Ô Çǵå¹é°ú »ý°¢À» Á¦°øÇØÁÖ¾ú´Ù. ¸®´ª½º ¿î¿µÃ¼Á¦, ±×¸®°í topcat°ú ´Ù¸¥ º£¿À¿ïÇÁ ¸Ó½ÅµéÀÌ »ç¿ëÇÏ°í ÀÖ´Â °ø°³ ¼ÒÇÁÆ®¿þ¾î ÆÐÅ°Áö¸¦ ´ã´çÇÏ´Â ¸ðµç ºÐµé¿¡°Ô °¨»ç¸¦ µå¸°´Ù. 2. °³¿ä ÄÄÇ»ÅÍ¿Í ³×Æ®¿öÅ© Çϵå¿þ¾îÀÇ ¼º´É Çâ»ó¿¡ µû¶ó¼­ À̵éÀÇ °¡°Ýµµ °¨¼ÒÇÏ°Ô µÇ°í, ¸Å¿ì ºñ½Ñ ½´ÆÛÄÄÇ»Å͵éÀÇ CPU ½Ã°£À» »ç´Â °Í º¸´Ù Ưº° ÁÖ¹®ÀÌ ¾Æ´Ñ ±¸¼º ¿ä¼Òµé·Î ºÎÅÍ º´·Ä °è»ê¿¡ °üÇÑ ½Ã½ºÅÛµéÀÇ ±¸¼ºÀÌ ´õ¿í´õ ½Ç¿ëÀûÀ¸·Î µÇ¾î Á³´Ù. »ç½Ç, º£¿À¿ïÇÁ ÇüÅÂÀÇ ¸Ó½ÅÀÇ ¼º´ÉºñÀ²´ç °¡°ÝÀº ÀüÅëÀûÀÎ ½´ÆÛÄÄÇ»ÅÍ º¸´Ù 3-10¹è Á¤µµ ´õ ¿ì¼öÇÏ´Ù. º£¿À¿ïÇÁ ±¸Á¶ ±Ô¸ð´Â Àû´çÇÏ´Ù. ½±°Ô ±¸¼ºÇÒ ¼ö ÀÖÀ¸¸ç, ´ÜÁö Çϵå¿þ¾î ºñ¿ë¸¸ ÁöºÒÇÏ°í ´ëºÎºÐÀÇ ¼ÒÇÁÆ®¿þ¾î ºñ¿ëÀº ¹«·áÀÌ´Ù. 2.1. ´©°¡ ÀÌ HOWTO ¹®¼­¸¦ Àоî¾ß Çϴ°¡? ÀÌ ¹®¼­´Â ÃÖ¼ÒÇÑ ¸®´ª½º ¿î¿µÃ¼Á¦¿¡ Á¢ÇØÀÖ´Â »ç¶÷À» À§ÇØ ¸¸µé¾î Á³´Ù. º£ÀÌ¿ïÇÁ ±â¼úÀÇ Áö½ÄÀ̳ª ´õ º¹ÀâÇÑ ¿î¿µÃ¼Á¦ÀÇ ÀÌÇØ¿Í ³×Æ®¿öÅ· °³³äÀº ÇʼöÀûÀÎ °ÍÀº ¾Æ´Ï´Ù. ±×·¸Áö¸¸, º´·Ä°è»êÀ» ÇÒ ¼ö ÀÖ´Â ¾î´À Á¤µµÀÇ »óȲÀº µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù(°á±¹ ¾î¶² ÀÌÀ¯·Î À̵çÁö ÀÌ ¹®¼­¸¦ ÀÐÀ» Å×Áö¸¸). ÀÌ ¹®¼­´Â º£¿À¿ïÇÁ¿¡ °üÇÑ ¸ðµç °¡´ÉÇÑ Áú¹®¿¡ ´ëÇØ ´ë´äÇØ ÁÙ ¼ö´Â ¾øÁö¸¸, À߸¸ µÇ¸é, Âø»óÀ» ÁÖ°í ¿Ã¹Ù¸¥ ¹æÇâÀ¸·Î Á¦½ÃÇØÁÙ °ÍÀÌ´Ù. ÀÌ ¹®¼­ÀÇ ¸ñÀûÀº ±âº» Á¤º¸, ¸µÅ©µé°ú Á»´õ ¹ßÀüÀûÀÎ Âü°í ¹®ÇåµéÀ» Àü´ÞÇϴµ¥ ÀÖ´Ù. 2.2. º£¿À¿ïÇÁ¶õ? º£¿À¿ïÇÁ: far flew the boast of him, son of Scyld, in the Scandian lands. So becomes it a youth to quit him well with his father's friends, by fee and gift, that to aid him, aged, in after days, come warriors willing, should war draw nigh, liegemen loyal: by lauded deeds shall an earl have honor in every clan. (¿ªÀÚÁÖ:À̺κÐÀº ¼­»ç½Ã ºÎºÐ, ¹ø¿ª¿¡ ÇÑ°è°¡ ^^;) º£¿À¿ïÇÁ´Â ÀÏÂïÀÌ °í´ë ¿µ¾î·Î ¾¯¾îÁø ¼­»ç½ÃÀÌ´Ù. GrerdelÀ̶ó´Â ±«¹°À» ¸·¾Æ³½ ¸Å¿ì ÈûÀÌ ½ê°í, ¿ë°¨ÇÑ ¿µ¿õ¿¡ ´ëÇÑ À̾߱âÀÌ´Ù. º£¿À¿ïÇÁ ¿µ¿õ¿¡ ´ëÇØ ´õ ¾Ë°í ½ÍÀ¸¸é "¿ª»ç"ºÎºÐÀ» ã¾Æ º¸¾Æ¶ó. º£¿À¿ïÇÁ ½´ÆÛÄÄÇ»ÅÍ ½Ã¼³µéÀ» ¸¸µé°Å³ª »ç¿ëÇÏ´Â »ç¶÷µé ¸¸Å­À̳ª ¸¹Àº º£¿À¿ïÇÁ Á¤ÀÇ°¡ ÀÖÀ» °ÍÀÌ´Ù. ¸î¸î »ç¶÷µéÀº NASAÀÇ °íÀ¯ÀÇ ¸Ó½Å°ú °°Àº ¹æ¹ýÀ¸·Î ¸¸µé¾îÁø ±×µéÀÇ ½Ã½ºÅÛ¸¸À» º£ÀÌ¿ïÇÁ¶ó°í ÁÖÀåÇÑ´Ù. ±Ø´ÜÀÇ ´Ù¸¥ »ç¶÷µéÀº º´·Ä ÄÚµåÀ» ¼öÇàÇÏ´Â ¾î¶² ¿öÅ©½ºÅ×À̼ǵµ º£ÀÌ¿ïÇÁ¶ó°í Çϱ⵵ ÇÑ´Ù. ³ªÀÇ º£¿À¿ïÇÁÀÇ Á¤ÀÇ´Â À§ÀÇ ±â¼úÇÑ µÎ°¡Áö °üÁ¡ÀÇ Ã¶ÃæÀ¸·Î, º£¾î ¿ïÇÁÀÇ ¸ÞÀϸµ ¸®½ºÆ®¿¡ Æ÷½ºÆÃµÈ ±ÛÀ» ¹ÙÅÁÀ¸·Î ±â¼úÇϸé: º£¿À¿ïÇÁ´Â º´·Ä °è»êÀ» À§ÇØ »ç¿ëµÉ ¼öÀÖ´Â ´ÙÁß ÄÄÇ»ÅÍ ±¸Á¶ÀÌ´Ù. ÀÌ´Â ÀÌ´õ³ÝÀ̳ª ´Ù¸¥ ³×Æ®¿öÅ©¸¦ ÅëÇØ ¼­·Î ¿¬°áµÈ ÇϳªÀÇ ¼­¹ö ³ëµå¿Í Çϳª ÀÌ»óÀÇ Å¬¶óÀ̾ðÆ® ³ëµå·Î ±¸¼ºµÇ¾îÁø ½Ã½ºÅÛÀÌ´Ù. ÀÌ´Â ¸®´ª½º¸¦ µ¹¸® ¼ö ÀÖ´Â PC¿Í °°Àº ÀϹÝÀûÀÎ Çϵå¿þ¾î ±¸¼ºµé, Ç¥ÁØ ÀÌ´õ³Ý ¾îµªÅ͵é, ±×¸®°í ½ºÀ§Ä¡µé·Î ÀÌ·ç¾îÁø´Ù. ÀÌ´Â ¾î¶² ÁÖ¹®Çü Çϵå¿þ¾î ±¸¼º¿ä¼Ò¿Í trivially reproducible¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù. ¶ÇÇÑ, º£¿À¿ïÇÁ´Â ¸®´ª½º ¿î¿µÃ¼Á¦, Parallel Virtual Machine (PVM)°ú Message Passing Interface (MPI)¿Í °°Àº ÀϹÝÀûÀÎ ¼ÒÇÁÆ®¿þ¾î ¸¦ »ç¿ëÇÑ´Ù. ¼­¹ö ³ëµå´Â ¸ðµç Ŭ·¯½ºÅ͵éÀ» Á¶ÀýÇÏ°í Ŭ¶óÀ̾ðÆ® ³ëµå¿¡°Ô ÆÄÀÏÀ» Á¦°øÇÑ´Ù. ´õ¿íÀÌ, Ŭ·¯½ºÅÍÀÇ Äְܼú ¿ÜºÎ·Î ÅëÇÏ´Â °ÔÀÌÆ®¿þÀ̵µ Á¦¾î¸¦ ÇÑ´Ù. °Å´ëÇÑ º£¿À¿ïÇÁ ¸Ó½Å Çϳª ÀÌ»óÀÇ ¼­¹ö ³ëµå¸¦ °¡Áö°í °¡´ÉÇÏ´Ù¸é ´Ù¸¥ ³ëµåµéÀÌ Äܼ³À̳ª ¸ð´ÏÅ͸µ ½ºÅ×À̼ǰú °°Àº ƯÁ¤ ÀÛ¾÷µéÀ» ¸Ã¾Æ¼­ ó¸®ÇÏ°Ô ÇÑ´Ù. ´ëºÎºÐÀÇ °æ¿ì º£¿À¿ïÇÁ ½Ã½ºÅÛ¿¡¼­ Ŭ¶óÀ̾ðÆ® ³ëµåµéÀº º¡¾î¸®ÀÌ°í, À̵éÀº ´õ º¡¾î¸®Àϼö·Ï ´õ¿í ÁÁ´Ù. ³ëµåµéÀº ¼­¹ö ³ëµå¿¡ ÀÇÇØ Á¶ÀýµÇ°í °ü¸®µÈ´Ù. ±×¸®°í, ´ÜÁö ±×µéÀÌ ¹«¾ùÀ» ÇÒ·Á°í ÇÏ´ÂÁö´Â ¸»Çϱ⸸ ÇÏ¸é µÈ´Ù. µð½ºÅ©°¡ ¾ø´Â Ŭ¶óÀ̾ðÆ® ¼³Á¤¿¡¼­ Ŭ¶óÀ̾ðÆ® ³ëµåµéÀº À̵éÀÇ IP ÁÖ¼Ò¿Í À̸§À» ¼­¹ö°¡ ¾Ë¸®±â Àü±îÁö À̰͵é Á¶Â÷ ¾ËÇÊ¿ä°¡ ¾ø´Ù. º£¿À¿ïÇÁ¿Í Cluster of Workstations (COM)°úÀÇ °¡Àå Å« Â÷ÀÌÁ¡Àº º£¿À¿ïÇÁ´Â ¿©·¯ °³ÀÇ ¿öÅ©½ºÅ×ÀÌ¼Çµé º¸´Ù ÇϳªÀÇ ¸Ó½Å ÇüÅ·ΠÀÛµ¿ÇÑ´Ù´Â »ç½ÇÀÌ´Ù. ¸¹Àº °æ¿ìÀÇ Å¬¶óÀ̾ðÆ® ³ëµåµéÀº Å°º¸µå³ª ¸ð´ÏÅ͸¦ °¡Áö°í ÀÖÁö ¾Ê°í, ´ÜÁö ¿ø°Ý ·Î±×ÀÎÀ̳ª °¡´ÉÇÏ´Ù¸é Á÷·Ä Å͹̳θ¦ ÅëÇؼ­¸¸ ¿¢¼¼½ºÇÒ ¼ö ÀÖ´Ù. º£¿À¿ïÇÁ ³ëµåµéÀº ¸¶´õº¸µå¿¡ CPU³ª ¸Þ¸ð¸® ¸ðµâÀ» ²È¾Æ³Ö´Â ÇüÅÂó·³ Ŭ·¯½ºÅÍ¿¡ ²È¾Æ³ÖÀ» ¼ö ÀÖ´Â CPU + ¸Þ¸ð¸® ÆÑÅ°Áö °°Àº °ÍÀ̶ó ÇÒ ¼ö ÀÖ´Ù. º£¿À¿ïÇÁ´Â ƯÁ¤ÇÑ ½ºÇÁÆ®¿þ¾î ÆÑÅ°Áö, »õ·Î¿î ³×Æ®¿öÅ© À§»óÀ̳ª ÃֽŠĿ³ÎÀ» ÆÄÇØÄ£°Íµµ ¾Æ´Ï´Ù. º£¿À¿ïÇÁ´Â º´·ÄÇüÅÂÀÇ °¡»ó ½´ÆÛÄÄÇ»ÅÍ·Î ¸®´ª½º ÄÄÇ»Å͵éÀ» Ŭ·¯½ºÅ͸µÇÑ ±â¼úÀÌ´Ù. ¶ÇÇÑ, º£¿À¿ïÇÁ¸¦ ´õ ºü¸£°í, ´õ ½±°Ô ±¸¼ºÇÏ°í, ´õ À¯¿ëÇÏ°Ô ÇÒ Ä¿³Î º¯°æ, PVM°ú MPI ¶óÀ̺귯¸®, ±×¸®°í ¼³Á¤ Åøµé°ú °°Àº ¸¹Àº ¼ÒÇÁÆ®¿þ¾î ÆÐÅ°ÁöµéÀÌ ÀÖÀ» »ÓÀÌ´Ù. ¾î¶² Ãß°¡ÀûÀÎ ¼ÒÇÁÆ®¿þ¾î ¾øÀÌ À̸¦ ÀÌ¿ëÇؼ­ Ç¥ÁØ ¸®´ª½º ¹èÆ÷À» »ç¿ëÇÏ¿© º£¿À¿ïÇÁ Ŭ·¡½º ¸Ó½ÅÀ» ±¸¼ºÇÒ ¼ö ÀÖ´Ù. ´ç½ÅÀÌ ³×Æ®¿öÅ©¿¡ ¿¬°áµÈ µÎ ´ëÀÇ ¸®´ª½º Ä¿Ç»Å͵éÀ» °¡Áö°í ÀÖ°í, ÃÖ¼ÒÇÑ /home ÆÄÀÏ ½Ã½ºÅÛÀÌ NFS¸¦ ÅëÇÏ¿© °øÀ¯ÇÏ°í ÀÖ°í, ¿ø°Ý ½©(rsh)¸¦ ½ÇÇàÇÒ ¼ö ÀÖÀ» ¸¸Å­ ½Å¿ëÇÏ°í ÀÖ°í ÀÖ´Ù¸é, ´ç½ÅÀº ÇϳªÀÇ °£´ÜÇÑ 2 ³ëµåÀÇ º£¿À¿ïÇÁ ¸Ó½ÅÀ» °¡Áö°í ÀÖ´Ù°í ¸»ÇÒ ¼ö ÀÖ´Ù. 2.3. ºÐ·ù º£¿À¿ïÇÁ ½Ã½ºÅÛµéÀº ´Ù¾çÇÑ ºÎºÐµé·Î ±¸¼ºµÇ¾îÁ® ¿Ô´Ù. ¼º´É Çâ»óÀÇ ¸ñÀû À» °¡Áø ºñ-ÀϹÝÀûÀÎ ±¸¼º¿ä¼Ò ( ÇϳªÀÇ Á¦Á¶¾÷ÀÚ°¡ µ¶´ÜÀûÀ¸·Î »ý»êÇÑ °Í) µéµµ ¼ö¿ëÇØ ¿Ô´Ù. ½Ã½ºÅÛµéÀÇ ´Ù¸¥ ŸÀԵ鸦 ¼³¸íÇϰųª Á» ´õ ½±°Ô ¸Ó½Å¿¡ ´ëÇØ Åä·ÐÇϱâ À§Çؼ­, ¿ì¸®´Â ´ÙÀ½°ú °°Àº °£´ÜÇÑ ºÐ·ù¾ÈÀ» Á¦¾ÈÇÑ´Ù: CLASS I º£¿À¿ïÇÁ: ÀÌ ¸Ó½ÅÀÇ Å¬·¡½º´Â ÀϹÝÀûÀÎ "Ưº° ÁÖ¹®ÀÌ ¾Æ´Ñ" ºÎºÐÀ¸·Î ±¸¼ºµÈ´Ù. ÀϹÝÀûÀÎ "Ưº° ÁÖ¹®ÀÌ ¾Æ´Ñ" ºÎºÐµéÀ» Á¤ÀÇÇϱâ À§ÇÑ "Computer Shopper" Áõ¸í °Ë»ç¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù. (Computer Shopper´Â PC ½Ã½ºÅÛµé°ú ±¸¼º¿ä¼Ò¿¡ ´ëÇÑ 1ÀÎÄ¡ µÎ²²ÀÇ ¿ù°£ ÀâÁö/¸ñ·ÏÀ» ¸»ÇÑ´Ù.) ÀÌ ½ÃÇèÀº ´ÙÀ½°ú °°´Ù: CLASS I º£¿À¿ïÇÁ´Â ÃÖ¼ÒÇÑ ¼¼ °³ÀÇ ±¹°¡ÀûÀ¸·Î/Àü¼¼°èÀûÀ¸·Î ¹èºÎµÈ ±¤°í ¸ñ·Ïµé¿¡¼­ ¹ß°áÇÒ ¼ö ÀÖ´Â ºÎÇ°µé·Î ºÎÅÍ Á¶¸³ °¡´ÉÇÑ ¸Ó½ÅÀ» ¸»ÇÑ´Ù. CLASS I ½Ã½ºÅÛÀÇ ÀÌÁ¡: ¿©·¯°¡Áö Á¦Ç°µéÀ» ÀÌ¿ëÇÏ¿© ±¸¼ºÇÒ ¼ö ÀÖ´Â Çϵå¿þ¾î ( ³·Àº °¡°Ý, ½¬¿î À¯Áö) ÇϳªÀÇ Çϵå¿þ¾î ȸ»ç¿¡ ÀÇÁ¸ÇÏÁö ¾ÊÀ½ ¸®´ª½º commodity¿¡¼­ Áö¿øµÇ´Â µå¶óÀ̹ö ÀϹÝÀûÀ¸·Î Ç¥ÁؾÈÀ» ±âº»À» µÐ °Í (SCSI, ÀÌ´õ³Ý, µîµî.) CLASS I ½Ã½ºÅÛÀÇ ´ÜÁ¡: ÃÖ°íÀÇ ¼º´ÉÀ» À§Çؼ­´Â CLASS II Çϵå¿þ¾î¸¦ ¿ä±¸ CLASS II º£¿À¿ïÇÁ CLASS II º£¿À¿ïÇÁÆ®´Â ´Ù¸¸ Computer Shopper ÀÎÁõ ½ÃÇè¿¡ Åë°úÇÏÁö ¾ÊÀº ¾î¶² ¸Ó½ÅÀÌ¶óµµ µÈ´Ù. ÀÌ´Â ³ª»Û °Í¸¸Àº ¾Æ´Ï´Ù. ½ÇÁ¦·Î´Â, ´ÜÁö ¸Ó½ÅÀÇ ºÐ·ùÀÏ»Ó ÀÌ´Ù. CLASS II ½Ã½ºÅÛÀÇ ÀÌÁ¡: ¸Å¿ì ÁÁÀº ¼º´ÉÀ» º¸¿©ÁÜ! CLASS II ½Ã½ºÅÛÀÇ ´ÜÁ¡: µå¶óÀ̹ö Áö¿øÀÌ º¯µ¿Àû ÇϳªÀÇ Çϵå¿þ¾î ȸ»ç¿¡ ÀÇÁ¸Àû CLASS I ½Ã½ºÅ۵麸´Ù °í°¡ ÇϳªÀÇ CLASS´Â ´Ù¸¥ °Í º¸´Ù ´õÁÁÀ» ÇÊ¿ä´Â ¾ø´Ù. ÀÌ´Â ´ç½ÅÀÇ ÇÊ¿ä¿Í ¿¹»ê ¿¡ µû¸¦»ÓÀÌ´Ù. ÀÌ·± ºÐ·ù ½Ã½ºÅÛÀº º£¿À¿ïÇÁ ½Ã½ºÅ۵鿡 °üÇÑ ³íÀǸ¦ ´õ¿í °£°áÇÏ°Ô ÇϱâÀ§ÇÑ °ÍÀÌ´Ù. "½Ã½ºÅÛ µðÀÚÀÎ"ºÎºÐ¿¡¼­ ´ç½ÅÀÇ ¿ä±¸¿¡ °¡Àå ÀûÇÕÇÑ ½Ã½ºÅÛÀÇ Á¾·ù°¡ ¹«¾ùÀÎÁö °áÁ¤Çϴµ¥ µµ¿òÀ» ÁÙ °ÍÀÌ´Ù. 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 ¿ä¼Òµé·Î ÀÌ·ç¾îÁö°í ÁÖ·Î °ø°³ ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇϱ⠴빮¿¡ °¡°Ý/¼º´É ºñ°¡ ¸Å¿ì ÁÁ´Ù. ¿©·¯ ½Ã½ºÅÛÀ» °¡Áö°í ÀÖ´Â º£¿À¿ïÇÁ´Â »ç¿ëÀÚ°¡ º£¿À¿ïÇÁ Ŭ·¯½ºÅÍÀ» ¹Ù¶óº¼¶§ ÇϳªÀÇ °è»ê ¿öÅ©½ºÅ×ÀÌ¼Ç À¸·Î º¸À̴ Ư¡À» °¡Áö°í ÀÖ´Ù. 4. ½Ã½ºÅÛ µðÀÚÀÎ Çϵå¿þ¾î¸¦ ±¸ÀÔÇϱâ Àü¿¡ ½Ã½ºÅÛÀÇ µðÀÚÀÎÀ» °í·ÁÇغ¸´Â °ÍÀÌ ÁÁ´Ù. º£¿À¿ïÇÁ ½Ã½ºÅÛÀÇ µðÀÚÀÎÀ» Çϱâ À§ÇÑ ±âº»ÀûÀÎ 2°¡Áö Çϵå¿þ¾î ¹®Á¦Á¡·Î´Â: ´ç½ÅÀÌ »ç¿ëÇÒ ³ëµå³ª ÄÄÇ»ÅÍÀÇ Á¾·ù; ÄÄÇ»ÅÍ ³ëµåµéÀ» ¿¬°áÇϱâÀ§ÇÑ ¹æ¹ý. Çϵå¿þ¾î¸¦ °áÁ¤Çϴµ¥ À־ ¿µÇâÀ» ¹ÌÄ¡´Â ¼ÒÇÁÆ®¿þ¾î ¹®Á¦Á¡ÀÌ Åë½Å ¶óÀ̺귯¸®³ª API ÀÌ´Ù. ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ »çÇ×Àº ÀÌ ¹®¼­ ÈĹݺο¡¼­ ´Ù·ç±â·Î ÇÏ°Ú´Ù. ¼±ÅÃÀÇ ÆøÀÌ ±×·¸°Ô ³ÐÁö´Â ¾ÊÀº ¹Ý¸é¿¡, º£¿À¿ïÇÁ ½Ã½ºÅÛÀ» ±¸¼ºÇÒ¶§ ¸î °³ÀÇ Áß¿äÇÑ µðÀÚÀÎ °áÁ¤ÀÌ ÀÖ´Ù. º´·Ä °è»êÀÇ °úÇÐ(¶Ç´Â ¿¹¼ú)Àº ¸¹Àº ´Ù¸¥ Çؼ®ÀÌ ÀÖÀ» ¼ö Àֱ⶧¹®¿¡, °³¿ä´Â ´ÙÀ½¿¡ Á¦°øÇÏ°Ú´Ù.(?) ¹è°æÀÌ µÇ´Â ¿ä¼Ò¸¦ ÀÐ°í ½ÍÁö ¾ÊÀ¸¸é, ÀÌ ÀýÀ» ¶Ù¾î ³Ñ¾îµµ ÁÁÁö¸¸, ¸¶Áö¸· Çϵå¿þ¾î °áÁ¤À» Çϱâ Àü¿¡ "ÀûÇÕ¼º"À̶ó´Â ÀýÀ» Àд °ÍÀ» ±ÇÇÏ´Â ¹ÙÀÌ´Ù. 4.1. º´·Ä °è»ê¿¡À־ ¹è°æ ¿ä¾à. ÀÌ ÀýÀº º´·Ä °è»ê °³³ä¿¡ ´ëÇÑ ¹è°æÁö½ÄÀ» Á¦°øÇÒ °ÍÀÌ´Ù. º´·Ä °è»ê °úÇаú ±â¼úÀ» ¿Ïº®È÷ ´Ù·çÁö´Â ¾ÊÀ» °ÍÀÌ´Ù. º£¿À¿ïÇÁ µðÀÚÀÌ³Ê¿Í »ç¿ëÀÚ¿¡°Ô Áß¿äÇÑ ¹®Á¦Á¡¿¡ ´ëÇÑ °£¶ôÇÑ ±â¼úÀ» ÇÒ °ÍÀÌ´Ù. ´ç½ÅÀÇ º£¿À¿ïÇÁ¸¦ µðÀÚÀÎÇÏ°í ±¸¼ºÇÔ¿¡ À־, ´ç½ÅÀÇ °áÁ¤°úÁ¤¿¡ À־ ´ÙÀ½¿¡ ±â¼úµÉ ¸¹Àº ¹®Á¦Á¡ÀÌ Áß¿ä ÇÏ°Ô µÇ°Ô µÉ °ÍÀÌ´Ù. º£¿À¿ïÇÁ ±¸¼º¿ä¼ÒÀÇ Æ¯¼ºÀ¸·Î ÀÎÇؼ­ º£¿À¿ïÇÁ ½´ÆÛÄÄÇ»ÅÍ´Â ¸¹Àº ÀÎÀÚµéÀÌ »ç¿ëÀÚÀÇ Á¦¾îÇÏ¿¡ Àֱ⠶§¹®¿¡ Á¶½É½º·´°Ô °í·ÁÇÏ´Â °ÍÀ» ¿ä±¸ÇÑ´Ù. ÀϹÝÀûÀ¸·Î, º´·Ä °è»ê°ú °ü·ÃµÈ ¹®Á¦Á¡µéÀ» ÀÌÇØÇϱ⠾î·Á¿î °Í¸¸Àº ¾Æ´Ï´Ù. »ç½Ç, ¹®Á¦Á¡À» ÀÌÇØÇϱ⸸ Çϸé, ´ç½ÅÀÇ ±â´ë´Â ´õ¿í Çö½ÇÀûÀÌ°Ô µÇ°í ¼º°øÀº ´õ¿í Çö½Ç°ú °¡±î¿öÁö°Ô µÉ °ÍÀÌ´Ù. °¡Àå Áß¿äÇÑ ÀÎÀÚÀÎ ÇÁ·Î¼¼¼­ ¼Óµµ´Â "¼øÂ÷ ¼¼°è"¿Í´Â ´Þ¶ó¼­, "º´·Ä ¼¼°è"¿¡¼­ ÇÁ·Î¼¼¼­ ¼Óµµ´Â Àüü ½Ã½ºÅÛ ¼º´É°ú È¿À²¸¦ °áÁ¤ÇÏ´Â ¸î°¡Áö ÀÎÀÚÁß¿¡ ÇϳªÀÌ´Ù. 4.2. º´·Ä °è»ê ¹æ¹ý º´·Ä °è»êÀº ¸¹Àº ÇüŸ¦ °¡Áö°í ÀÖ´Ù. »ç¿ëÀÚ °üÁ¡¿¡¼­ °¢°¢ÀÇ ¹æ¹ý·ÐÀÇ ÀåÁ¡°ú ´ÜÁ¡¸¦ °í·ÁÇغ¸´Â °ÍÀÌ Áß¿äÇÏ´Ù. ´ÙÀ½ ÀýÀº º´·Ä °è»êÀÇ ¹æ¹ý»óÀÇ ¸î°¡Áö °üÁ¡À» Á¦°øÇÏ°í, ¸Ó½ÅÀÌ ÀÏ·ÃÀÇ °úÁ¤Áß¿¡ ¾î´À °÷ÀÇ º£¿À¿ïÇÁ ¸Ó½ÅÀÌ ½ÇÆÐÇÏ¿´´ÂÁö¸¦ °¡¸£Ä¡·Á°í ÇÑ´Ù. 4.2.1. ¿Ö ÇÑ °³ ÀÌ»óÀÇ CPU°¡ ÇÊ¿äÇÑ°¡? ÀÌ Áú¹®ÀÇ ´ë´äÀº Áß¿äÇÏ´Ù. 8°³ÀÇ CPU¸¦ °¡Áö°í ¿öµåÇÁ·Î¼¼¼­¸¦ ½ÇÇàÇÑ´Ù°í Çϸé "over-kill"ó·³ µé¸®°í, ¶ÇÇÑ ±×·¸´Ù. À¥ ¼­¹ö, µ¥ÀÌÅͺ£À̽º, ·£´õ¸µ ÇÁ·Î±×·¥, ¶Ç´Â ÇÁ·ÎÁ§Æ® ÀÏÁ¤Ç¥¿¡ ´ëÇؼ­´Â ¾î¶°ÇÑ°¡? ¿©ºÐÀÇ CPU°¡ ÀÖ´Ù¸é µµ¿òÀÌ µÉ °ÍÀÌ´Ù. º¹ÀâÇÑ ½Ã¹Ä·¹À̼Ç, À¯Ã¼¿ªÇÐ ÄÚµå, ¶Ç´Â µ¥ÀÌŸ ¸¶ÀÌ´× Ç®±×¸²Àº ¾î¶°ÇÑ°¡? ÀÌ·± »óȲ¿¡¼­´Â ¿©ºÐÀÇ CPU´Â ÂðÂ¥·ç µµ¿òÀÌ µÈ´Ù. »ç½Ç, ´ÙÁß CPUÀº ´õ¿í´õ ¸¹Àº ¹®Á¦µéÀ» Ç®±âÀ§ÇØ »ç¿ëµÇÁö°ï ÇÑ´Ù: º¸Åë ´ÙÀ½ Áú¹® À¸·Î: "¿Ö µÎ °³ ¶Ç´Â ³× °³ÀÇ CPU°¡ ÇÊ¿äÇÑ°¡, ³ª´Â 986 Åͺ¸-ÇÏÀÌÆÛ Ä¨ÀÌ ³ª¿À±â¸¦ ±â´Ù¸®·Á°í ÇÑ´Ù." ÀÌ·¯ÇÑ ÀÌÀ¯·Î´Â: 1. ¸ÖƼ Å×½ºÅ· ¿î¿µ üÁ¦ÀÇ »ç¿ëÀ¸·Î, ¸î°¡ÁöÀÇ °ÍµéÀ» ÇÑ ¹ø¿¡ ½ÇÇà ÇÒ ¼ö ÀÖ´Ù. Çϳª ÀÌ»óÀÇ Àú·ÅÇÑ CPU¸¦ °¡Áö°í ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â °íÀ¯ÀÇ "º´·Ä¼º"À» ¸»ÇÑ´Ù. 2. ÇÁ·Î¼¼¼­ ¼Óµµ´Â ¸Å 18 °³¿ù ¸¶´Ù µÎ ¹è·Î Çâ»óµÇ¾î ¿Ô´Ù. ±×·¯³ª, ¸Þ¸ð¸® ¼Óµµ³ª ÇÏµå µð½ºÅ© ¼Óµµ´Â ¾î¶°ÇÑ°¡? ºÒÇàÇÏ°Ôµµ ÀÌ·± ¼Óµµ´Â CPU ¼Óµµ ¸¸Å­À̳ª ºü¸£°Ô Áõ°¡È÷Áö ¸øÇß´Ù. ÁÖ¸ñ ÇÒ °ÍÀº ¸ðµç Ç®±×¸²Àº "out of cache memory access"¿Í ÇÏµå µð½ºÅ© ¿¢¼¼½º¸¦ ¿ä±¸ÇÑ´Ù´Â °ÍÀÌ´Ù. º´Çà¿¡ À־ ÀÌ·± °ÍÀ» Çϱâ À§Çؼ­´Â ¸î°¡Áö Á¦ÇÑÁ¡À» ȸÇÇÇÏ´Â ¹æ¹ýÀ» »ç¿ë ÇØ¾ß ÇÑ´Ù. 3. ¿¹»óÇϱ⸦ ÇÁ·Î¼¼½º ¼Óµµ´Â 2005³â ÀÌÈķδ 18°³¿ù ¸¶´Ù 2¹è·Î Áõ°¡ ÇÏÁö ¸øÇÒ °ÍÀ̶ó°í ÃßÃøÇÑ´Ù. ÀÌ·± °æÇâÀ» ±Øº¹ÇϱâÀ§Çؼ­´Â ¸Å¿ì ½É°¢ÇÑ Àå¾Ö¹°µéÀÌ ³õ¿©ÀÖ´Ù. 4. Ç®±×¸²¿¡ µû¶ó¼­, º´·Ä °è»êÀº 2¿¡¼­ 500¹èÁ¤µµ±îÁö ´õ ºü¸£°Ô ¼Óµµ¸¦ Çâ»ó ½Ãų ¼ö ÀÖ´Ù( ¸î¸îÀÇ °æ¿ì ´õ ºü¸£´Ù). ÀÌ¿Í °°Àº ¼º´ÉÀº ´ÜÀÏ ÇÁ·Î¼¼¼­¸¦ »ç¿ëÇÏ´Â °÷¿¡¼­´Â ºÒ°¡´ÉÇÏ´Ù. ½´ÆÛÄÄÇ»ÅÍ Á¶Â÷µµ ¸Å¿ì ºü¸¥ ÁÖ¹®Çü ÇÁ·Î¼¼½ºÀ» »ç¿ëÇÏ´Â °Í¿¡¼­ ´ÙÁß "commodity-off-the- shelf" CPU¸¦ °¡Áö°í ¸¸µé°í ÀÖ´Ù. °è»ê ÇÑ°è ¹®Á¦Á¡ ¶§¹®À̳ª I/O ÇÑ°è ¹®Á¦Á¡À¸·Î ÀÎÇؼ­ ¼Óµµ¸¦ ¿äÇÑ´Ù¸é, º´·ÄÀ» »ý°¢Çغ¸´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. º´·Ä °è»êÀÌ ´Ù´çÇÑ ¹æ¹ýÀ¸·Î ±¸ÇöÀÌ °¡´ÉÇϱ⠶§¹®¿¡ º´·Ä·Î ¹®Á¦¸¦ ÇØ°áÇÏ´Â °ÍÀº ¸Å¿ì Áß¿äÇÑ °á½ÉÀ» ÇؾßÇÒ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ °áÁ¤Àº ÈÞ´ë¼®, ¼º´É, ±×¸®°í Ç®±×¸²ÀÇ °¡°Ý¿¡ ´ëÇÑ È¿°ú¸¦ ±Ø´ëÈ­ÇÒ ¼ö ÀÖ´Ù. ±â¼úÀûÀ¸·Î µé¾î°¡±â Àü¿¡, Ä£¼÷ÇÑ ¿¹Á¦ÀÎ »óÁ¡¿¡¼­ ±æ°Ô ´Ã¾î¼­ ÁÙ¿¡¼­ ´ë±â¸¦ °¡Áö°í ½ÇÁ¦ "º´·Ä °è»ê ¹®Á¦Á¡"¿¡ ´ëÇØ ´Ù·ç¾î º¸°Ú´Ù. 4.2.2. º´·Ä ó¸® °¡°è ¾ÆÁÖ Å« °¡°è ¾Õ¿¡ 8°³ÀÇ Çö±Ý °è»ê´ë·Î ÇÔ²² ÀÖ´Ù°í ÇÏÀÚ. °¢°¢ÀÇ °è»ê´ë´Â ÇϳªÀÇ CPUÀÌ°í °¢ °í°´Àº ÄÄÇ»ÅÍ ÇÁ·Î±×·¥ÀÌ¶ó °¡Á¤ÇÏÀÚ. ÄÄÇ»ÅÍ ÇÁ·Î±×·¥ÀÇ Å©±â(ÀÏÀÇ ¾ç)Àº °¢ °í°´ÀÇ ¿ä±¸ÀÇ Å©±âÀÌ´Ù. ´ÙÀ½ analogyµéÀº º´·Ä °è»ê °è³äÀ» ¼³¸íÇÒ¶§ »ç¿ëµÇ°ï ÇÑ´Ù. 4.2.2.1. Single-tasking Operating System ÇϳªÀÇ Çö±Ý °è»ê´ë´Â ¿­·ÁÀÌ°í(»ç¿ëÁß) Çѹø¿¡ ÇϳªÀÇ °í°´À» ó¸®ÇÑ´Ù. ¿¹: MS DOS 4.2.2.2. Multi-tasking Operating System: ÇϳªÀÇ Çö±Ý °è»ê´ë´Â ¿­·Á ÀÖÁö¸¸, ÇöÀç Çѹø¿¡ °¢ ¿ä±¸ÀÇ ºÎºÐ¸¸À» ó¸® ÇÑ°í ´ÙÀ½ »ç¶÷ÀÇ ¿ä±¸ÀÇ ÀϺθ¦ ó¸®ÇÑ´Ù. ¸ðµÎ°¡ ÁÙÀ» °°ÀÌ Áö³ª°¡´Â °Í ó·³ º¸ÀÏÅ×Áö¸¸, ¾Æ¹«µµ ÁÙ¿¡ ¾ø´Ù¸é, ´õ »¡¸® Áö³ª°¡°Ô µÉ °ÍÀÌ´Ù. ¿¹: UNIX, NT using a single CPU 4.2.2.3. Multitasking Operating Systems with Multiple CPUs: ÇöÀç °¡°Ô¿¡ ¸î°³ÀÇ Çö±Þ °è»ê´ë°¡ ¿­·ÁÀÖ´Ù. °¢ ¿ä±¸´Â µû·Îµû·Î Çö±Ý °è»ê´ë°¡ ó¸®ÇÏ°í ÁÙÀº ´õ »¡¸® À̵¿ÇÏ°Ô µÈ´Ù. À̸¦ SMP (Symetric Multi- processing)¶ó ÇÑ´Ù. ¿©ºÐÀÇ Çö±Ý °è»ê´ë´Ù ¿­·Á ÀÖÀ» Áö¶óµµ, ÇÑ°³ÀÇ Çö±Ý °è»ê´ë¸¦ »ç¿ëÇÏ´Â °Í º¸´Ù ´õ »¡¸® Áö³ª°¡Áö´Â ¸øÇÑ´Ù. ¿¹: UNIX and NT with multiple CPUs 4.2.2.4. Threads on a Multitasking Operating Systems extra CPUs ¿ä±¸ Áß¿¡ "break-up"À̶ó´Â ¾ÆÀÌÅÛÀÌ ÀÖ´Ù¸é, Çѹø¿¡ ¿©·¯ Çö±Ý °è»ê´ë¸¦ »ç¿ëÇÏ¿© ÁÙÀ» ´õ ºü¸£°Ô À̵¿ÇÒ ¼ö ÀÖ´Ù. ¸ÕÀú, ¿©·¯°³ÀÇ Çö±Ý °è»ê´ë¸¦ »ç¿ëÇÒ·Á¸é "´ç½ÅÀÇ ¿ä±¸¸¦ Á¶°¢³¿"½Ã°£À» µé¿©¾ß Çϱ⠶§¹®¿¡ ¸¹Àº ¾çÀÇ ¹°°ÇÀ» °¡Áö°í ÀÖ´Ù°í ÇÏÀÚ. ÀÌ·ÐÀûÀ¸·Î´Â Àüº¸´Ù "n"¹è Á¤µµ ´õ ºü¸£°Ô ÁÙÀ» Åë°úÇÒ ¼ö ÀÖ´Ù(¿©±â¼­ "n"Àº Çö±Ý °è»ê´ë °³¼ö). Ãâ³³¿øÀÌ ÃÑ Çհ踦 ±¸ ÇÒ¶§, ´Ù¸¥ "Áö¿ª" Çö±Þ °è»ê´ë¸¦ º¸°Å³ª ¸»À» ÇÏ¿© Àçºü¸£°Ô Á¤º¸¸¦ ±³È¯ ÇÑ´Ù. ±×µéÀÌ Á¤º¸¸¦ ã±â À§ÇØ ´Ù¸¥ Çö±Ý °è»ê´ë¸¦ ±â¿ô°Å¸± Áö¶óµµ, ±×µéÀº ´õ »¡¸® ÀÏÀ» ó¸®Çϱ⸦ ¿øÇÑ´Ù.(?) ±×·¯³ª ¾ó¸¶³ª ¸¹Àº Çö±Þ °è»ê´ë°¡ °¡°è¿¡ ÀÖ¾î¾ß ÇÏ°í ¾î´À Àå¼Ò¿¡ À§Ä¡ÇØ¾ß È¿°úÀûÀΰ¡ÇÏ´Â Á¦ÇÑ¿¡ ºÎµúÄ¡°Ô µÈ´Ù. Amdals ¹ýÄ¢¿¡¼­ Ç®±×¸²ÀÇ ¼ÓµµÇâ»óÀº ÇÁ·Î±×·¥ÀÇ °¡Àå ´ÊÀº ÀÏ·ÃÀÇ ºÎºÐÀ¸·Î Á¦ÇÑÇØ¾ß µÈ´Ù´Â °ÍÀÌ´Ù. ¿¹: °°Àº ¸¶´õº¸µå¿¡¼­ ¿©ºÐÀÇ CPU¸¦ °¡Áø UNIX ³ª NT¿¡¼­ ´ÙÁß ¾²·¹µåÈ­µÈ ÇÁ·Î±×·¡µé ¼öÇà. 4.2.2.5. Sending Messages on Multitasking Operating Systems with extra CPUs: ¼º´É Çâ»ó¿¡ À־, °¡°è µÚ¿¡ 8°³ÀÇ °è»ê´ë¸¦ Ãß°¡ÇÏ¿´´Ù. »õ·Î¿î Çö±Þ °è»ê´ë´Â Á¤¸é Çö±Þ °è»ê´ë¿Í´Â ¶³¾îÁ® Àֱ⠶§¹®¿¡, Ãâ³³¿øÀº À̵éÀÇ ÃÑ ÇÕ°èÀ» »óÁ¡ Á¤¸éÀ¸·Î º¸³»±â À§Çؼ­´Â ÀüÈ­¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ÀÌ·± °Å¸®´Â Ãâ³³¿ø »çÀÌÀÇ Åë½Å¿¡ À־ Ãß°¡ÀûÀÎ ¿À¹öÇìµå(½Ã°£)¸¦ µé°Ô ÇÑÁö¸¸, Åë½ÅÀ» Àû°ÔÇÑ´Ù¸é, ÀÌ°ÍÀº ¹®Á¦µµ ¾Æ´Ï´Ù. ¸ðµç °è»ê´ë¸¦ ÇÊ¿ä·Î ÇÒ ¸¸Å­ ÁøÂ¥·ç Å« ¿ä±¸°¡ ÀÖ´Ù¸é, °°Àº ½Ã°£¿¡ ¸ðµç Çö±Ý °è»ê´ë¸¦ »ç¿ëÇÏ¿© ¼Óµµ¸¦ Çâ»ó½ÃÅ°±â Àü¿¡ Ãß°¡ÀûÀÎ ¿À¹öÇìµå°¡ ¹ß»ýÇÒ ¼ö ÀÖÀ½À» °í·ÁÇØ¾ß ÇÑ´Ù. ¸î¸îÀÇ °æ¿ì¿¡ ¸ðµç »óÁ¡À» ÅëƲ¾î ÇÑ°³ÀÇ Çö±Ý °è»ê´ë(¶Ç´Â Çö±Ý °è»ê´ë ¼¶)¸¦ °¡Áö°í ÀÖ´Ù°í º¼¼ö ÀÖ´Ù(°¢°¢ÀÇ Çö±Ý °è»ê´ë(¶Ç´Â ¼¶)Àº ÀüÈ­¸¦ ÅëÇؼ­ Åë½ÅÇØ¾ß ÇÑ´Ù). Çö±Ý °è»ê´ë¿¡ ÀÛ¾÷ÇÏ´Â ¸ðµç Ãâ³³¿øÀº ÀüÈ­¸¦ ÅëÇؼ­ °¢ÀÚ ¾ê±â¸¦ ÇÒ ¼ö ÀÖ´Ù¸é, ±×µéÀÌ ¾îµð¿¡ ÀÖµçÁö »ó°üÀÌ ¾ø´Ù. ¿¹: One or several copies of UNIX or NT with extra CPUs on the same or different motherboard communicating through messages. À§ÀÇ ½Ã³ª¸®¿À°¡ Á¤È®ÇÏÁö ¾ÊÀ» Áö¶óµµ º´·Ä ½Ã½ºÅÛÀÇ Á¦ÇÑÁ¡À» Àß Ç¥Çö ÇÏ°í ÀÖ´Ù. ÇÑ°³ÀÇ CPU(¶Ç´Â Çö±Þ °è»ê´ë) Åë½Åµµ ´Ù¸¥ ¹®Á¦Á¡ÀÌ´Ù. 4.3. º´·Ä °è»êÀ» À§ÇÑ ±¸Á¶ º´·Ä °è»êÀÇ º¸ÆíÀû ¹æ¹ý°ú ±¸Á¶Àº ´ÙÀ½¿¡ ³ªÅ¸³ª ÀÖ´Ù. ¿ÏÀüÇÏ°Ô ¼³¸íÇÏÁö ¾ÊÀ» Áö¶óµµ, º£¿À¿ïÇÁ µðÀÚÀο¡ °ü·ÃµÈ ±âº»ÀûÀÎ ¹®Á¦Á¡À» ÀÌÇØÇϴµ¥ ÃæºÐÇÏ´Ù. 4.3.1. Çϵå¿þ¾î ±¸Á¶ ´ÙÀ½ µÎ ¹æ¹ýÀ» »ç¿ëÇÏ´Â ±âº»ÀûÀÎ º´·Ä ÄÄÇ»ÅÍ: 1. ¸Þ½ÃÁö¸¦ °¡Áö°í Åë½ÅÇÏ´Â Áö¿ª ¸Þ¸ð¸® ¸Ó½Å(º£¿À¿ïÇÁ Ŭ·¯½ºÅ͵é) 2. ¸Þ¸ð¸®¸¦ ÅëÇØ Åë½ÅÇÏ´Â °øÀ¯ ¸Þ¸ð¸® ¸Ó½Åµé(SMP ¸Ó½Åµé) ÀüÇüÀûÀÎ º£¿À¿ïÇÁ´Â °í¼Ó ÀÌ´õ³ÝÀ» »ç¿ëÇÏ¿© ´ÜÀÏ CPU ¸Ó½ÅÀ» ¿¬°áÇÑ ÁýÇÕÀ̱⿡ Áö¿ª ¸Þ¸ð¸® ¸Ó½ÅÀ̱⵵ ÇÏ´Ù. 4 way SMP ¹Ú½º´Â °øÀ¯ ¸Þ¸ð¸® ¸Ó½ÅÀÌ°í º´·Ä °è»êÀ¸·Î »ç¿ëµÇÁö°í ÀÖ´Ù. - º´·Ä Ç®±×¸²Àº °øÀ¯ ¸Þ¸ð¸®¸¦ ÀÌ¿ëÇÏ¿© Åë½ÅÇÑ´Ù. ÄÄÇ»ÅÍ °¡°è¿¡¼­ À¯ÃßÇÑ´Ù¸é, Áö¿ª ¸Þ¸ð¸® ¸Ó½Åµé (°³°³ÀÇ Çö±Ý °è»ê´ë)Àº ¸¹Àº ¼öÀÇ CPUµé·Î È®ÀåÇÒ¼ö ÀÖ´Â ¹Ý¸é¿¡ °øÀ¯ ¸Þ¸ð¸® ¸Ó½ÅµéÀÇ CPU¼ö´Â ¸Þ¸ð¸® ¿¬°á·Î ÀÎÇÏ¿© Á¦ÇÑÀûÀÌ´Ù. ±×·¯³ª, "È¥ÇÕ" °øÀ¯ ¸Þ¸ð¸® ¸Ó½ÅÀ¸·Î ¸¸µé¸é ¸¹Àº ¼öÀÇ °øÀ¯ ¸Þ¸ð¸® ¸Ó½ÅµéÀ» ¿¬°áÇÒ ¼ö ÀÖ´Ù. ÀÌ·± È¥ÇÕ ¸Ó½ÅÀº »ç¿ëÀÚ¿¡°Ô´Â ÇÑ°³ÀÇ °Å´ëÇÑ SMP ¸Ó½ÅÀ¸·Î º¸ÀÌ°í, ±Û·Î¹ß ¸Þ¸ð¸®´Â ÇÁ·Î±×·¡¸Ó¿¡ ÀÇÇØ º¸¿©Áö°í ¸ðµç CPUµé¿¡ÀÇÇØ °øÀ¯µÇ¾î ´Ù¸¥ ·¹ÅϽõéÀ» °¡Áö°í Àֱ⠶§¹®¿¡ NUMA (non uniform memory access) ¸Ó½ÅÀÌ¶óµµ ÇÑ´Ù. ±×·¸Áö¸¸, ¸î°³ÀÇ ´Ü°è¿¡¼­ NUSA ¸Ó½ÅÀº Áö¿ª °øÀ¯¸Þ¸ð¸® Ç®µé »çÀÌ¿¡¼­ ¸Þ½ÃÁö¸¦ Åë°úÇÏ¿©¾ß¸¸ ÇÑ´Ù. ¶ÇÇÑ, ³ëµåµéÀ» °è»êÇÏ´Â Áö¿ª ±â¾ïÀå¼Ò·Î¼­ÀÇ SMP ¸Ó½ÅÀ¸·Î ¿¬°áÀÌ °¡´ÉÇÏ´Ù. ÀüÇüÀûÀÎ CLASS I ¸¶´õº¸µå´Â 2 °³³ª 4 °³ÀÇ CPU¸¦ °¡Áö°í Àü¹ÝÀûÀÎ ½Ã½ºÅÛ ºñ¿ëÀ» °¨¼ÒÇϴµ¥ »ç¿ëµÈ´Ù. ¸®´ª½º ³»ºÎ ½ºÄÉÁÙ·¯´Â ¾î¶»°Ô CPUµéÀ» °øÀ¯ÇÒÁö¸¦ °áÁ¤ÇÑ´Ù. »ç¿ëÀÚ´Â (ÀÌ ½ÃÁ¡¿¡¼­) ƯÁ¤ SMP ÇÁ·Î¼¼¼­¿¡¼­ ƯÁ¤ ÀÏÀ» ÇÒ´çÇÒ ¼ö ¾ø´Ù. ±×·¯³ª, »ç¿ëÀÚ´Â µÎ°³ÀÇ µ¶¸³µÈ ÇÁ·Î¼¼½º³ª ¾²·¹µåµÈ ÇÁ·Î¼¼½ºµé ½ÇÇàÇÒ ¼ö ÀÖ°í, ÇÑ°³ÀÇ CPU ½Ã½ºÅÛ¿¡¼­ ¼º´É Çâ»óÀ» ±â´ëÇÒ ¼ö ÀÖ´Ù. 4.3.2. ¼ÒÇÁÆ®¿þ¾î API ±¸Á¶ ÇÁ·Î±×·¥¿¡¼­ º´Ç༺À» Ç¥ÇöÇÏ´Â ±âº»ÀûÀΠǥÇö µÎ °¡Áö ¹æ¹ý: 1. ÇÁ·Î¼¼¼­µé°£ ¸Þ½ÃÁö Àü¼Û »ç¿ë 2. ¿î¿µÃ¼Á¦ ¾²·¹µå »ç¿ë ´Ù¸¥ ¹æ¹ýµµ ÀÖÁö¸¸, À§ÀÇ 2 °¡Áö°¡ Æø³Ð°Ô »ç¿ëµÈ´Ù. º´Çü¼ºÀÇ Ç¥ÇöÀº Çϵå¿þ¾îÀÇ ±âÃÊ·Î Á¶ÀýÇÒ ÇÊ¿ä´Â ¾ø´Ù´Â °ÍÀ» ±â¾ïÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù. ¸Þ½ÃÁö³ª ¾²·¹½º µÑ´Ù´Â SMP, NUMA-SMP, ±×¸®°í Ŭ·¯½ºÅÍ¿¡ ÀÇÇØ ±¸ÇöµÇ¾îÁ® ÀÖ´Ù. - ³ªÁß¿¡ È¿À²ÀûÀÌ°í È޴뼺¿¡´ëÇØ ¼³¸íÇÏ°Ú°í ÀÌ´Â Áß¿äÇÑ ³íÀïÁ¡ ÀÌ´Ù.(?) 4.3.2.1. ¸Þ½ÃÁö ¿ª»çÀûÀ¸·Î, ¸Þ½ÃÁö Àü¼Û ±â¼úÀº Ãʱâ Áö¿ª ¸Þ¸ð¸® º´·Ä ÄÄÇ»ÅÍ µðÁöÀο¡¼­ °¡Á®¿Ô´Ù. ¾²·¹µå´Â °°Àº Àå¼Ò¿¡¼­ µ¥ÀÌÅ͸¦ »ç¿ëÇÏ´Â ¹Ý¸é¿¡ ¸Þ½ÃÁö´Â µ¥ÀÌÅÍ º¹»ç¸¦ °¡Á®´Ù ¾´´Ù. º¹»çµÇ¾î Áú¼ö ÀÖ´Â ¸Þ½ÃÁöµé¿¡¼­ ´ë±â½Ã°£¿Í ¼ÓµµÀº ¸Þ½ÃÁö Àü¼Û ¸ðµ¨¿¡ µû¶ó Á¦ÇÑ ÀÎÀÚ°¡ ÀÖ´Ù. ¸Þ½ÃÁö´Â ¾ÆÁÖ °£´ÜÇÏ´Ù. : ¸î¸î µ¥ÀÌÅÍ¿Í ¸ñÀû ÇÁ·Î¼¼¼­. °øÅë ¸Þ½ÃÁö Àü¼Û APIµéÀº PVM¶Ç´Â MPIÀÌ´Ù. ¸Þ½ÃÁö Àü¼ÛÀº ¾²·¹µå¿Í ¸Þ½ÃÁö°¡Áö°í È¿°úÀûÀ¸·Î ±¸ÇöµÈ´Ù. µÑ´Ù SMP ¸Ó½Å°ú ¸Ó½ÅµéÀÇ Å¬·¯½ºÅÍ »çÀÌ¿¡¼­µµ Àß ÀÛµ¿ÇÑ´Ù. SMP ¸Ó½Å¿¡¼­ ¸Þ½ÃÁö¸¦ »ç¿ëÇÔ À¸·Î¼­ ¾ò¾îÁö´Â ÀÌÁ¡Àº ¾²·¹µå ¹Ý´ë·Î ¾ÕÀ¸·Î Ŭ·¯½ºÅ͵éÀ» »ç¿ëÇÒ °á½ÉÀ» Çß´Ù¸é ¸Ó½ÅµéÀÇ Ãß°¡³ª Ç®±×¸² È®ÀåÀ» ½±°Ô ÇÒ ¼ö ÀÖ´Ù. 4.3.2.2. ¾²·¹µå ¿î¿µ üÁ¦ ¾²·¹µå´Â °øÀ¯ ¸Þ¸ð¸® SMP (Symmetrical Multiprocessing)Àº ÇÁ·Î±×·¥ º´Çà ºÎºÐµé »çÀÌ¿¡¼­ ´õ ºü¸¥ °øÀ¯ ¸Þ¸ð¸® Åë½Å°ú µ¿±âÈ­ À» °¡´ÉÇÏ°Ô µðÀÚÀÎ Çϱâ À§ÇÏ¿© °³¹ßµÇÁ³´Ù. ¾²·¹µå´Â °øÀ¯ ¸Þ¸ð¸®¸¦ ÅëÇÏ¿© Åë½ÅÀ» Çϱ⠶§¹®¿¡ SMP ½Ã½ºÅ۵鿡¼­ Àß ÀÛµ¿ÇÑ´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î »ç¿ëÀÚ´Â ±Û·Î¹ß µ¥ÀÌÅÍ¿¡¼­ Áö¿ª µ¥ÀÌÅ͸¦ ºÐ¸®ÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ÇÁ·Î±×·¥Àº Àß ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù. ¸Þ½ÃÁö¿¡ ºñ±³Çϸé, ÇÁ·Î¼¼½ºµé(¾²·¹µåµé) »ó¿¡ µ¥ÀÌÅ͸¦ °øÀ¯Çϱ⠶§¹®¿¡ ¸¹Àº ¾çÀÇ º¹»ç°¡ »ý·«µÈ´Ù. ±×·¸Áö¸¸, cache coherence À̶ó´Â ¿À¹öÇìµå°¡ µ¡ºÙÀÌ°Ô µÇ¾ú´Ù. ¾²·¹µå´Â SMP °æ°è ÀúÆíÀ¸·Î ¿¬ÀåµÇ´Â NUMA ±â¼úÀ» ¿äÇÑ´Ù. ÀÌ ±â¼úÀº »çÄ¡½º·´°í Àü¿¡ ¸®´ª½º¿¡ ÀÇÇØ Áö¿øµÇÁö ¾È¾Ò¾ú´Ù. ¸Þ½ÃÁö À§¿¡¼­ ¾²·¹µå¸¦ ±¸ÇöÇØ ¿À°í ÀÖÁö¸¸ (syntron.com/ptools/ptools_pg.htm ), ¾²·¹µå°¡ ¸Þ½ÃÁö¸¦ ÀÌ¿ëÇÏ¿© ±¸ÇöÇÏ¿´À» ¶§ Á¾Á¾ ºñÈ¿À²ÀûÀÌ°Ô µÈ´Ù. ´ÙÀ½Àº ¼º´É¿¡ °üÇÑ »óŸ¦ º¸¿©ÁÖ°í ÀÖ´Ù: SMP ¸Ó½Å ¸Ó½ÅµéÀÇ Å¬·¯½ºÅÍ È®À强 ¼º´É ¼º´É ----------- ------------------- ----------- ¸Þ½ÃÁö ÁÁÀ½ ¸Å¿ì ÁÁÀ½ ¸Å¿ì ÁÁÀ½ ¾²·¹µå ¸Å¿ì ÁÁÀ½ ³ª»Ý* ³ª»Ý* * »çÄ¡½º·± NUMA ±â¼úÀ» ¿ä±¸. 4.3.3. Ç®±×¸² ±¸Á¶ ´ÙÁß CPU¿¡¼­ º´·Ä·Î Ç®±×¸²À» ½ÇÇàÇϱâ À§Çؼ­´Â º´Çà ºÎºÐÀ¸·Î È®½ÇÈ÷ ÂÉ°³¾ß ÇÑ´Ù. Ç¥ÁØ ´ÜÀÏ CPU Ç®±×¸²Àº ´ÙÁß ÇÁ·Î¼¼¼­¿¡¼­ ´ÜÀÏ CPU Ç®±×¸² º¸´Ù ´õ ºü¸£Áö´Â ¾ÊÀ» °ÍÀÌ´Ù. ÇÁ·Î±×·¥À» ÂÉ°³Á®¾ßÇÒ ¸î°¡Áö Åøµé°ú ÄÄÆÄÀÏÇÏÁö¸¸, º´·Ä ÄÚµåÀº "plug and play" ÀÛµ¿À» ÇÏÁö ¾Ê´Â´Ù. Ç®±×¸²¿¡ ÀÇÁ¸ÀûÀ¸·Î º´·Ä ÄÚµå´Â ½±°í, ±Øµµ·Ï ¾î·Æ°Å³ª, ¾Ë°í¸®Áò ÀÇÁ¸¿¡ µû¶ó ºÒ°¡´ÉÇÑ °æ¿ìµµ ÀÖÀ» ¼ö ÀÖ´Ù. ¼ÒÇÁÆ®¿þ¾î ¹®Á¦Á¡ÀÇ ¼³¸íÀÌ ÇÊ¿äÇÑ ÀûÇÕ¼º °³³äÀ» ¤°í°¡ÀÚ. 4.4. ÀûÇÕ¼º º´·Ä °è»ê¿¡ ´ëÇÑ ´ëºÎºÐÀÇ Áú¹®µéÀº ºñ½ÁÇÑ ´äº¯À» °¡Áø´Ù: "¸ðµç °ÍÀº Ç®±×¸²¿¡ ´Þ·ÈÀÖ´Ù." ³íÀïÁ¡À¸·Î µé¾î°¡±â Àü¿¡, ¸¸µé¾îÁú ÇÊ¿ä°¡ Àִ°¡¿¡ ´ëÇÑ ¸Å¿ì Áß¿äÇÑ ±¸º°ÀÌ Çϳª ÀÖ´Ù - º´Çà°ú º´·Ä»çÀÌÀÇ Â÷ÀÌ. ÀÌ·± ³íÀǸ¦ ÇÑ ¸ñÀûÀº ´ÙÀ½¿¡ ¿À´Â µÎ °¡Áö °³³äÀ» Á¤ÀÇÇϱâ À§Çؼ­ ÀÌ´Ù: ÇÁ·Î±×·¥ÀÇ º´Çà ºÎºÐÀº µ¶¸³ÀûÀ¸·Î °è»êÀÌ µÇ´Â °ÍÀÌ´Ù. ÇÁ·Î±×·¥ÀÇ º´·Ä ºÎºÐµéÀº ±×µéÀÇ º´Çà ºÎºÐÀ¸·Î °°Àº ½Ã°£¿¡ ºÐ¸®µÈ ó¸® ´ÜÀ§¿¡¼­ ½ÇÇàµÈ´Ù. ÀÌ·± ±¸º°Àº ¸Å¿ì Áß¿äÇÏ´Ù. ¿Ö³ÄÇϸé, º´Ç༺Àº ÇÁ·Î±×·¥ÀÇ ¼Ó¼ºÀÌ°í È¿À²ÀûÀÎ PARALLELISHÀº ¸Ó½ÅÀÇ ¼Ó¼ºÀ̱⠶§¹®ÀÌ´Ù. ÀÌ»óÀûÀ¸·Î, º´·Ä ½ÇÇàÀº ´õ ºü¸¥ ¼º´ÉÀ¸·Î ³¡¸¶ÃÄ¾ß ÇÑ´Ù. º´·Ä ¼º´É¿¡¼­ ÀçÇÑ ¿äÀÎÀº Åë½Å ¼Óµµ¿Í °è»ê ³ëµåµé »çÀÌÀÇ ´ë±â½Ã°£ÀÌ´Ù. (¶ÇÇÑ, ´ë±â½Ã°£Àº cache coherency·Î ÀÎÇØ ¾²·¹µåÈ­µÈ SMP Ç®±×¸²¿¡µµ ÀÖ´Ù.) ¸¹Àº ÀÏ¹Ý º´·Ä Æò°¡ Å×½ºÆ®Àº ³ôÀº º´·Ä, Åë½Å, ±×¸®°í ´ë±â½Ã°£ÀÌÁö, º´¸ñÇö»ó¿¡ ÀÖÁö ¾Ê´Ù. ÀÌ·± ÇüÅÂÀÇ ¹®Á¦¸¦ "obviously parallel"À̶ó ÇÑ´Ù. ´Ù¸¥ Ç®±×¸²µéÀº º´·Ä¿¡¼­ ÇÁ·Î±×·¥ÀÇ º´Çà ºÎºÐÀÌ ±×·¸°Ô °£´ÜÇÏ°í ½ÇÇàÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Ï±â¿¡ »ç½Ç ÇÁ·Î±×·¥ÀÌ ´õ ´À¸®°Ô ½ÇÇàÇÏ´Â ¿øÀÎÀÌ µÇ±âµµ ÇÑ´Ù. ±×·¸±â ¶§¹®¿¡ ÇÁ·Î±×·¥ÀÇ ´Ù¸¥ º´Çà ºÎºÐ¿¡ ¾ò¾îÁø ÀÓÀÇ ¼º´ÉÇâ»óÀ» ¶³¾î¶ß¸®°Ô µÈ´Ù. ªÀº ±â°£¿¡¼­ Åë½Å ½Ã°£ ºñ¿ëÀ» °è»ê ½Ã°£À¸·Î º¸ÃæÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, º´Çà ºÎºÐÀÇ º´·Ä ½ÇÇàÀº ºñÈ¿À²ÀûÀÌ´Ù. ÇÁ·Î±×·¡¸ÓÀÇ ÀÓ¹«´Â ÇÁ·Î±×·¥ÀÇ º´Çà ºÎºÐµéÀ» º´·Ä·Î ½ÇÇàÇØ¾ß ÇÏ´Â °Í°ú ÇÏÁö ¸»¾Æ¾ß ÇÒ °ÍÀ» °áÁ¤ÇÏ´Â °ÍÀÌ´Ù. ÀÌ ´ë´äÀº Ç®±×¸²ÀÇ È¿À²·Î °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ±×·¡ÇÁ´Â ÇÁ·Î±×·¥ÀÇ »óȲÀ» °£·«È÷ º¸¿©ÁÖ°í ÀÖ´Ù. | * | * | * % of | * appli- | * cations | * | * | * | * | * | * | **** | **** | ******************** +----------------------------------- communication time/processing time ¿Ïº®ÇÑ º´·Ä ÄÄÇ»ÅÍ¿¡¼­ Åë½Å/ó¸® ºñÀ²ÀÌ °°ÀÌÁö°Ô µÉ °ÍÀÌ°í, ¾î¶² °ÍÀ̵çÁö º´·Ä·Î º´ÇàÀ» ±¸ÇöµÇ¾î Áø´Ù. °øÀ¯ ¸Þ¸ð¸®¸¦ °¡Áö°í ÀÖ´Â ½ÇÁ¦ º´·Ä ÄÄÇ»ÅÍ¿¡¼­´Â ÀÌ ±×·¡ÇÁ¿¡¼­ º¸¿©ÁÖ´Â È¿°ú¿¡ µû¶ó¿À°Ô µÈ´Ù. º£¿À¿ïÇÁ µðÀÚÀÎ ÇÒ ¶§, º´·Ä È¿À²Àº ƯÁ¤ º´·Ä ÄÄÇ»ÅÍ¿¡ ´ëÇÑ Åë½Å ½Ã°£°ú ó¸® ½Ã°£ÀÇ ºñÀ²¿¡ ÀÇÁ¸ÀûÀ̱⠶§¹®¿¡ »ç¿ëÀÚ ÀÌ ±×·¡ÇÁ¸¦ ¸¶À½¿¡ »õ°ÜµÎ±â ¹Ù¶õ´Ù. Ç®±×¸²Àº º´·Ä ÄÄÇ»ÅÍµé »çÀÌ¿¡ À̵¿ÇÒ ¼ö ÀÖ¾î¾ß ÇÏÁö¸¸, ´Ù¸¥ Ç÷§Æû»óÀÇ È¿À²Àº º¸ÀåÇÒ ¼ö ¾ø´Ù. ÀϹÝÀûÀ¸·Î À̽İ¡´ÉÇϸ鼭 È¿À²ÀûÀÎ º´·Ä ÇÁ·Î±×·¥Àº Á¸ÀçÇÏÁö ¾Ê´Â´Ù. À§ÀÇ ±×·¡ÇÁ¸¦ ÅëÇØ ¶Ç ´Ù¸¥ ÇÑ°¡Áö¸¦ À¯ÃßÇÒ ¼ö ÀÖ´Ù. º´·Ä ¼öÇà È¿À²Àº Åë½Å/ó¸® ºñÀ²¿¡ ÀÇÁ¸ÇÏ´Â °ÍÀ̱⠶§¹®¿¡, ´ÜÁö ÀÌ ºñÀ² ¿ä¼ÒÀÇ ÇÑ ºÎºÐ¸¸À» (Áï, Åë½Å ¼º´É ¶Ç´Â ó¸® ¼º´É µÑ Áß Çϳª¸¸À») º¯È­½ÃÅ°´Â °ÍÀ¸·ÎºÎÅÍ ¾î¶² ƯÁ¤ ÀÀ¿ëÇÁ·Î±×·¥Àº ´õ »¡¶óÁú °ÍÀ̶ó´Â ±â´ë¸¦ Ç×»ó ÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù¶ó´Â °ÍÀÌ´Ù. Åë½Å¼Óµµ´Â º¯ÇÏÁö ¾ÊÀº »óÅ¿¡¼­ ó¸® ¼Óµµ¸¸ÀÇ º¯È­´Â ÇÁ·Î±×·¥¿¡ ¿¹»óÄ¡ ¾ÊÀº ¿µÇâÀ» ÁÙ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î, Åë½Å¼Óµµ´Â ±×´ë·Î À¯ÁöÇÑä CPU ¼Óµµ¸¦ µÎ¹è ¶Ç´Â ¼¼¹è Áõ°¡½ÃŲ °æ¿ì º¯°æ ÀÌÀü º´·Ä ¼öÇàÀÌ È¿À²ÀûÀ̾ú´ø ÇÁ·Î±×·¥ÀÇ ºÎºÐÀ» ¼øÂ÷ÀûÀ¸·Î ¼öÇàÇϵµ·Ï ¼öÁ¤ÇÏ´Â °ÍÀÌ ´õ¿í È¿À²ÀûÀÎ °æ¿ìµµ ÀÖ´Ù. ¸»ÇÏÀÚ¸é ÀÌÀüÀÇ º´·Ä½ÇÇàºÎºÐÀ» ÀÌÁ¦´Â ¼øÂ÷ÀûÀ¸·Î ¼öÇà½ÃÅ°´Â °ÍÀÌ ¼Óµµ°¡ ´õ ºü¸¦ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ´õ ³ª¾Æ°¡, º´·ÄÈ­ÇÏ¸é ºñÈ¿À²ÀûÀÎ ºÎºÐÀ» º´·Ä¼öÇàÇÏ°Ô µÇ¸é °á±¹ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ÃÖ°í ¼Óµµ¸¦ ³»Áö ¸øÇÏ°Ô µÈ´Ù. ÀÌ·¯ÇÑ °æ¿ì, ´õ ºü¸¥ ÇÁ·Î¼¼¼­¸¦ Ãß°¡ÇÏ¿© º´·Ä¼öÇà½ÃÅ°¸é ¿ÀÈ÷·Á ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¼Óµµ°¡ ¶³¾îÁö°Ô µÈ´Ù.(±× ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ÃÖ°í ¼Óµµ¸¦ ³»µµ·Ï Çϱâ À§Çؼ­´Â »õ·Î¿î CPU¸¦ Ãß°¡ÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.) ±×·¡¼­, °á·ÐÀ¸·Î º´·Ä Çϵå¿þ¾î ȯ°æÀ» »ç¿ëÇØ¾ß ÇÒÁö ÇÏÁö ¸»¾Æ¾ß ÇÒÁö¸¦ ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ±×·¸±â ¶§¹®¿¡, º´·Ä ¸Ó½ÅÀÇ ÀûÇÕ¼ºÀÌ Ç®±×¸²¿¡ ¸Â´ÂÁö °£ÆÄÇؾßÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. CPU ¼Óµµ, ÄÄÆÄÀÏ·¯, ¸Þ½ÃÁö Àü¼Û API, ³×Æ®¿öÅ© µîµîÀ» Æ÷ÇÔÇÑ ¸¹Àº ³íÀïÁ¡À» »ìÆ캼 ÇÊ¿ä°¡ ÀÖ´Ù. Ç®±×¸²ÀÇ À±°ûÀÏ »ÓÀÌÁö ÀüüÀûÀÎ À̾߱⸦ ÁÖ´Â °ÍÀÌ ¾Æ´ÔÀ» ÁÖÀÇÇ϶ó. ÇÁ·Î±×·¥ÀÇ Áß¿äÇÑ ºÎºÐÀ» ±¸ºÐÇÒ ¼ö ÀÖÁö¸¸, ÀÌ ºÎºÐ¿¡ ´ëÇÑ Åë½Å ºñ¿ëÀ» ¾Ë ¼ö ´Â ¾ø´Ù. ÁÖ¾îÁø ½Ã½ºÅÛ´ëÇؼ­µµ, Åë½Å ºñ¿ëÀº ÄÚµå È¿À²À» º´·ÄÈ­ÇÒ ¼ö´Â ¾ø´Ù. ¸¶Áö¸·À¸·Î ÀϹÝÀûÀÎ ¿ÀÇظ¦ º¸µµ·Ï ÇÏÀÚ. ÀÚÁÖ "º´·ÄÈ­µÈ ÇÁ·Î±×·¥"À̶ó ÇÏÁö¸¸, ½ÇÁ¦·Î´Â ÇÁ·Î±×·¥ÀÇ CONCURRENT ºÎºÐÀ¸·Î¸¸ À§Ä¡ÇÏ°í ÀÖ´Ù. È¿°úÀûÀÎ PARALLELIZATIONÀº ¸Ó½ÅÀÇ ¼Ó¼ºÀÌ´Ù. 4.5. º´·Ä ¼ÒÇÁÆ®¿þ¾î ÀÛ¼º°ú Æ÷Æà º´·Ä °è»êÀÌ ÇÊ¿äÇÑ´Ù°í °áÁ¤Çß°í º£¿À¿ïÇÁ¸¦ µðÀÚÀÎÇÏ°í ±¸¼ºÇϱ⸦ ¿øÇÑ´Ù¸é, Àá½Ã ÀüÀÇ ³íÀÇµÈ ³»¿ëÀ» »ìÆì º¸´Â °ÍÀÌ ÁÁÀ» °Í °°´Ù. ÀϹÝÀûÀ¸·Î ´ÙÀ½ µÎ °¡Áö¸¦ ÇØ¾ß ÇÑ´Ù: 1. CLASS I º£¿À¿ïÇÁ¸¦ ±¸¼ºÇغ¸°í ³­ÈÄ¿¡ ´ç½ÅÀÇ Ç®±×¸²À» ±×°Í¿¡ ¸Â°Ô ÀÛ¼ºÇØ º¸ÀÚ. ¾Æ´Ï¸é º£¿À¿ïÇÁ¿¡¼­ ÀÛµ¿ÇÏ´Â º´·Ä Ç®±×¸²À» ½ÇÇຸ¶ó (±×·¯³ª ¾Õ¿¡¼­ ¾ð±ÞÇß´ø À̵¿¼º°ú È¿À²ÀÇ ³íÀïÁ¡À» ÁÖÀÇÇضó) 2. º£¿À¿ïÇÁ¿¡ ½ÇÇàÇÒ Ç®±×¸²À» »ìÆ캸°í ÇÊ¿ä·Î ÇÏ´Â Çϵå¿þ¾î¿Í ¼ÒÇÁÆ®¿þ¾î ÇüÅ¿¡ ´ëÇÑ Æò°¡¸¦ Çغ¸¾Æ¶ó. ÀÌ·± °æ¿ì ÀÏÁö¶óµµ, ¸î¸î °üÁ¡¿¡¼­ È¿°ú¿¡ ´ëÇÑ ¹®Á¦À» »ìÆ캼 ÇÊ¿ä°¡ ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ´ÙÀ½ÀÇ ¼¼ °¡Áö¸¦ »ý°¢ Çغ¼ ÇÊ¿ä°¡ ÀÖ´Ù: 1. ÇÁ·Î±×·¥¿¡¼­ º´Çà ºÎºÐÀ» °áÁ¤ 2. º´·Ä È¿À²À» °è»ê 3. ÇÁ·Î±×·¥¿¡¼­ º´Çà ºÎºÐÀ» ±â¼ú ÀÚ! Áö±ÝºÎÅÍ À̵éÀ» »ìÆ캸ÀÚ. 4.5.1. ÇÁ·Î±×·¥ÀÇ º´Çà ºÎºÐ °áÁ¤ ÀÌ ´Ü°è´Â ºó¹øÇÏ°Ô "ÇÁ·Î±×·¥ º´·ÄÈ­Çϱâ"À̶ó Çϱ⵵ ÇÑ´Ù. Parallelization °áÁ¤Àº µÎ ¹ø° ´Ü°è¿¡¼­ ÇÒ °ÍÀÌ´Ù. ÀÌ ´Ü°è¿¡¼­´Â µ¥ÀÌÅÍ ÀÇÁ¸À» °áÁ¤ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. >½ÇÁúÀûÀÎ ÀÔÀå¿¡¼­, Ç®±×¸²Àº µÎ °¡Áö º´Çà ÇüŸ¦ º¸ÀÌ°í ÀÖ´Ù: °è»ê (number crunching)°ú I/O (µ¥ÀÌÅͺ£À̽º). ¸¹Àº °æ¿ì¿¡ °è»ê°ú I/O º´Ç༺Àº orthogonalÀÌÁö¸¸, Ç®±×¸²Àº µÑ ´Ù¸¦ ¿ä±¸ÇÑ´Ù. ±âÁ¸ÀÇ Ç®±×¸²¿¡ ´ëÇÑ º´Çà ºÐ¼®À» ¼öÇàÇÒ ¼ö ÀÖ´Â µµ±¸µéÀÌ ÀÖ´Ù. ÀÌµé ´ëºÎºÐÀÇ µµ±¸µéÀº Æ÷Æ®¶õ¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾ú´Ù. Æ÷Æ®¶õÀ» »ç¿ëÇÏ´Â ÁÖµÈ µÎ °¡Áö ÀÌÀ¯: ´ëºÎºÐÀÇ crunching Ç®±×¸²µéÀÌ Æ÷Æ®¶õÀ¸·Î ÀÛ¼ºµÇ¾ú°í ºÐ¼®ÇϱⰡ ½±´Ù. µµ±¸µéÀÌ ¾ø´Ù¸é, ÀÌ ´Ü°è´Â ±âÁ¸ Ç®±×¸²¿¡ ´ëÇØ ´Ù¼Ò ¾î·Á¿ï °ÍÀÌ´Ù. 4.5.2. º´·Ä È¿À² °è»ê µµ±¸µéÀÇ µµ¿òÀÌ ¾øÀ¸¸é, ½ÃÇàÂø¿À¸¦ °ÅÄ¡°Å³ª ¿¾³¯ Áö½Ä¿¡ ÀÇÇØ ÃßÃøÀ» °¡Áö°í ÇؾßÇÒ °ÍÀÌ´Ù. ƯÁ¤ Ç®±×¸²À» »ý°¢ÇÏ°í ÀÖÀ¸¸é CPU ÇÑ°è(°è»ê ¹üÀ§)¿Í ÇÏµå µð½ºÅ© ÇÑ°è(I/O ¹üÀ§)¸¦ °áÁ¤Çغ¸¾Æ¶ó. º£¿À¿ïÇÁÀÇ ¿ä±¸ »çÇ×Àº ´ç½ÅÀÇ ¿ä±¸¿¡ µû¶ó ¸Å¿ì ´Ù¾çÇÏ´Ù. ¿¹¸¦ µé¾î, °è»ê ÇÑ°è¿¡¼­ÀÇ ¹®Á¦Àº ¸î°³ÀÇ ¸Å¿ì ºü¸¥ CPU¿Í °í¼ÓÀÇ ³·Àº ´ë±â ½Ã°£ÀÇ ³×Æ®¿öÅ©¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ¹Ý¸é¿¡ I/O ÇÑ°è ¹®Á¦´Â ´õ ´À¸° CPU¿Í ºü¸¥ ÀÌ´õ³ÝÀÌ ´õ È¿°úÀûÀ¸·Î ÀÛµ¿À» ÇÑ´Ù. ÀÌ·± ±Ç°í´Â Á¾Á¾ ´ëºÎºÐÀÇ »ç¶÷µéÀ» ³î¶ó°Ô ÇÑ´Ù. ¿Ö³ÄÇϸé, º¸ÆíÀûÀÎ »ý°¢À¸·Î´Â ´õ ºü¸¥ ÇÁ·Î¼¼¼­°¡ Ç×»ó ´õ ÁÁ´Ù¶ó°í ¿©±â±â ¶§¹®ÀÌ´Ù. ¿¹»êÀÌ ÇÑ°è°¡ ¾ø´Ù¸é ¸Â´Â ¸»ÀÏÁö ¸ð¸£Áö¸¸, ½ÇÁ¦ ½Ã½ºÅÛÀº ºñ¿ë¿¡ À־ Á¦ÇÑÀÌ ÀÖ´Ù. I/O ÇÑ°è ¹®Á¦¿¡ ´ëÇؼ­ Á¶±Ý ¾Ë·ÁÁø ±ÔÄ¢(Eadline-Dekov ¹ýÄ¢À̶ó ºÒ¸²)ÀÌ Àִµ¥ ²Ï µµ¿òÀÌ µÈ´Ù: ¶È °°Àº ´©Àû CPU ¼º´É »öÀÎÀ» °¡Áø ÁÖ¾îÁø µÎ °³ÀÇ º´·Ä ÄÄÇ»ÅÍ¿¡¼­, ´ÊÀº ÇÁ·Î¼¼¼­(±×¸®°í ¾Æ¸¶ ÇÁ·Î¼¼½º°£ Åë½Å ³×Æ®¿öÅ©µµ ´À·ÁÁú°ÍÀÌ´Ù)Àº I/O°¡ ¸¹Àº Ç®±×¸²¿¡ ´ëÇؼ­ ´õ ÁÁÀº ¼º´ÉÀ» º¸¿©ÁÙ °ÍÀÌ´Ù. ÀÌ·± ¹ýÄ¢ÀÇ Áõ¸íÀº ÀÌ ¹®¼­ÀÇ ³ªÁß¿¡ ³ª¿Ã °ÍÀÌÁö¸¸, Èï¹Ì°¡ ÀÖ´Ù¸é Performance Considerations for I/O-Dominant Applications on Parallel Computers (Postscript format 109K ) (www.plogic.com/pub/papers/exs-pap6.ps ) ³í¹®À» ¹Þ¾Æ¼­ º¸¸é µÈ´Ù. ´ç½ÅÀÇ Ç®±×¸²¿¡¼­ º´ÇàÀÇ ÇüŸ¦ ¹«¾ùÀÎÁö¸¦ °áÁ¤À» Çß¾ú´Ù¸é, º´·Ä·Î ÇßÀ» °æ¿ì ¾ó¸¶³ª È¿À²ÀÌ ÀÖ´ÂÁö °è»êÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ¼ÒÇÁÆ®¿þ¾î µµ±¸¿¡ ´ëÇÑ ¼³¸íÀº "¼ÒÇÁÆ®¿þ¾î"ÀýÀ» º¸¾Æ¶ó. µµ±¸¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¸é ÀÌ ´Ü°è¸¦ °ÅÄ¡´Â ¹æ¹ýÀ» ÃßÃàÇؾßÇÒ °ÍÀÌ´Ù. °èÇÑ ÇÑ°è ·çÇÁ¸¦ ºÐ´ÜÀ§·Î ÃøÁ¤ÇÏ°í ÃÊ´ÜÀ§·Î µ¥ÀÌÅÍ Àü¼ÛÀ» ÃøÁ¤Çß´Ù¸é, parallelization¸¦ À§ÇÑ ÁÁÀº ÈÄ¿øÀÚ°¡ µÇ¾î¾ß ÇÑ´Ù.(?) ±×·¯³ª ±â¾ïÇØ¾ß ÇÒ °ÍÀº 16ºÐÀÌ °É¸®°í 32 ºÎºÐÀ¸·Î ºÐ¸®ÇÏ¿´´Ù¸é, ±×¸®°í °¢ ºÎºÐ ¸¶´Ù µ¥ÀÌÅÍ Àü¼ÛÇϴµ¥ ¸î ÃÊÀÇ ½Ã°£ÀÌ °É¸°´Ù¸é, ±× °ÍÀº ¿©À¯¸¦ °¡Áú ¼ö°¡ ¾ø°Ô µÉ °ÍÀÌ´Ù. °¨¼ÒÇϱâ À§ÇÑ ¹ÝȯÁ¡À¸·Î µµ´ÞÇÒ °ÍÀÌ´Ù. 4.5.3. ÇÁ·Î±×·¥¿¡¼­ º´Çà ºÎºÐÀ» ±â¼ú ÇÁ·Î±×·¥ÀÇ º´º´ ºÎºÐÀ» ±â¼úÇϱâ À§ÇÑ ¹æ¹ýÀÌ ¸î°¡Áö°¡ ÀÖ´Ù: 1. ¸í½ÃÀû º´Çà ½ÇÇà 2. ¾Ï½ÃÀû º´Çà ½ÇÇà ÀÌµé °£ÀÇ ÁÖ¿äÇÑ Â÷ÀÌÁ¡Àº ¸í½ÃÀû º´·Ä¼ºÀº »ç¿ëÀÚ¿¡ ÀÇÇØ °áÁ¤ÀÌ µÇ°í, ¾Ï½ÃÀû º´·Ä¼ºÀº ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ °áÁ¤ÀÌ µÈ´Ù. 4.5.3.1. ¸í½ÃÀû ¹æ¹ý ±âº»ÀûÀÎ ¹æ¹ýÀ¸·Î º´·Ä ÄÄÇ»Å͸¦ À§ÇØ ¹Ø±×¸²ÀÇ Æ¯Á¤ ºÎºÐÀ» »ç¿ëÀÚ°¡ º¯°æÇؾ߸¸ ÇÑ´Ù. »ç¿ëÀÚ´Â ¹Ýµå½Ã PVMÀ̳ª MPIÀ» Ãß°¡Çϰųª POSIX ¾²·¹µå¸¦ »ç¿ëÇÏ´Â ¾²·¹µå¸¦ Ãß°¡ÇؾßÇÑ´Ù. (±×·¯³ª ¸¶À½¿¡ ±â¾ïÇصξî¾ß ÇÒ °ÍÀº ¾²·¹µå SMP ¸¶´õº¸µåµé »çÀÌ·Î À̵¿ÇÒ ¼ö ¾ø´Ù.) ¸í½ÃÀû ¹æ¹ýÀº ±¸Çö°ú ¹ú·¹Àâ±â°¡ ¸Å¿ì ¾î·Á¿î °æÇâÀÌ ÀÖ´Ù. ÀüÇüÀûÀ¸·Î »ç¿ëÀÚ°¡ Ç¥ÁØ Æ÷Æ®¶õ 77À̳ª C/C++ ¹Ø±×¸²¿¡¼­ ¸í½ÃÀû ÇÔ¼ö¶ó ºÒ¸®´Â °ÍÀ» Æ÷ÇÔÇØ¾ß ÇÑ´Ù. MPI ¶óÀ̺귯¸®Àº ¸î°¡Áö Ç¥ÁØ º´·Ä ¹æ¹ýÀ» ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Â ¸î°¡Áö ÇÔ¼ö¸¦ °¡Áö°í ÀÖ´Ù.(¿¹·Î, Èð¾îÁÖ´Â/¸ðÀ¸´Â ÇÔ¼öµé). Ãß°¡ÀûÀ¸·Î º´·Ä ÄÄÇ»ÅÍÀ» À§ÇØ ¾¯¿©Áø Ç¥ÁØ ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ±×·¸Áö¸¸, ÁÖ¸ñÇÒ °ÍÀº À̵¿¼º°ú È¿À²¼ºÀº ¸ð¼øÀûÀÌ´Ù. ¿ª»çÀûÀÎ ÀÌÀ¯·ÎÇؼ­ ¸¹Àº ¼ýÀÚÀÇ cruching ÄÚµåµéÀº FORTRANÀ¸·Î ÀÛ¼ºµÇ¾î Á® ÀÖ´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·ÎÇؼ­ FORTRANÀº º´·Ä °è»ê¿¡ À־ °¡Àå ¸¹Àº ¾çÀÇ Áö¿ø(µµ±¸µé, ¶óÀ̺귯¸®µé, µîµî)À» °¡Áö°í ÀÖ´Ù. ÇöÀç C¸¦ »ç¿ëÇÏ°í ÀÖ´Â ¸¹Àº ÇÁ·Î±×·¡¸ÓµéÀÌ C°¡ ´õ»¡¸® ½ÇÇàµÅ´Ù´Â »ý°¢À¸·Î ±âÁ¸ FORTRAN Ç®±×¸²À» C·Î ÀçÀÛ¼ºÇÏ°í ÀÖ´Ù. ÀÌ·¯ÇÑ »ý°¢ÀÌ º¸ÆíÀûÀÎ ¸Ó½Å Äڵ忡¼­ C·Î µÈ °ÍÀº »ç½ÇÀÏÁö ¸ô¶óµµ, ¸î°¡Áö ÁÖ¿äÇÑ °áÁ¡À» °¡Áö°í ÀÖ´Ù. C¿¡¼­ Æ÷ÀÌÅÍÀÇ »ç¿ëÀº µ¥ÀÌÅÍ ÀÇÁ¸¼ºÀ» °áÁ¤Çϴµ¥ À־ ±Øµµ·Ï ¾î·Æ°Ô ¸¸µç´Ù. Æ÷ÀÎÅÍÀÇ ÀÚµ¿ ºÐ¼®Àº ±Øµµ·Î ¾î·Æ´Ù. ±âÁ¸ Æ÷Æ®¶õ ÇÁ·Î±×·¥À» °¡Áö°í ÀÖ°í ¾ÕÀ¸·Î º´·Ä·Î ó¸®ÇÒ·Á°í ÇÑ´Ù¸é, C·Î ¹Ù²ÙÁö ¸»¶ó. 4.5.3.2. ¾Ï½ÃÀû ¹æ¹ý ¾Ï½ÃÀû ¹æ¹ýÀº »ç¿ëÀÚ°¡ ÄÄÆÄÀÏÇϱâ À§ÇØ º´·ÄÈ­ °áÁ¤ÀÇ ÀϺÎ(¶Ç´Â ¸ðµå)¸¦ Æ÷±âÇØ¾ß ÇÑ´Ù. Æ÷Æ®¶õ 90ÀÇ ¿¹·Î °í¼º´É Æ÷Æ®¶õ(High Performance FORTRAN: HPF), Bluk Bynchronous Parallel (BSP), ±×¸®°í ´Ù¸¥ ¹æ¹ýÀÇ ÃÑüÀû ¸ðÀÓµéÀº ¾ÆÁ÷µµ °³¹ßÁß¿¡ ÀÖ´Ù. ¾Ï½ÃÀû ¹æ¹ýÀº »ç¿ëÀÚ°¡ ±×µé Ç®±×¸²ÀÇ º´Çà ¼ºÁú¿¡ ´ëÇÑ ¸î°¡Áö Á¤º¸ Á¦°øÀ» ¿ä±¸ÇÏÁö¸¸, ÄÄÆÄÀÏ·¯´Â ¾î¶»°Ô ÀÌ º´ÇàÀ» º´·Ä·Î ½ÇÇàÇϴ°¡¿¡ ´ëÇÑ ¸¹Àº °áÁ¤À» ³»·Á¾ß ÇÒ °ÍÀÌ´Ù. ÀÌ ¹æ¹ýÀº À̵¿¼º°ú È¿À²¼ºÀÇ ¸î°¡Áö ´Ü°è¸¦ Á¦°øÇÏÁö¸¸, º´·Ä ÄÄÇ»ÅÍ¿¡ ´ëÇÑ º´Çà ¹®Á¦ÀÇ ±â¼úÀ» ÇÏ´Â "°¡Àå ÁÁÀº ¹æ¹ý"Àº ¾ÆÁ÷±îÁö´Â ¾Æ´Ï´Ù. 5. º£¿À¿ïÇÁ ÀÚ¿øµé 5.1. ½ÃÀÛÁ¡ º£¿À¿ïÇÁ ¸ÞÀϸµ ¸®½ºÆ®. beowulf-request@cesdis.gsfc.nasa.gov ·Î ¸Þ½ÃÁö¿¡ subscribe¸¦ ³Ö¾î ¸ÞÀÏÀ» º¸³»¸é ±¸µ¶ÀÌ µÈ´Ù. º£¿À¿ïÇÁ ȨÆäÀÌÁö www.beowulf.org ? Extreme Linux www.extremelinux.org ? Extreme Linux Software from Red Hat www.redhat.com/extreme 5.2. ¹®¼­ º£¿À¿ïÇÁ HOWTOÀÇ ÃÖ±Ù ¹®¼­ ? The latest version of the Beowulf HOWTO www.sci.usq.edu.au/staff/jacek/beowulf < http://www.sci.usq.edu.au/staff/jacek/beowulf> /º£¿À¿ïÇÁ ½Ã½ºÅÛ ±¸¼º ? Building a Beowulf System www.cacr.caltech.edu/beowulf/tutorial/building.html JacekÀÇ º£¿À¿ïÇÁ ¿¬°áµé ? Jacek's Beowulf Links www.sci.usq.edu.au/staff/jacek/beowulf º£¿À¿ïÇÁ ¼³Ä¡°ú °ü¸® HOWTO (DRAFT) ? Beowulf Installation and Administration HOWTO (DRAFT) www.sci.usq.edu.au/staff/jacek/beowulf ¸®´ª½º º´·Ä ó¸® HOWTO ? Linux Parallel Processing HOWTO yara.ecn.purdue.edu/~pplinux/PPHOWTO/pphowto.html 5.3. ³í¹® ? Chance Reschke, Thomas Sterling, Daniel Ridge, Daniel Savarese, Donald Becker, and Phillip Merkey A Design Study of Alternative Network Topologies for the Beowulf Parallel Workstation. Proceedings Fifth IEEE International Symposium on High Performance Distributed Computing, 1996. www.beowulf.org/papers/HPDC96/hpdc96.html < http://www.beowulf.org/papers/HPDC96/hpdc96.html> ? Daniel Ridge, Donald Becker, Phillip Merkey, Thomas Sterling Becker, and Phillip Merkey. Harnessing the Power of Parallelism in a Pile-of-PCs. Proceedings, IEEE Aerospace, 1997. www.beowulf.org/papers/AA97/aa97.ps ? Thomas Sterling, Donald J. Becker, Daniel Savarese, Michael R. Berry, and Chance Res. Achieving a Balanced Low-Cost Architecture for Mass Storage Management through Multiple Fast Ethernet Channels on the Beowulf Parallel Workstation. Proceedings, International Parallel Processing Symposium, 1996. www.beowulf.org/papers/IPPS96/ipps96.html ? Donald J. Becker, Thomas Sterling, Daniel Savarese, Bruce Fryxell, Kevin Olson. Communication Overhead for Space Science Applications on the Beowulf Parallel Workstation. Proceedings,High Performance and Distributed Computing, 1995. www.beowulf.org/papers/HPDC95/hpdc95.html ? Donald J. Becker, Thomas Sterling, Daniel Savarese, John E. Dorband, Udaya A. Ranawak, Charles V. Packer. BEOWULF: A PARALLEL WORKSTATION FOR SCIENTIFIC COMPUTATION. Proceedings, International Conference on Parallel Processing, 95. www.beowulf.org/papers/ICPP95/icpp95.html < http://www.beowulf.org/papers/ICPP95/icpp95.html> ? º£¿À¿ïÇÁ »çÀÌÆ®¿¡ ÀÖ´Â ³í¹®µé www.beowulf.org/papers/papers.html 5.4. ¼ÒÇÁÆ®¿þ¾î ? PVM - Parallel Virtual Machine www.epm.ornl.gov/pvm/pvm_home.html ? LAM/MPI (Local Area Multicomputer / Message Passing Interface) www.mpi.nd.edu/lam < http://www.mpi.nd.edu/lam> ? BERT77 - FORTRAN conversion tool º£¿À¿ïÇÁ ÇÁ·ÎÁ§Æ® ÆäÀÌÁö¿¡ ÀÖ´Â º£¿À¿ïÇÁ ¼ÒÇÁÆ®¿þ¾î beowulf.gsfc.nasa.gov/software/software.html < http://beowulf.gsfc.nasa.gov/software/software.html> JacekÀÇ º£¿À¿ïÇÁ-À¯Æ¿µé ? ftp.sci.usq.edu.au/pub/jacek/beowulf-utils bWatch - Ŭ·¯½ºÅÍ °¨½Ã µµ±¸ ? bWatch - cluster monitoring tool www.sci.usq.edu.au/staff/jacek/bWatch 5.5. º£¿À¿ïÇÁ ¸Ó½Åµé ? ¾Æ¹ß·ÐÀº 140°³ÀÇ ¾ËÆÄ ÇÁ·Î¼¼¼­, 36GB ¸Þ¸ð¸®·Î ±¸¼º µÇ¾ú°í, Top 150 ¸ñ·Ï¿¡¼­ 144¹ø°¸¦ ±â·ÏÇϸç, ¾Æ¸¶ ¼¼°è¿¡¼­ °¡Àå ºü¸¥ º£¿À¿ïÇÁ ¸Ó½ÅÀÏ °ÍÀÌ´Ù. swift.lanl.gov/avalon/ ? MPACTRÀº 14°³ÀÇ 4 CPU ÆäƼ¾ö ÇÁ·Î 200°ú 14GM ¸Þ¸ð¸®·Î ÀÌ·ç¾îÁü. megalon.ca.sandia.gov/description.html theHIVEÀº ´Ù¸¥ ºü¸¥ º£¿À¿ïÇÁ ½´ÆÛ ÄÄÇ»ÅÍÀÌ´Ù. theHIVEÀº 64°³ÀÇ ³ëµå·Î 128 CPU ¸Ó½Å°ú 4GB ¸Þ¸ð¸®·Î ±¸¼º. megalon.ca.sandia.gov/description.html MAGI Ŭ·¯½º´õ - ¸Å¿ì Èï¹ÌÀÖ´Â »çÀÌÆ®·Î ±¦ÂúÀº ¿¬°áµéÀÌ ÀÖÀ½. noel.feld.cvut.cz/magi/ 5.6. ´Ù¸¥ Àç¹ÌÀÖ´Â »çÀÌÆ® ? SMP Linuxwww.linux.org.uk/SMP/title.html ? Paralogic - Buy a Beowulfwww.plogic.com 5.7. ¿ª»ç ? Àü¼³ - º£¿À¿ïÇÁ legends.dm.net/beowulf/index.html ? º£¿À¿ïÇÁÀÇ ¸ðÇè www.lnstar.com/literature/beowulf/beowulf.html 6. ¹Ø±×¸² 6.1. sum.c /* Jacek Radajewski jacek@usq.edu.au */ /* 21/08/1998 */ #include #include int main (void) { double result = 0.0; double number = 0.0; char string[80]; while (scanf("%s", string) != EOF) { number = atof(string); result = result + number; } printf("%lf\n", result); return 0; } 6.2. sigmasqrt.c /* Jacek Radajewski jacek@usq.edu.au */ /* 21/08/1998 */ #include #include int main (int argc, char** argv) { long number1, number2, counter; double result; if (argc < 3) { printf ("usage : %s number1 number2\n",argv[0]); exit(1); } else { number1 = atol (argv[1]); number2 = atol (argv[2]); result = 0.0; } for (counter = number1; counter <= number2; counter++) { result = result + sqrt((double)counter); } printf("%lf\n", result); return 0; } 6.3. prun.sh #!/bin/bash # Jacek Radajewski jacek@usq.edu.au # 21/08/1998 export SIGMASQRT=/home/staff/jacek/beowulf/HOWTO/example1/sigmasqrt # $OUTPUT must be a named pipe # mkfifo output export OUTPUT=/home/staff/jacek/beowulf/HOWTO/example1/output rsh scilab01 $SIGMASQRT 1 50000000 > $OUTPUT < /dev/null& rsh scilab02 $SIGMASQRT 50000001 100000000 > $OUTPUT < /dev/null& rsh scilab03 $SIGMASQRT 100000001 150000000 > $OUTPUT < /dev/null& rsh scilab04 $SIGMASQRT 150000001 200000000 > $OUTPUT < /dev/null& rsh scilab05 $SIGMASQRT 200000001 250000000 > $OUTPUT < /dev/null& rsh scilab06 $SIGMASQRT 250000001 300000000 > $OUTPUT < /dev/null& rsh scilab07 $SIGMASQRT 300000001 350000000 > $OUTPUT < /dev/null& rsh scilab08 $SIGMASQRT 350000001 400000000 > $OUTPUT < /dev/null& rsh scilab09 $SIGMASQRT 400000001 450000000 > $OUTPUT < /dev/null& rsh scilab10 $SIGMASQRT 450000001 500000000 > $OUTPUT < /dev/null& rsh scilab11 $SIGMASQRT 500000001 550000000 > $OUTPUT < /dev/null& rsh scilab12 $SIGMASQRT 550000001 600000000 > $OUTPUT < /dev/null& rsh scilab13 $SIGMASQRT 600000001 650000000 > $OUTPUT < /dev/null& rsh scilab14 $SIGMASQRT 650000001 700000000 > $OUTPUT < /dev/null& rsh scilab15 $SIGMASQRT 700000001 750000000 > $OUTPUT < /dev/null& rsh scilab16 $SIGMASQRT 750000001 800000000 > $OUTPUT < /dev/null& rsh scilab17 $SIGMASQRT 800000001 850000000 > $OUTPUT < /dev/null& rsh scilab18 $SIGMASQRT 850000001 900000000 > $OUTPUT < /dev/null& rsh scilab19 $SIGMASQRT 900000001 950000000 > $OUTPUT < /dev/null& rsh scilab20 $SIGMASQRT 950000001 1000000000 > $OUTPUT < /dev/null&