6. 6. Super Computer Architecture

¿äÁò Super computer¸¦ À§ÇÑ systemÀÇ ¹æ½ÄÀº ´ëºÎºÐ, RISC ±â¹ÝÀÇ Symmetric Multi-Processing(SMP) nodeµéÀ» fast network·Î ¿¬°áÇÏ´Â °Í¿¡¼­ Å©°Ô ¹þ¾î³ªÁö ¾Ê´Âµ¥ ÀÌ°ÍÀº ±¸Á¶»óÀ¸·Î ÀÚ¿¬½º·¯¿î ¹ßÀü ¸ð½ÀÀÎ °Í °°´Ù. ºñ±³Àû °ª½Ñ RISC processor¿Í ±Ô°ÝÈ­µÈ Åë½Å software·Î processorµéÀ» ¿¬°áÇÏ´Â network productµé ´öºÐ¿¡, vendor°¡ Á¦°øÇÏ´Â complete system ´ë½Å ÀÚüÀûÀ¸·Î cluster computer¸¦ ±¸¼ºÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù.

´ÙÀ½ site¿¡ Super Computer¿¡ ´ëÇÑ Á¤º¸°¡ ´õ ÀÖ´Ù.

6.1. 6.1 Main Architectural Classes

Machine ÀÚü¿¡ ´ëÇÑ ¾ê±â¸¦ Çϱâ Àü¿¡, ¼º´ÉÀ» Çâ»ó½ÃÅ°±â À§Çؼ­ °í¾ÈµÈ mechanismµéÀ» »ìÆ캸´Â °ÍÀÌ ÁÁÀ» °Í °°´Ù. ù ¹ø°·Î hardwareÀÇ ±¸Á¶´Â ÇϳªÀÇ CPU ¼º´ÉÀ» ³Ñ¾î¼­ computer systemÀÇ ¼Óµµ¸¦ ³ôÀÌ´Â °ÍÀÇ °¡´É¼º ¿©ºÎ±îÁöµµ °áÁ¤ÇÏ´Â ÁÖµÈ ¿ä¼ÒÀÌ´Ù. Hardware¿Í ´õºÒ¾î Áß¿äÇÑ ¶Ç ÇϳªÀÇ ¿ä¼Ò´Â, ÁÖ¾îÁø hardware platform¿¡¼­ »ç¿ëµÉ È¿À²ÀûÀÎ code¸¦ »ý¼ºÇÏ´Â compilerÀÇ ¼º´ÉÀÌ´Ù. ´ëºÎºÐÀÇ °æ¿ì hardwareÀÇ ¿µÇâ°ú softwareÀÇ ¿µÇâÀ» ºÐ¸®Çϱâ´Â Èûµé±â ¶§¹®¿¡ °¢°¢ÀÇ ¿µÇâÀ¸·Î ÀÎÇÑ °á°ú¸¦ ºÐ¼®ÇÒ ¶§´Â ÁÖÀÇÇØ¾ß ÇÑ´Ù. ÀÌ chapter¿¡¼­´Â ÁÖ·Î hardwareÀÇ ±¸Á¶¿¡ ´ëÇؼ­ »ìÆ캻´Ù.

±×µ¿¾È FlynnÀÇ ºÐ·ùü°è´Â high-performance computer¸¦ ºÐ·ùÇϴµ¥ À¯¿ëÇß´Ù. ÀÌ Ã¼°è´Â instruction°ú dataÀÇ È帧À» ¾î¶»°Ô Á¶ÀÛÇϴ°¡¿¡ µû¶ó¼­ 4°¡Áö·Î ºÐ·ùÇÑ´Ù. ¿ì¼±Àº °¢ class¸¦ °£·«ÇÏ°Ô ¼³¸íÇÏ°í ³ªÁß¿¡ Á»´õ ÀÚ¼¼È÷ »ìÆ캸µµ·Ï ÇÑ´Ù.

6.2. 6.2 SISD machines

