검수요청.png검수요청.png

슈퍼컴퓨터

해시넷
k8679026 (토론 | 기여)님의 2020년 8월 14일 (금) 14:09 판 (프로세서)
이동: 둘러보기, 검색

슈퍼컴퓨터(supercomputer)란 일반 컴퓨터보다 훨씬 빠른 속도로 대용량 연산을 수행할 수 있는 컴퓨터를 말한다. 간략히 슈퍼컴(supercom)이라고도 한다. 슈퍼컴퓨터의 개념은 상대적이라서 시대에 따라 기준이 다르다. 현재의 슈퍼컴퓨터는 테라플롭스(TFlop/s) 또는 페타플롭스(PFlop/s) 단위로 연산 처리 속도를 표시하며 1 페타플롭스는 초당 1,000조 번, 1페타플롭스는 초당 1경 번의 부동소수점 연산 능력을 갖춘다.

2020년 6월 기준 세계에서 가장 빠른 슈퍼컴퓨터는 일본의 후가쿠(富岳, Fugaku)로서 415.5 페타플롭스의 연산 속도를 가지고 있다. 이는 기존 세계 1위인 미국 테네시주 오크리지국립연구소의 아이비엠(IBM) 슈퍼컴 `서밋'(148.6 페타플롭스)보다 2.8배나 빠른 것이다. 한국의 경우 기상청, 대법원, 서울대학교, 한국과학기술정보연구원(KISTI), 한국과학기술연구원(KIST) 등에 슈퍼컴퓨터가 도입되어 있다.

개요

최초의 슈퍼컴퓨터라고 불릴만한 컴퓨터는 1964년, 미국의 씨디씨(CDC) 사가 내놓은 'CDC 6600'이다. 시모어 크레이가 설계한 컴퓨터로 1메가플롭스(MF)로, 1초에 연산 명령 100만 회 수행급 연산속도를 가졌다. 슈퍼컴퓨터는 “당대의 컴퓨터 중에서 월등한 연산 능력을 보유한 컴퓨터들”이라고 정의되며, 이는 매우 상대적인 개념으로, 한때는 슈퍼컴퓨터로 불리던 컴퓨터들이 컴퓨터 성능의 발전에 따라 미래에는 일반적인 고성능 컴퓨터 정도로 지칭될 수 있다는 것을 의미한다. 뛰어난 계산 성능을 자랑하는 슈퍼컴퓨터는 전통적으로 기상·기후 예측, 입자 물리, 천문우주, 생명공학 등 첨단 과학기술 분야의 연구에 주로 활용되었다. 또한, 실험이 매우 어렵거나 불가능한 핵실험 등 국방, 안보, 에너지 분야에서도 많이 사용된다. 최근에는 인공지능(AI), 사물인터넷(IoT) 등의 4차 산업혁명의 기반으로 활용되고 있다. 세계 슈퍼컴퓨터 순위 사이트인 “탑 500 슈퍼컴퓨터(Top 500 supercomputer)[1]"에서 린팩(linpack) 등의 성능 비교 테스트를 통해 매년 두 차례 가장 빠른 500대의 슈퍼컴퓨터 목록을 발표하는데, 통상 이 목록에 등재된 컴퓨터들을 슈퍼컴퓨터로 보며 여기서 빠지는 경우 슈퍼컴퓨터로서의 수명은 다하는 것으로 본다.[2] [3]

과거에는 슈퍼컴퓨터 전용의 벡터 중앙 처리 장치(CPU) 등 제작사별로 특수한 전문 기술을 사용하는 경우가 대부분이었으나, 최근의 슈퍼컴퓨터 기술 동향은 범용 중앙 처리 장치, 일반 서버에도 사용되는 표준 아키텍처, 리눅스 운영체제와 같은 오픈 소스 소프트웨어 등 표준적인 기술을 사용하는 것이 일반화되었다. 그리고 2017년 11월, 탑 500 슈퍼컴퓨터에서 슈퍼컴퓨터 리스트 최신판에 등재된 컴퓨터 500종 모두 리눅스로 구동한다는 소식과 함께 이제 리눅스가 슈퍼컴퓨터 분야를 지배한다고 보도했다.[4]

역사

해외

고성능 컴퓨터(HPC, High Performance Computing)는 대량의 데이터를 신속하게 처리하기 위해 연산 처리 속도에 중점을 둔 고성능 컴퓨터를 말한다. 이 고성능 컴퓨터를 슈퍼컴퓨터라고 가정하면, 최초의 고성능 컴퓨터는 미국 씨디씨(CDC)에서 발표한 'CDC 6600' 모델이다. 당시에 시모어 크레이 및 연구원들은 '기존 컴퓨터보다 10배쯤 빠른 컴퓨터를, 슈퍼컴퓨터라고 부를 만한 컴퓨터를 만들어보자'라는 목표로 개발됐다고 전해진다. 씨디씨 6600의 연산 속도는 1메가플롭스(MFlop/s)로 초당 1백만 회의 부동소수점 연산이 가능했으며 현재의 축소명령어 집합(RISC) 방식과 비슷한 명령어 처리구조와 프로세서 병렬화, 최적화 등의 기술을 적용해 그 당시 가장 빠른 컴퓨터였던 아이비엠(IBM)사의 '아이비엠 7030'보다 3배 이상 빠른 연산 처리 속도를 달성했다. 이는 메가플롭스 급의 연산 성능을 달성한 최초의 컴퓨터였다. 씨디씨 6600은 당시 100여 대 이상 판매되었고 그중 절반 이상이 핵실험 연구에 쓰였다. 슈퍼컴퓨터의 대다수가 우주, 무기 개발, 날씨 등의 고도의 연산력이 필요한 특수분야에 집중적으로 쓰인다는 사실을 보면 씨디씨 6600은 성능 및 목적 면에서도 근대 슈퍼컴퓨터의 기틀을 닦은 모델이다. 시모어 크레이는 1972년 씨디씨를 떠나 오늘날까지 세계적으로 가장 잘 알려진 슈퍼컴퓨터 제작사 중 하나인 '크레이 리서치(Cray Research, 크레이)'를 설립하여 슈퍼컴퓨터 시장을 선도했다. 메가플롭스에 이어 1998년 최초의 기가플롭스(Gflop/s) 성능을 달성한 슈퍼컴퓨터도 크레이의 모델이며, 2020년 국내에서 가장 빠른 슈퍼컴퓨터인 기상청의 ‘누리온(Nurion)’ 역시 크레이에서 도입한 제품이다. 이와 같은 성능은 오늘날 개인용 컴퓨터가 수십에서 일백 기가플롭스 이상의 성능을 제공하는 것에 비교하면 보잘것없지만, 당시 기준으로는 매우 뛰어난 계산 성늘을 제공했다.

한편 일본에서는 1977년 후지츠(Fujitsu)사가 일본 최초의 슈퍼컴퓨터인 'F230-75APU' 시스템을 제작했다. 1980년대부터는 미국과 일본의 많은 컴퓨터 제조사들이 슈퍼컴퓨터 시장에 뛰어들었고, 여러 선진국의 과학기술 분야를 중심으로 슈퍼컴퓨터 도입량이 증가하기 시작했으며 슈퍼컴퓨터를 개발하는 업체의 수도 함께 증가했다. 하지만 1990년대 중반에는 당시 세계 경제를 뒤흔든 불황이 장기화하면서 시장이 축소되고 막대한 슈퍼컴퓨터 개발 비용 등으로 '슈퍼컴퓨터 시장 붕괴'의 시기를 겪게 되었으며 감당하지 못한 여러 제조사가 차례차례 파산하거나 경쟁 업체에 인수되며 소수의 메이저 업체만이 살아남은 지금의 구조로 재편됐다. 그러나 최근에는 표준적인 범용 기술을 사용하는 경우가 많아지면서 다시 슈퍼컴퓨터의 제조사가 증가하는 추세이다. 1997년에는 인텔(Intel)사에서 제작한 미국 산디(Sandia) 국립연구소의 에이에스씨엘 레드(ASCL Red) 시스템의 이론 성능이 1테라플롭스(Tflop/s)를 넘어섰고, 2007년에는 아이비엠사가 제작한 미국 로스 알라모스(Los Alamos) 국립연구소의 시스템이 1페타플롭스(Pflop/s)의 벽을 돌파하면서 마침내 페타플롭스 컴퓨팅의 시대가 찾아왔다. 2019년, 전 세계 주요 슈퍼컴퓨터 개발 업체로는 IBM, 인텔, 엔비디아, 크레이, 델 EMC, 레노버, 후지쯔, HPE 등이 있으며 국내만 놓고 보면 슈퍼컴퓨터 개발 업체 코코 링크가 2018년 1월 1.26 페타플롭스 수준의 슈퍼컴퓨터 ‘클라이맥스-페타큐브’를 출시하고 해외 판매에 성공한 사례가 있다.[5] [6]

국내

우리나라 슈퍼컴퓨터의 역사는 1988년 한국과학기술연구원(KIST) 산하 시스템공학 연구소(SERI)가 슈퍼컴퓨터 1호기로 크레이사의 크레이 투에스(Cray-2S) 시스템을 도입하면서 시작되었다. 이 시스템은 당시 중앙기상대의 일기예보, 3차원 한반도 지도 제작, 국산 자동차 및 항공기 부품 설계, 원자력발전소 안전성 분석 등에 활용되었고, 1993년 슈퍼컴퓨터 2호기로 크레이사의 멀티 프로세서 슈퍼컴퓨터인 크레이 와이엠피 씨90(Cray Y-MP C90) 시스템이 도입되면서 퇴역하였다. 한국과학기술정보연구원이 출범한 2001년 이후로는 범국가적인 계산 인프라 구축과 다양한 서비스의 제공을 위해 슈퍼컴퓨터를 에스엠피(SMP) 아키텍처 기반 시스템과 클러스터 형태의 초병렬 시스템 2가지 종류로 구분하여 도입하고 있다. 2001년에는 슈퍼컴퓨터 3호기로 일본 엔이씨(NEC)사의 'SX-5/SX-6' 시스템(SMP)과 아이비엠(IBM)사의 'p690' 시스템(초병렬)이 설치되었으며, 2007년에는 슈퍼컴퓨터 4호기로 아이비엠사의 'p6H' 시스템(SMP)과 썬(SUN) 클러스터 초병렬 시스템이 도입되었다. 이와는 별도로 기상청은 기상업무 및 수치 모델의 발전에 따라 안정적 기상 예보와 예보 정확도의 향상을 위해 2000년 기상업무 전용의 슈퍼컴퓨터 1호기로 엔이씨사의 'SX-5' 시스템을 도입했다. 이후 2005년 기상용 슈퍼컴퓨터 2호기로 크레이사의 'X1E' 시스템을 도입하였고, 현재는 2015년 도입한 슈퍼컴퓨터 4호기로 같은 크레이사의 'XC40' 시스템을 도입하여 운영하고 있다. 우리나라는 지난 2001년 한때 세계 탑 500 슈퍼컴퓨터 목록에 16대가 동시에 등재되기도 하였으나, 최근에는 4~8대로 유지되는 경향이다. 주요 선진국보다 상대적으로 저조한 슈퍼컴퓨터 도입, 슈퍼컴퓨팅 기술의 활용도를 개선하여 우리나라의 과학기술 및 국가 경쟁력을 향상하기 위해 2011년 6월에는 미국에 이어 세계에서 2번째로 슈퍼컴퓨팅의 체계적인 육성을 위한 “국가 초고성능 컴퓨터의 활용과 육성에 관한 법률”을 제정하였다.[5] [6]

대규모 병렬 처리

일반 컴퓨터는 한 번에 하나의 작업을 수행하므로 일련의 별개 작업을 수행한다. 이를 직렬 처리라고 한다. 이는 쇼핑 후 물건을 계산할 때 점원이 컨베이어 벨트에서 물건을 집어 바코드를 찍은 뒤 통과한 다음 가방에 넣을 수 있게 하는 것과 비슷하다. 일반적인 슈퍼컴퓨터는 문제를 여러 조각으로 나누고 한 번에 여러 조각을 처리하는 방식으로 훨씬 더 빠르게 작동한다. 이를 병렬처리 라고 하며 이는 여러 물건이 담겨있는 가방을 가지고 계산대에 도착한 다음 여러 친구에게 물건을 배분한 뒤 각자 다른 계산대에 가서 별도로 결제하는 방식이다. 이렇기 때문에 병렬 처리로 작업을 더 빨리 수행 할 수 있기에 슈퍼컴퓨터는 병렬 처리 방식을 사용한다. 컴퓨터 과학자들은 병렬 처리의 기본 원리를 파악한 후에 더 많은 프로세서를 추가하는 것이 합리적이라 생각했다. 하지만 병렬 처리에는 큰 단점 하나가 존재한다. 병렬 처리를 최대한 효율적으로 사용하기 위해서는 문제를 분해하고 재조립하는 과정이 필요하다. 즉, 문제를 분할하고, 서로 다른 프로세서 간에 작업 부하를 할당 및 제어하고 결과를 재조립하기 위해 일종의 중앙 집중식 관리 시스템 또는 조정자가 필요한 셈이다. 이렇게 프로세서의 수를 추가하더라도 그 프로그램의 실행을 더 빠르게 할 수 없도록 속도향상을 제한하는 요소를 갖고 있다는 것을 두고 암달의 법칙(Amdahl's law)이라고 한다.[7] 대표적인 대규모 병렬 처리 컴퓨팅 방식에는 클러스터와 그리드 컴퓨팅이 있다. 거대한 상자에 프로세서를 채우고 대규모 병렬 처리를 통해 복잡한 문제를 해결하는 데 협력하도록 하여 슈퍼컴퓨터를 만들 수 있게 하거나 기성품 컴퓨터를 많이 구매하여 같은 방에 배치하고 매우 빠른 랜(LAN, Local Area Network)을 이용해 서로 연결하여 유사한 방식으로 작동 할 수 있다. 이러한 종류의 슈퍼컴퓨터를 클러스터라고 하며 구글(Google)의 경우 사용자의 웹 검색을 위해 전 세계 데이터 센터에 흩어져있는 기성 컴퓨터 클러스터를 사용한다. 그리드 컴퓨팅은 클러스터와 비슷하지만, 원거리 통신망(WAN, Wide Area Network)으로 연결된 수많은 컴퓨터를 가상의 단일 컴퓨터로 만드는 개념으로 분산 컴퓨팅의 한 예이다. 그리드는 모든 컴퓨터가 서로 연결되어 중앙 처리 장치, 저장공간, 데이터 등의 모든 가용 자원들을 공유하는 개념으로, 이렇게 하면 적은 비용으로 거대한 슈퍼컴퓨터를 만들 수 있게 된다.[8]

하드웨어

슈퍼컴퓨터의 부품은 일반 데스크톱 컴퓨터의 부품과 비슷하다. 둘 다 하드디스크 드라이브, 메모리 및 프로세서와 같은 컴퓨터 프로그램 내에서 명령을 처리하는 회로를 포함한다. 데스크톱 컴퓨터와 슈퍼컴퓨터 모두 유사한 프로세서가 장착되어 있지만, 속도와 메모리 크기는 상당히 다르다. 예를 들어 2000년에 구축된 데스크톱 컴퓨터는 일반적으로 2 ~ 20기가바이트(GB)의 하드 디스크 데이터 용량과 수십 메가바이트의 램(RAM, Random Access Memory)이 있는 프로세서 1개를 가지고 있으며 이는 탐색 및 비디오 게임, 워드 프로세싱, 웹과 같은 작업을 수행하기에 충분하다. 한편, 같은 기간의 슈퍼컴퓨터에는 수천 개의 프로세서, 수백 기가바이트의 램과 수백, 때로는 수천 기가바이트의 저장 공간을 허용하는 하드디스크 드라이브가 구성되어 있다. 슈퍼컴퓨터의 많은 수의 프로세서와 방대한 디스크 저장 공간 및 대용량 메모리는 기계의 성능과 속도를 크게 향상한다. 이 점이 일반 데스크톱 컴퓨터와 슈퍼컴퓨터의 가장 큰 차이점이며 데스크톱 컴퓨터는 초당 수백만 개의 부동 소수점 작업인 메가플로스 단위의 작업을 수행하고, 슈퍼컴퓨터는 초당 조, 경 단위의 작업인 테라, 페타플롭스의 속도로 수행 할 수 있다.[9]

소프트웨어

냉각장치

슈퍼컴퓨터를 초고속으로 동작하도록 하려면 시스템에 발열이 생기는데 이 발열을 해소해주지 않으면 막강한 성능의 슈퍼컴퓨터는 제대로 작동하지 못한다. 열을 발생하는 주요 부품 중 특히 중앙 처리 장치 및 그래픽카드 등의 집적회로는 그 집적도가 높아지면서 열 발생의 주원인이 되고 있다. 슈퍼컴퓨터는 웬만한 소도시 하나만큼의 전력을 소비할 수 있다. 사용되는 에너지의 대부분은 컴퓨터 하드웨어를 식히기 위한 냉각장치와 팬을 구동하기 위한 것이므로 오늘날 기하급수적으로 성능이 향상되는 슈퍼컴퓨터에 있어서 냉각장치 기술은 매우 중요하다. 냉각 방식 중 하나인 공랭식은 일반 컴퓨터와 냉각 방식과 유사한 방식이다. 컴퓨터 하단부에 일반 컴퓨터의 쿨러를 확대한 모습의 블로워(blower)가 장착되어 있어서 아래에서 빨아들인 찬 공기를 위로 보내 내부를 식히고 더운 공기를 위로 내뿜는다. 이렇게 발생한 더운 공기를 냉각하기 위해 전산실을 공기조화기를 사용해 '시원한 전산실'을 유지해야 한다. 이 공랭식보다 더 효율적인 냉각 방법으로는 수랭식이 있다. 수랭식 중 간접수랭식은 컴퓨터 내부의 열을 밖으로 배출하는 데에는 공랭식과 동일한 방식을 사용하지만 배출된 열을 식히기 위해서는 수랭식의 열교환기를 사용한다. 예를 들어 한국과학기술정보연구원 국가 슈퍼컴퓨팅연구소에 구축된 '타키온-2' 슈퍼컴퓨터의 뒷면에는 'Chiller Door'라는 장비가 장착되어 있다. 저온의 액체를 사용하여 냉각되는 이 장비는 컴퓨터에서 배출되는 더운 공기를 시원한 공기로 변환시키는 역할을 한다. 한마디로 문 모양의 에어컨이라고 할 수 있다. 간접수랭식의 장점은 컴퓨터에서 발생하는 열을 처리하기 위해 전산실 전체를 낮은 온도로 유지할 필요가 없어 전력 효율이 높다는 것이다. 실제로 타키온-2가 위치한 전산실은 시원하기보다는 따뜻한 전산실에 가깝다.[10]

다른 냉각 방식으로는 직접 수랭식이 있다. 직접 수랭식은 열을 발생하는 부품에 수랭식 냉각장치를 부착하여 발생하는 열을 직접 제거하는 방식이다. 예를 들어 일본 슈퍼컴퓨터인 'K 컴퓨터'의 내부를 살펴보면 열 발생의 주원인인 중앙 처리 장치 등에 냉각장치를 부착하고 저온의 액체를 순환 시켜 그 온도를 30도 이내로 유지하고 있다. 이를 위해서는 복잡한 시설이 필요하지만, 그 효율성은 매우 뛰어나다. K 컴퓨터의 경우 이를 통하여 약 12%의 전력을 절약할 수 있었다. 그리고 직접 수랭식의 효율을 개선하기 위해 냉각수의 온도를 상온 정도로 높이는 '웜 워터 냉각 방법(Warm Water Cooling)'이 있다. 이를 적용하면 상온의 냉각수를 사용할 수 있어 효율성을 제고할 수 있으며 실제로 독일의 라이브니츠 슈퍼컴센터는 섭씨 34도의 온도를 냉각수로 사용하여 에너지 비용을 40% 이상 절약한 사례가 있다.[10]

최근의 혁신적인 냉각 방식으로는 글로벌 과학기업인 쓰리엠(3M)에서 액침 냉각(Liquid Immersion Cooling)이라는 독특한 방법으로 서버 장비를 냉각하는 솔루션을 개발했다. 액침 냉각에서 액체는 공랭식 대비 몇 분의 일 에너지만을 사용하여 수동적인 냉각을 한다. 따라서 환경에 미치는 영향을 크게 줄일 수 있으며 결과적으로 가장 효율적인 액침 냉각 방식은 냉각기와 공조 장치가 필요 없기 때문에 데이터센터의 에너지 효율을 최대 95%까지 향상할 수 있었다. 액침 냉각의 작동 원리는 전자 제품을 비전도성 액체에 직접 담가 열기를 액체로 바로 전달하는 것이다. 쓰리엠 과학자들은 단상(單相) 및 이상(二相) 액침 냉각 기술을 모두 활용했다. 단상 액침 냉각 방식에서 액체는 높은 비등점을 가지기 때문에 냉각 과정 동안 액체 상태를 유지한다. 전자 부품은 비전도성 액체를 채운 욕조에 담그게 되면 부품의 열기가 액체로 전달되고 온도가 높아진 액체는 열교환기로 이송되고 냉각된 다음 다시 욕조로 순환된다. 또한, 수동적 이상 액침 냉각(P2PIC) 방식의 경우 부품 랙을 쓰리엠 노벡 엔지니어드 플루이드(Novec Engineered Fluid)로 가득한 용기에 직접 담가 냉각하는 방식이다. 노벡 엔지니어드 플루이드는 열전력사용효율지수(PUE)을 1.02 미만으로 유지하면서 냉각을 한다. 이 수치는 아이티(IT) 장비가 사용하는 전력의 2% 미만으로도 냉각할 수 있다는 의미로 미국 정부 표준인 1.5 미만보다 훨씬 낮다. 또한, 오존 파괴 위험이 전혀 없으며 비전도성, 불연성이고 액체의 화학적 구성 또한 독성이 적고 지구 온난화 위험이 낮다. 액침 냉각용 액체는 효율성이 좋아 부품을 더욱 촘촘히 배치할 수 있어 필요한 바닥 공간을 줄이며, 제곱미터 당 100킬로와트(KW) 이상의 컴퓨팅 성능을 제공할 수 있다. 즉, 10%의 바닥 공간으로 동일한 컴퓨팅 성능을 기대할 수 있다.[11]

이렇게 최첨단 냉각기술이 적용되고 있지만 지금도 보다 효율적인 방법을 개발하는 노력이 활발하게 진행되고 있다. 현재 추세로 보면, 데이터의 양과 인터넷에 접속하는 사람들의 수는 줄어들지 않고 계속 증가하고 있으며, 데이터 센터의 에너지 사용량을 유지하고 줄이기 위해 특별한 솔루션이 필요한 것이 현재 상황이다. 그래서 슈퍼컴퓨터 냉각에 더욱 효율적인 솔루션을 찾기 위해 많은 연구가 이루어지고 있다.[11]

분류

대부분의 슈퍼컴퓨터는 다수의 프로세서(CPU)를 사용하는 병렬형 컴퓨터이다. 프로세서 하나가 독자적으로 메모리를 사용하는 전통적인 폰 노이만 방식의 컴퓨터가 아닌 다수의 프로세서와 메모리를 사용함으로써 슈퍼컴퓨터를 분류하는 데는 여러 다른 방법이 존재하지만 모든 슈퍼컴퓨터를 명확하게 분류할 수 있는 단일 구분 방법은 없다. 다만, 구분의 기준을 무엇으로 하는가에 따라서 다음과 같은 방식으로 구분해낼 수 있다.[12]

플린

1966년 스탠퍼드 대학교수인 마이클 J.플린(Flynn)이 "플린의 분류"라고 하는 사람이 컴퓨터를 구분하는 데 있어서 프로그램의 명령어와 데이터 흐름의 관계에 따라 구분한 방법을 제시했으며 SISD, SIMD, MISD, MIMD라는 4가지 형태로 분류했다. 현시점에서의 슈퍼컴퓨터들을 이 구분법으로 명확하게 구분하기는 어렵다.

단일 명령어 단일 처리(SISD, Single Instruction Single Data)는 하나의 명령에 하나의 데이터가 순차적으로 처리되는 전통적인 폰 노이만 구조를 따르며, 일반적인 싱글 코어가 이 분류에 속하게 된다. 이 구조에서는 성능을 향상하기 위해 파이프 라이닝이나 슈퍼스칼라 등의 명령어 수준의 병렬컴퓨팅 기법을 사용한다. 또한 최신 프로세서에는 하드웨어 수준의 멀티 스레드 방식을 통하여 하나의 물리적인 코어를 두 개의 논리적인 코어로 다루는 에스엠티(SMT, Simultaneous multithreading) 기술을 채택하고 있으며, 이 방식을 사용하면 서로 의존성이 없는 두 개의 스레드가 동시에 파이프 라이닝을 수행함으로써 성능을 높일 수 있다. 인텔(Intel)에서는 이 기술을 하이퍼 스레딩이라고 부르며, 흔히 컴퓨터의 작업관리자에서 중앙 처리 장치 사용 현황을 조회할 때, 코어의 개수가 실제 물리적인 코어 개수보다 2배 더 많이 보이게 되는 것도 바로 에스엠티 기술 때문이다.

단일 명령어 다수 처리(SIMD, Single Instruction Multiple Data)는 하나의 명령에 여러 개의 데이터가 처리되는 구조이다. 즉, 다수의 데이터에 적용되는 연산이 동일하고, 데이터 간의 의존성이 없는 경우 이 구조를 적용하면 데이터 병렬처리를 통해 처리 성능을 획기적으로 높일 수 있다. 많은 슈퍼컴퓨터에서는 'SIMD' 연산을 위해 벡터 프로세서 구조를 갖추고 있으며, 인텔에서도 보조 프로세서(coprocessor) 형태로 에스에스디(SSE, Streaming SIMD Extensions)나 에이브이엑스(AVX, Advanced Vector eXtensions) 등의 아키텍처를 지원하고 있다. 또한 다수의 에이엘유(ALU)를 확보한 지피유(GPU)도 기본적으로 'SIMD' 연산을 수행한다. 다수명령어 단일 처리(MISD, Multiple Instruction Single Data)는 여러 개의 명령에 하나의 데이터가 처리되는 방식이다. 이 구조는 거의 쓰이지 않으며 상업적으로도 아직 구현된 바가 없다. 다수 명령어 다수처리(MIMD, Multiple Instruction Multiple Data)는 여러 개의 명령어가 여러 개의 데이터를 동시에 처리하는 방식이며, 일반적으로 부르는 멀티프로세서의 형태이다. 'MIMD' 구조의 병렬컴퓨터는 프로세서를 결합 형태에 따라 강 결합 구조와 약 결합 구조로 나눌 수 있다. 강 결합 구조는 다수의 프로세서가 주기억 장치를 공유하는 형태로서, 공유 메모리 시스템이라고도 부르지만, 약 결합 구조는 각각의 프로세서가 독립적인 주기억 장치를 가진 형태이며 분산 메모리 시스템이라고도 부른다.[12]

프로세서

벡터 프로세서(Vector processor)는 어레이 프로세서(Array processor)라고도 하며 벡터라고 불리는 다수의 데이터를 처리하는 명령어를 가진 중앙 처리 장치(CPU)를 말한다. 지난 70, 80년대에는 당대의 가장 빠른 프로세서를 사용한 벡터 형 슈퍼컴퓨터가 슈퍼컴퓨터 시장을 주도해 왔었다. 벡터 프로세서는 기본적으로 반복 산술 연산에 특화된 구조를 가지는데, 가장 큰 특징으로 임시 데이터를 저장하는 수십 개의 레지스터를 사용하여 한 번의 실행 명령으로 동시에 많은 데이터에 대해 연산을 수행한다. 이러한 고성능 중앙 처리 장치(CPU)와 메모리를 기반으로 한 전통적인 벡터 컴퓨터 성능은 소자를 구성하는 반도체 성능에 의해 제한을 받는다. 결국 반도체 소자의 성능에 과중하게 의존하는 벡터 컴퓨터는 에스엠피(SMP), 엠피피(MPP) 등의 다른 병렬형 컴퓨터에 비해 지나치게 좁은 시장성과 고비용으로 인해 가격 대비 성능 및 안정성 면에서 시장에서 밀려나고 있는데 이러한 추세 속에 최근에는 일본의 어쓰 시뮬레이터(Earth Simulator)와 같이 스칼라 프로세서 기반의 병렬 컴퓨터에서 사용되던 기법을 수용하여 벡터 클러스터 시스템으로 시장에서 생존하기 위해 노력하고 있다. [13]

스칼라

일반적으로 주변에서 쉽게 접할 수 있는 범용 프로세서이며, 규모의 경제성 측면에서 보면 벡터 프로세서 보다 상대적으로 많이 사용되기 때문에 저가의 프로세서이다. 스칼라 프로세서도 그 명령어의 동작 방식에 따라 크게 복잡 명령어 집합 컴퓨터(Complex Instruction Set Computer, CISC), 축소 명령어 집합 컴퓨터(Reduced Instruction Set Computer, RISC) 두 가지로 분류된다. 축소 명령어 집합 컴퓨터는 중앙 처리 장치(CPU) 명령어 개수를 줄여 하드웨어의 구조를 단순화시킨 것이다. 복잡한 연산도 적은 수의 명령어들을 조합하는 방식으로 수행 가능하며. 적은 수의 명령어만으로 명령어 집합을 구성하여 구조가 단순하기 때문에 메인 메모리에 접근하는 횟수를 줄여 파이프라인 등 시스템 수행속도가 전체적으로 향상된다. 특징으로는 고정 길이의 명령어를 이용하여 빠른 해석이 가능하며 모든 연산은 하나의 클록으로 실행되며 메모리 접근은 로드(load), 스토어(store) 명령어로 제한했다. 회로를 단순히 하고 불필요한 메모리 접근을 줄이기 위해서이다. 마지막으로 많은 수의 레지스터를 사용하여 주기억 장치에서 레지스터로 가져와 바로 처리하기 때문에 메모리 접근을 줄일 수 있다.[14]

복잡 명령어 집합 컴퓨터는 마이크로 프로그래밍을 통해 사용자가 작성하는 고급언어에 각각 하나씩 기계어를 대응시킨 회로로 구성된, 중앙 처리 장치의 한 종류이다. 연산을 처리하는 복잡한 명령어를 수백 개 이상 탑재하고 있고 명령어 개수 증가에 따라서 프로세서 내부 구조도 복잡해진다는 특징이 있다. 명령어가 복잡하다는 말은 해석하는 데 오랜 시간과 명령어 해석에 필요한 회로도가 복잡하다는 이야기이다. 명령어의 길이가 제각기 달라 동시의 여러 개의 명령 처리는 어렵다. 하지만 많은 명령어 탓에 컴파일러 작성이 쉽고 복잡한 명령도 마이크로 코드이므로 실행효율이 높으며 호환성도 좋다. 마이크로 코드는 중앙 처리 장치 하드웨어에 내재한 기계어와 관련된 프로그램으로 중앙 처리 장치의 명령 하나를 더 작은 동작들로 세분화시킬 수 있다. 이때 하나의 기계어의 동작을 더 작은 동작의 조합으로 구현한 것이다.[14]

메모리 접근 방식

공유 메모리

공유 메모리 시스템의 가장 대표적인 형태는 대칭적 멀티프로세서, 에스엠피(SMP, Symmetric Multiprocessor)이다. 이는 다수의 프로세서가 주기억 장치와 입력 및 출력 장치를 공유하고 하나의 운영체제가 모든 프로세서를 관리하는 구조다. “대칭적”이라는 말은 모든 프로세서가 동일한 종류로 되어 있으며, 동일한 기능을 수행한다는 의미가 담겨 있다. 따라서 에스엠피는 동일한 프로세서들의 협력을 통해 병렬처리를 수행함으로써, 단일 프로세서를 가진 시스템보다 뛰어난 성능을 발휘할 수 있게 된다. 이렇게 여러 개의 중앙 처리 장치(CPU)를 활용할 수 있게 되어있는 구조를 바로 에스엠피라고 부르며 에스엠피 시스템에서는 여러 중앙 처리 장치와 주변 장치가 버스나 크로스바 스위치 등을 통해 연결되며, 인텔의 큐피아이(QPI, Quick Path Interconnect) 등의 버스 프로토콜을 통해 고속의 통신을 수행한다. 한편, 에스엠피(SMP)의 일종인 칩 멀티프로세서, 씨엠피(CMP, Chip Multiprocessor)란 하나의 칩에 여러 개의 코어를 장착한 형태의 프로세서입니다. 에스엠피처럼 컴퓨터 내부에 중앙 처리 장치를 여러 개 장착하는 것이 아니라, 단일 중앙 처리 장치에 연산을 담당하는 코어를 여러 개 두어 공간적 활용성을 높이고 코어 간에 캐시를 공유함으로써 처리 성능을 높일 수 있는 구조다. 멀티코어가 바로 씨엠피를 가리키며, 현재 일반 컴퓨터에 가장 범용적으로 적용되고 있는 병렬컴퓨터 구조이다. 멀티코어는 단일 칩에 장착된 코어의 개수에 따라 듀얼코어, 쿼드코어, 트리플 코어, 헥사 코어, 마그니코어(도데카 코어)로 발전해 왔으며, 최근에는 수십 개에서 수백 개의 코어를 집적한 형태인 매니 코어가 크게 부각되고 있다. 물론 매니 코어는 동일한 종류의 코어로 구성되는 멀티코어와는 다르게 단순한 기능의 코어들을 집적하여 수치계산의 성능을 높이는 등 특수한 목적에 사용하는 경우가 많다.[12]

주기억 장치가 물리적으로 하나인지 논리적으로 하나인지에 따라 우마(UMA, Uniform Memory Access)와 누마(NUMA, Non Uniform Memory Access)로 나누어진다. 만약공유 메모리 시스템에서 모든 프로세서에 메모리 접근을 균일하게 제공한다면 프로세서가 많이 추가되는 경우, 메모리 자원을 공유하기 위한 경쟁이 심하게 발생하여 버스 상에 큰 병목현상이 발생할 수 있다. 이렇게 메모리에 대한 접근을 균일하게 제공하는 시스템을 우마(UMA)라고 하는데, 이를 해결하기 위해 고안된 구조가 바로 누마(NUMA)다. 누마는 각 프로세서에 독립적인 메모리를 할당하여, 누마 노드라는 하나의 그룹으로 묶어서 각 노드를 상호 연결하는 형태로 조직되어 있다. 따라서 각 프로세서는 자신에게 할당된 지역 메모리로는 빠르게 접근하며, 원격 메모리로는 느리게 접근하게 된다. 이렇게 누마 구조에서는 전체 프로세서가 물리적인 위치에 따라 메모리에 접근하는 시간이 불균일하게 주어짐으로써 메모리의 병목현상을 해소할 수 있게 된다.[12]

분산 메모리

분산 메모리 시스템, 엠피피(MPP, Massively Parallel Processor) 시스템은 노드라고 부르는 독립적인 컴퓨터를 고속의 네트워크로 연결한 형태를 말한다. 클러스터나 그리드라고 부르는 컴퓨터 구조가 바로 분산 메모리 시스템이며, 노드는 에스엠피나 씨엠피 시스템으로 구성될 수 있다. 또한 각각의 노드는 메시지 교환을 통해 서로의 내용을 확인하고 협력적인 관계를 유지하게 된다. 누마와 비슷해 보일 수 있지만, 분산 메모리 시스템의 각 노드는 운영체제를 개별적으로 탑재한 독립적인 컴퓨터로써 물리적으로 완전히 다른 구조이다. 수많은 PC를 수평 확장할 수 있어 대규모 대용량의 데이터를 처리하기 위한 가장 적합한 구조라고 할 수 있다.[12]

그리고 우마 공유메모리 방식의 에스엠피 시스템들을 네트워크로 연결해서 전체 시스템을 구성한 시스템을 분산 공유 메모리 시스템이라고 말한다. 전체 시스템을 구성하는 각각의 단일 시스템인 에스엠피 노드 내에서는 우마 공유메모리 방식으로 동작할 수 있고, 전체 노드 간에는 분산메모리 방식으로 동작할 수 있다. 이런 유형의 시스템을 에스엠피 클러스터 시스템이라고도 한다. 언뜻 보면 누마 와 유사하지만, 노드 간에는 메모리가 공유되지 않기 때문에, 사용자로서도 분산 메모리 시스템으로 보인다는 것이 다르다.[15]





종류

해외

국내

순위

활용

https://fusionnow.nfri.re.kr/post/nuclear-fusion/1081

해외

국내

각주

  1. 탑 500 슈퍼컴퓨터 공식 홈페이지
  2. 슈퍼컴퓨터란?〉, 《국가기상슈퍼컴퓨터센터》
  3. 가장 똑똑한 컴퓨터는 무슨 일을 할까〉, 《아이비에스》, 2019-12-17
  4. ​Linux totally dominates supercomputers〉, 《지디넷코리아》, 2017-11-14
  5. 5.0 5.1 슈퍼컴퓨터의 역사〉, 《국가기상슈퍼컴퓨터센터》
  6. 6.0 6.1 이건한,〈슈퍼컴퓨터로 톺아보는'HPC'〉, 《테크월드》, 2019-09-20
  7. Chris Woodford , 〈Supercomputers〉, 《EXPLANINTHATSTUFF!》, 2020-06-25
  8. 그리드컴퓨팅 기술개요 및 최신 국내외 기술동향〉, 《한국과학기술정보 연구원》, 2004-12
  9. CENGAGE , 〈Supercomputers〉, 《인싸이클로피디아닷컴》, 2020-08-20
  10. 10.0 10.1 장길수 ,〈[이지수 소장의 슈퍼컴퓨터 이야기(3)슈퍼컴퓨터는 어떻게 더위를 이기나?]〉, 《아이티조선》, 2013-08-08
  11. 11.0 11.1 3M , 〈슈퍼컴퓨터를 액체로 냉각한다고?〉, 《네이버 포스트》, 2018-04-24
  12. 12.0 12.1 12.2 12.3 12.4 삼성SDS 커뮤니케이션팀 , 〈[IT에 한 걸음 더 다가가기 연산처리의 성능 한계에 도전하는 병렬컴퓨팅 (4편)]〉, 《삼성 에스디에스》, 2015-11-18
  13. Untitled - 전자통신동향분석
  14. 14.0 14.1 ,minhee〈CISC와 RISC〉, 《벨로그》, 2020-05-12
  15. 슈퍼컴퓨터의 분류〉, 《국가기상슈퍼컴퓨터센터》

같이 보기


  검수요청.png검수요청.png 이 슈퍼컴퓨터 문서는 컴퓨터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.