SISD machineÀº ÇϳªÀÇ CPU·Î ÇϳªÀÇ instuction È帧À» serialÇÏ°Ô Ã³¸®ÇÏ´Â systemÀÌ´Ù. ¿äÁò ¸¹Àº ´ëÇü mainframeµéÀÌ µÎ °³ ÀÌ»óÀÇ CPU¸¦ °®±ä ÇÏÁö¸¸ °¢°¢ÀÇ instruction ó¸® È帧Àº ¼­·Î ¿¬°üÀÌ ¾ø´Ù. µû¶ó¼­ ±×·± °Íµéµµ (¿©·¯°³°¡) °¢ÀÚÀÇ data space¿¡¼­ µ¿ÀÛÇÏ´Â SISD machineÀ¸·Î ºÐ·ùµÇ´Â °ÍÀÌ ¸Â´Ù. DEC, Hewlett-Packard, Sun MicrosystemsÀÇ workstation ´ëºÎºÐÀÌ SISD machineÀÇ ¿¹¶ó°í ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹®¼­¿¡¼­´Â SISD machineÀÇ Á¤ÀǸ¸ ¾Ë¾ÆµÎµµ·Ï ÇÏ°í ÀÚ¼¼È÷ »ìÆ캸Áö´Â ¾Ê°Ú´Ù.

6.3. 6.3 SIMD machines

SIMD machine¿¡¼­´Â 1,024¿¡¼­ 16,384°³ ±îÁöÀÇ ¸¹Àº processing unitÀÌ ¶È°°Àº instructionÀ» ¼­·Î ´Ù¸¥ data¿¡ ´ëÇؼ­ lock-stepÀ¸·Î ¼öÇàÇؼ­ ÇÑ °³ÀÇ instructionÀÌ ¸¹Àº data¸¦ º´·ÄÀûÀ¸·Î ó¸®ÇϰԵȴÙ. SIMD machineÀÇ ¿¹·Î´Â CPP DAP Gamma II³ª Alenia Quadircs °°Àº °ÍÀÌ ÀÖ´Ù.

SIMD systemÀÇ ÇÏÀ§ ºÐ·ù·Î vector processor°¡ ÀÖ´Ù. Vector processor´Â Ưº°ÇÑ ±¸Á¶ÀÇ CPUµéÀ» ÀÌ¿ëÇؼ­ ÇϳªÀÇ data°¡ ¾Æ´Ï¶ó ºñ½ÁÇÑ dataµéÀÇ array¸¦ ó¸®ÇÑ´Ù. data°¡ ÀÌ·¸°Ô vector ´ÜÀ§·Î ó¸®µÇ¸é °á°ú¸¦ clock cycle´ç ÇÑ ¹è³ª µÎ ¹è -- Ưº°ÇÑ °æ¿ì¿¡´Â -- ¼¼ ¹èÀÇ ºñÀ²·Î ¾òÀ» ¼ö ÀÖ´Ù. (system¿¡¼­´Â clock cycleÀ» ³»ºÎ ½Ã°£ÀÇ ±âº» ´ÜÀ§·Î Á¤ÀÇÇÑ´Ù.) µû¶ó¼­ vector processor´Â data¸¦ °ÅÀÇ º´·ÄÀûÀ¸·Î ó¸®ÇÒ ¼ö Àִµ¥, ´Ü ÀÌ°ÍÀº vector mode·Î µ¿ÀÛÇÒ ¶§ ¸¸ÀÌ´Ù. ÀÌ·¸°Ô Çϸé ÀϹÝÀûÀÎ scalar mode ÀÏ ¶§º¸´Ù ¸î ¹è ºü¸£°Ô ó¸®ÇÒ ¼ö ÀÖ´Ù. ½ÇÁ¦·Î´Â vector processor¸¦ ´ëºÎºÐ SIMD machineÀ¸·Î ÀνÄÇϸç, ¿¹·Î´Â Hitachi S3600ÀÌ ÀÖ´Ù.

6.4. 6.4 MISD machines

ÀÌ·ÐÀûÀ¸·Î ÀÌ·± À¯ÇüÀÇ machineÀº ÇϳªÀÇ data È帧¿¡ ´ëÇؼ­ ¿©·¯°³ÀÇ instructionÀ» ¼öÇàÇÑ´Ù. ±×·¸Áö¸¸ ¾ÆÁ÷±îÁö ÀÌ·± Á¾·ùÀÇ machineÀÌ ½ÇÁ¦ÀûÀ¸·Î ±¸ÇöµÈ ÀûÀÌ ¾øÀ»»Ó´õ·¯ ÀÌ·± systemÀº »ý°¢Çϱ⵵ ½±Áö ¾Ê´Ù. ¾ÕÀ¸·ÎÀÇ ³»¿ë¿¡¼­ ÀÌ À¯ÇüÀº Á¦¿ÜÇϵµ·Ï ÇÑ´Ù.

6.5. 6.5 MIMD machines

ÀÌ·± Á¾·ùÀÇ machineÀº ¿©·¯°³ÀÇ instructionÀ» ¿©·¯°³ÀÇ data¿¡ ´ëÇؼ­ º´·ÄÀûÀ¸·Î ¼öÇàÇÑ´Ù. ¾Õ¿¡¼­ ³ª¿Ô´ø ¿©·¯ °³ÀÇ processor¸¦ °¡Áø SISD machine°úÀÇ Â÷ÀÌÁ¡Àº, instructionÀ̳ª data°¡ ¼öÇàÇÒ ÀÛ¾÷ÀÇ ¼­·Î ´Ù¸¥ ºÎºÐÀ» ³ªÅ¸³¾ »Ó ½ÇÁ¦·Î´Â ÇϳªÀÇ ÀÛ¾÷À¸·Î ¿¬°üÀÌ µÇ¾î ÀÖ´Ù´Â Á¡ÀÌ´Ù. µû¶ó¼­ MIMD system¿¡¼­´Â ¿©·¯ °³ÀÇ sub-task¸¦ º´·ÄÀûÀ¸·Î ó¸®Çؼ­ °á±¹ ¼öÇàÇÒ ÇϳªÀÇ main task °á°ú¸¦ ¾ò´Âµ¥ ±îÁöÀÇ ½Ã°£À» ´ÜÃàÇÒ ¼ö ÀÖ´Ù. ÇÑÆí MIMD systemÀÇ Á¾·ù´Â ´Ù¾çÇϱ⠶§¹®¿¡ FlynnÀÇ ºÐ·ùü°è°¡ ÀûÀýÇÏÁö ¾ÊÀº ¸éÀÌ ÀÖ´Ù. µ¿ÀÛÇÏ´Â ¹æ½ÄÀÌ ¼­·Î ¸¹ÀÌ ´Ù¸¥, four-processor NEC SX-5¿Í thousand processor SGI/Cray T3E°¡ °°Àº Á¾·ù·Î ºÐ·ùµÇ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î Ãß°¡ÀûÀÎ ±¸ºÐÀ» µÎ°í ±×°Í¿¡ µû¶ó¼­ »ìÆ캸µµ·Ï ÇÏ°Ú´Ù.

6.5.1. Shared memory systems

Shared memory system¿¡¼­´Â ¿©·¯°³ÀÇ CPU°¡ ÇϳªÀÇ address space¸¦ °øÀ¯ÇÑ´Ù. ÀÌ ¹æ½Ä¿¡¼­´Â ¸ðµç CPUµéÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â memory°¡ ÇÑ °³»ÓÀ̱⠶§¹®¿¡ data°¡ ÀúÀåµÈ °÷¿¡ ´ëÇÑ Á¤º¸¸¦ ±»ÀÌ ¾Ë°í ÀÖÀ» ÇÊ¿ä°¡ ¾ø´Ù. Shared memory systemÀº SIMDÀÏ ¼öµµ ÀÖ°í MIMD ÀÏ ¼öµµ Àִµ¥, Single-CPU vector processor´Â ÀüÀÚÀÇ ¿¹ÀÌ°í multi-CPU modelÀº ÈÄÀÚÀÇ ¿¹ÀÌ´Ù. ¾ÕÀ¸·Î´Â SM-SIMD³ª SM-MIMD¶ó´Â ¾à¾î·Î Ç¥ÇöÇÏ´Â °æ¿ìµµ ÀÖÀ» °ÍÀÌ´Ù.

6.5.2. Distributed memory systems

ÀÌ ÇüÅ´ °¢ÀÚÀÇ memory¸¦ °®´Â CPUµéÀÌ ¼­·Î network·Î ¿¬°áµÇ¾î ÇÊ¿äÇÒ ¶§¸¶´Ù °¢°¢ÀÇ memory·ÎºÎÅÍ data¸¦ ±³È¯ÇÑ´Ù. Shared memory machineÀÇ °æ¿ì¿Í´Â ´Þ¸® user´Â ¿øÇÏ´Â data°¡ Á¸ÀçÇÏ´Â À§Ä¡¸¦ ¾Ë¾Æ¾ß ÇÏ°í ÇÊ¿äÇÒ ¶§¸¶´Ù data¸¦ ¿Å°Ü ÁÖ¾î¾ß ÇÑ´Ù. Distributed memory systemµµ SIMD³ª MIMD°¡ ¸ðµÎ °¡´ÉÇÏ´Ù. lock stepÀ¸·Î µ¿ÀÛÇÏ´Â SIMD system°æ¿ì¿¡´Â processor¸¶´Ù °¢ÀÚÀÇ ºÐ»êµÈ memory¸¦ °®´Â´Ù. Distributed memory MIMD systemÀÇ °æ¿ì¿¡´Â ¿¬°áµÇ´Â networkÀÇ topology°¡ ´Ù¾çÇѵ¥, topologyÀÇ ±¸Ã¼ÀûÀÎ Á¤º¸¸¦ user°¡ ¾Ë ÇÊ¿ä±îÁö´Â ¾ø±â ¶§¹®¿¡ À̽ļºÀÌ ÁÁ´Ù. ¾ÕÀ¸·Î´Â distributed memory system¿¡ ´ëÇؼ­ DM-SIMD³ª DM-MIMD¶ó´Â ¿ë¾î·Î °¢°¢À» °¡¸®Å°µµ·Ï ÇÑ´Ù. Shared memory¿Í distributed memory´Â ºÐ¸íÈ÷ ±¸ºÐµÇ´Â °Íó·³ º¸ÀÌÁö¸¸ Ç×»ó ±×·± °ÍÀº ¾Æ´Ï´Ù. ¿¹¸¦ µé¾î, Kendall Square Research system¿¡¼­´Â hardware level¿¡¼­ "virtual shared memory"¶ó´Â °³³äÀ» µµÀÔÇß´Ù. Virtual shared memory´Â programming level¿¡¼­µµ simulationÀÌ °¡´ÉÇؼ­, processorµé¿¡ data¸¦ ºÐ»ê½ÃÅ°´Â compilerÀÇ Áö½Ã ¹æ¹ýÀ¸·Î High Performance Fortran(HPF) specificationÀÌ 1993³â¿¡ ¹ßÇ¥µÇ±âµµ Çߴµ¥, HPF°¡ ±¸ÇöµÈ systemÀº user ÀÔÀå¿¡¼­´Â shared memory machineÀ¸·Î º¸ÀÌ°Ô µÈ´Ù. HP³ª SGI/Cray °°Àº Massively Parallel Processor system(MPP systemÀ̶ó°íµµ ÇÑ´Ù)ÀÇ vendor µéµµ, ¹°¸®ÀûÀ¸·Î ºÐ»êµÈ memory¸¦ collective address space·Î addressing ÇÔÀ¸·Î½á virtual shared-memory programming modelÀ» Áö¿øÇÑ´Ù. ±×·¸°Ô Çؼ­ systemÀÇ ¸ðµç memory¸¦ ÇϳªÀÇ global address space·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·± Á¾·ùÀÇ system¿¡ ´ëÇؼ­´Â ccNUMA ºÎºÐ¿¡¼­ ´õ ´Ù·çµµ·Ï ÇÑ´Ù. Âü°í·Î TreadMarks °°Àº package¿¡µµ workstationµéÀÇ network¸¦ À§Çؼ­ virtual shared memory environment¸¦ Á¦°øÇÑ´Ù.

6.6. 6.6 Distributed Processing Systems

ÃÖ±ÙÀÇ °æÇâ Áß Çϳª´Â ºÐ»ê ó¸®(Distributed Processing)Àε¥ ÀÌ°ÍÀº DM-MIMD¿¡¼­ ÇÑ ´Ü°è ´õ ³ª¾Æ°£ °³³äÀÌ´Ù. ¿©·¯ °³ÀÇ intergrated processor¸¦ ¸î °³ÀÇ box³ª workstation, ¶Ç´Â mainframe µî¿¡ ³Ö´Â ´ë½Å (Gigabit) EhternetÀ̳ª FDDI µîÀ¸·Î ¿¬°áÇؼ­ ÇϳªÀÇ program ¾È¿¡¼­ concurrentÇÏ°Ô ¼öÇàµÇµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. °³³äÀûÀ¸·Î´Â DM-MIMD computing°ú º°·Î ´Ù¸¦ °ÍÀÌ ¾øÁö¸¸ processor°£ÀÇ Åë½Å ¼Óµµ°¡ Á» ´À¸®´Ù. ¸¹Àº package¿¡¼­ distributed computingÀÌ °¡´ÉÇѵ¥, ¿¹¸¦ µé¸é PVM(Parallel Virtual Machine)À̳ª MPI(Message Passing Interface)°¡ ÀÖ´Ù. ÀÌ·± "message passing" modelÀ̶ó°í ºÒ¸®´Â ¹æ½ÄÀÇ programmingÀÌ ³Î¸® ¹Þ¾Æµé¿©Á³±â ¶§¹®¿¡ PVMÀ̳ª MPI´Â ´ëºÎºÐ major vendorÀÇ distributed-memory MIMD¿¡ äÅõǾú°í, ½ÉÁö¾î ȣȯ¼ºÀ» À§Çؼ­ shared-memory MIMD¿¡µµ Àû¿ëµÇ¾ú´Ù. »Ó¸¸ ¾Æ´Ï¶ó high computational power¸¦ ¾ò±â À§Çؼ­ HiPPI channel µîÀ¸·Î shared-memory systemÀ» clusterÇÏ´Â °æÇâµµ ÀÖ´Ù. ¿¹¸¦ µé¸é NEC SX-5³ª SGI/Cray SV1 µîÀÌ ÀÌ·± ±¸Á¶¸¦ °®´Â´Ù. µû¶ó¼­ clustered node ³»¿¡¼­ shared-memory programming styleÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

6.7. 6.7 ccNUMA machines

¾ÕÀÇ ³»¿ë¿¡¼­ ³ª¿Ô´ø °Íó·³, ºñ±³Àû ÀûÀº ¼öÀÇ(16°³ Á¤µµ±îÁö) RISC processor¸¦ Symmetric Multi-Processing(SMP) node¿¡ ÁýÀû½ÃÅ°´Â °æÇâÀ» º¼ ¼ö ÀÖ´Ù. ±×·± node ¾ÈÀÇ processorµéÀº ½ÇÁ¦·Î´Â °ª½Ñ network·Î ¿¬°áµÇ¾î ÀÖÁö¸¸ °¡»óÀûÀ¸·Î´Â Ç×»ó 1-stage crossbar·Î ¿¬°áµÇ¾î ÀÖ´Â °ÍÀÌ´Ù.

ÀÌ°ÍÀº ¾Õ¿¡¼­ ³ª¿Ô´ø vector processor¿Í ºñ½ÁÇÑ ¹æ½ÄÀÌÁö¸¸ ¸ðµç processorµéÀÌ Àüü address space¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡¼­ ´Ù¸£´Ù. µû¶ó¼­ ±×·± systemÀº SM-MIMD machineÀ̶ó°í º¼ ¼ö ÀÖ´Ù. ±×·¸Áö¸¸ memory°¡ ½ÇÁ¦·Î´Â ºÐ»êµÇ¾î Àֱ⠶§¹®¿¡ data access operationÀÌ Ç×»ó ÀÏÁ¤ÇÑ ½Ã°£³»¿¡ ¼öÇàµÈ´Ù´Â º¸ÀåÀÌ ¾ø´Ù. ÀÌ·± systemÀ» ccNUMA¶ó°í Çϴµ¥ ccNUMA´Â Cache Coherent Non-Uniform Memory Access¸¦ ¶æÇÑ´Ù. ¿©±â¼­ "Cache Coherent"¶ó´Â °ÍÀº ¸ðµç CPU¿¡ ´ëÇؼ­ »ç¿ëµÇ´Â º¯¼ö°¡ ÀÏ°üµÈ °ªÀ» °¡Á®¾ß ÇÔÀ» ¸»ÇÑ´Ù. Áï ÀÌ º¯¼öµéÀ» Á¦°øÇÏ´Â cache°¡ ¼­·Î °°Àº º¯¼ö°ªÀ» ÀÏ°üµÇ°Ô °¡Á®¾ß Çϴµ¥ CPUµéÀÇ cache°¡ consistentÇϵµ·Ï ¸¸µå´Â ¹æ¹ý¿¡´Â ¿©·¯ °¡Áö°¡ ÀÖ´Ù. ±× Áß Çϳª´Â ´Ù¸¥ CPU¿¡¼­ Àü¼ÛÁßÀÎ º¯¼öµéÀ» À¯½ÉÈ÷ °üÂûÇÏ°í ÀÖ´Ù°¡ ÀÚ½ÅÀÌ °¡Áö°í ÀÖ´Â º¯¼öÀÌ¸é ±× °ªÀ» updateÇϵµ·Ï ÇÏ´Â snoopy bus protocolÀ» »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ±× ¿Ü¿¡ °¢ º¯¼öÀÇ À¯È¿Çϵµ·Ï ÇØÁִ Ưº°ÇÑ memoryÀÎ directory memory¸¦ °®´Â ¹æ¹ýµµ ÀÖ´Ù.

¹°¸®ÀûÀ¸·Î´Â memory°¡ ºÐ»êµÇ¾î ÀÖÁö¸¸ Ưº°ÇÑ È¿°ú¸¦ À§Çؼ­ (directory memoryó·³) hardware/software°¡ ÅëÇյǾî Àֱ⠶§¹®¿¡ ½ÇÁ¦·Î´Â ÀÌ·± systemÀ» SM-MIMD¶ó°í º¼ ¼öµµ ÀÖ´Ù.