본문 바로가기
프로그래밍 (Programming)/병렬 컴퓨팅 (Parallel Computing)

TOP500.org 통계로 보는 병렬컴퓨팅(2021년 6월 기준)

by DevSci 2021. 10. 31.

※ 비전문가가 공부하며 정리한 자료라 잘못된 정보가 있을 수 있습니다.

 


◐ TOP500

세계에서 가장 성능이 좋은 슈퍼컴퓨터 500대의 순위를 매기는 프로젝트이다. 1993년 시작된 이 프로젝트는 매년 6월(Internatioinal Supercomputing Conference)과 11월(ACM/IEEE Supercomputing Conference)에 순위를 업데이트한다. 이 프로젝트를 통하여 슈퍼컴퓨터의 성능이 대략 14개월마다 성능이 2배가 된다는 무어의 법칙(Moore's law)이 사실임을 확인했다.

 

개인적인 생각으로는 반도체 개발 경쟁이 점점 심해져서 이미 무어의 법칙을 능가한 것 같다. 무어의 법칙은 요즘 9나노, 5나노, 3나노 등으로 말하는 미세공정, 2차원 상에서 최대한 작고 빽빽하게 회로를 구성하는 집적 공정 기술의 발전으로 예측한 것인데, 이미 2차원을 넘어서 3차원으로 회로를 쌓는 적층 기술(=3D 집적 공정)이 날로 발전하고 있기 때문이다. 거기에 인공지능의 급격한 발전으로 팹리스(fabless)라고 불리는 반도체 설계 분야도 상상하기도 어려운 속도로 발전하고 있다. 거기에다가 (언제일지는 모르겠지만) 양자컴퓨터가 상용화 가능한 수준까지 발전한다면...;;;

 

(지금의 발전 속도도 따라가기 힘든데... 세상이 변하는 속도가 무섭다...)

 

아무튼 TOP500 프로젝트에서는 슈퍼컴퓨터 순위 외에도 다양한 통계 자료를 제공한다. 이 통계를 통해서 병렬컴퓨팅 공부를 시작하는 단계에서 이 분야의 배경과 기본 용어들을 이해하기 좋다고 생각한다. 따라서, TOP500 프로젝트에서 제공하는 분류별 통계자료를 통해 병렬컴퓨팅 분야의 현황을 정리해본다.

 

 

 


공급업체(Vendor)

Source : TOP500.org

가장 많은 병렬컴퓨팅 시스템을 공급한 업체

  1. 레노버(Lenovo)
    중국 기업으로 최근 전세계 PC 점유율, 서버/스토리지 점유율 모두 1위.
    (※ 세계 3대 PC 판매 기업은 HP, DELL, 레노버이다.)
  2. 랑차오(Inspur)
    역시 중국 기업으로 자국에서는 서버 시장 점유 1위이다.
  3. 휴렛팩커드(Hewlett Packard Enterprise; HPE)
    우리가 아는 미국 기업 HP의 서버/스토리지 담당
    (※ 2015년부토 HP는 서버/스토리지를 담당하는 HPE와 PC/프린터를 담당하는 HPI로 분리된다.)
  4. 중커수광(Sugon)
    중국 기업(정보가 많지 않은 것으로 보면 자국 기업인 듯?)
  5. 아토스(Atos)
    프랑스의 다국적 기업

IT 산업의 하드웨어 시장은 중국이 압도적으로 점유하고 있다. 내수 시장이 큰 이유도 있겠지만, 모든 분야에서 그렇듯 중국은 저렴함으로 시장을 장악한다. 과거에는 중국산은 저렴하지만 품질이 좋지 않다는 인식이 강했지만, 요즘엔 중국의 기술력 또한 세계적인 수준이라서 시장을 점유하는 것은 당연한 것으로 보인다.

 

 

 


국가/지역(Countries/Regions)

Source : TOP500.org

가장 많은 병렬컴퓨팅 자원을 가진 국가

  1. 중국(China)
    역시 중국이다. 슈퍼컴퓨터를 넘어서 양자컴퓨터에도 엄청난 투자를 하고 있고, 이미 엄청난 격차의 기술력을 가지고 있는 국가가 중국이다. 중국이 마음 먹고 투자하면 얼마나 무서운 국가인지는 다양한 분야에서 증명되었고, 이미 마음 먹고 발전시키는 4차 산업에서는 얼마나 어마어마한 힘을 차지할지 무섭다.
  2. 미국(United States)
    중국이 워낙 많은 비중을 차지하고 있지만, 미국도 만만치 않다. 두 국가를 합치면 50%가 넘는다.
  3. 일본(Japan)
    꽤 굴직한 공급 업체를 가지고 있는 일본이 3위이다. 하지만 비중이 6.8%로 1, 2위와 격차가 엄청나다.

사실상 중국과 미국이 전세계 대부분의 슈퍼컴퓨터를 보유하고 있다. 세계적인 성능의 슈퍼컴퓨터를 활용하여 일을 하던 연구를 하던 뭔가를 해보고 싶다면, 중국이나 미국으로 가야 한다. 물론 간다고 해도 사용하는 사람이 워낙 많을 것이기 때문에 마음껏 활용하지는 못할 것이다 ㅎㅎ.

 

우리나라에서 가장 큰 슈퍼컴퓨터를 보유하고 다양한 기관에 나눠쓸 수 있도록 제공하는 한국과학기술정보연구원(KISTI)의 슈퍼컴퓨터를 써본 적이 있는데, 내가 작업을 넣어도 실제 돌아가려면 몇 주 씩 기다려야 할 때가 많았다. 특히 평소에는 여유를 부리다가 연구 과제가 끝나기 전 3개월 전 쯤부터 작업이 몰리기 때문에 더 그렇다 ㅋㅋㅋㅋ. 이러한 현상은 어느 나라나 똑같지 않을까.

 

 

 


세부 시장(Market Segments)

Source : TOP500.org

가장 많이 병렬컴퓨팅을 사용하는 시장

  1. 산업(Industry)
    일반 기업들에서 절반 이상의 슈퍼컴퓨터를 보유하고 있다. 개인적인 생각으로는 중견기업 또는 대기업들이 대부분이지 않을까.
  2. 연구(Research)
    당연히 많은 연구기관에서 슈퍼컴퓨터를 보유하고 있고, 약 20% 정도된다. 차지하는 비중은 생각보다 작긴 하지만, 성능에서는 기업들이 보유한 슈퍼컴퓨터에 2배가 넘는다.
  3. 학교(Academic)
    교육기관에서 14.6%의 슈퍼컴퓨터를 보유하고 있다. 내가 속한 연구실에도 시뮬레이션을 위해 꽤 큰 클러스터를 사용하지만 TOP500 목록에 들어가기에는 한참 부족하고, 우리나라 대학에 이보다 큰 클러스터가 그리 많지는 않은 걸로 알고 있다. 이를 미루어보아 대부분이 컴퓨터 관련 학과에서 HPC(High Performance Computing)와 비스무리한 것들을 연구하는 곳이지 않을까.
  4. 정부(Government)
    정부기관에서도 6.8%를 보유하고 있다. 내가 경험했던 정부기관에도 슈퍼컴퓨터가 있었다. 하지만 병렬 프로그래밍을 '제대로' 할 줄 아는 사람이 없었다... ㅎㅎ.
  5. 공급업체(Vendor)
    공급업체에서도 지속적인 성능 개선을 위해서 테스트용으로 기본 성능의 슈퍼컴퓨터는 가지고 있겠지?

(HPC를 연구하는 곳을 제외하고) 어떤 분야의 어떤 기관에 가던 OpenMP(Open Multi-Processing)는 비교적 간단해서 예제를 보고 따라할 줄 아는 사람은 조금 있고, MPI(Message Passing Interface)를 제대로 이해하고 프로그래밍하는 사람은 아예 없는 것 같다. 어느 정도 실무를 경험해본 사람이라면 알겠지만, 포인터를 제대로 이해하는 개발자도 생각보다 드물다. 프로그램이 적용될 서버의 성능을 고려하여 포인터를 활용한 프로그래밍을 하는 사람은 더 드물고, 거기에 프로그램을 완벽하게 분석해서 제대로 병렬 프로그래밍을 하는 사람은 더 더 드물고, 병렬 프로그래밍으로 만들어진 프로그램을 클러스터에 작업 제출하는 과정을 제대로 이해하는 사람은 더 더 더 드물다.

 

직업이 개발자가 아니라 규모가 큰 계산이 필요한 연구를 위해 프로그래밍을 활용하는 분야에서는 병렬 프로그래밍을 할 기회가 생기기도 한다. 하지만 대부분 다른 사람이 개발한 프로그램을 대충 이해한 수준에서 여기저기 조금 고치고, 클러스터에 작업을 넣는 방법만 배워서 사용하는 경우가 대부분이다. 그렇기 때문에 병렬 프로그래밍을 제대로 알고 있으면 자신만의 강력한 무기가 될 수 있다.

 

 

 


응용 분야(Application Area)

Source : TOP500.org

가장 많이 병렬컴퓨팅을 사용하는 분야

  1. 연구(Research)
    대상의 규모가 크고 복잡도가 높은 자연과학에서 더 크고 높은 성능을 요구할 것이다.
  2. 기상/기후 연구(Weather and Climate Research)
    연구 중에서 대기과학을 따로 분류한 걸 보면 비중이 가장 큰 것 같다.
    (우리나라 기상청에서 주기적으로 슈퍼컴을 사는 걸 보면 납득이 간다... ㅋㅋ)
  3. 에너지(Energy)
    지금까지 가장 많이 사용한 에너지인 석유 산업에서 활용이 대부분일 것으로 생각된다.
    지진 데이터 처리(Seismic Data Processing)와 석유 매장량 예측(Reservoir Simulation) 등에 쓰인다.
  4. 벤치마킹(Benchmarking)
    음... 뭔지 모르겠다...
  5. 항공 우주(Aerospace)
    기상 예측이 굉장히 중요한 분야이므로 유체역학 계산(Computational Fluid Dynamics)에 가장 많이 쓰일 것이고, 항공 장비에 영향을 많이 주는 자기장 계산(Computational Electromagnetics)에도 쓰인다. 그리고 비행기나 우주선의 제작 시 최적화된 무게, 모양, 구성을 결정(Structural Ananlysis)하는데도 쓰인다고 한다.

세계적인 난제에도 항상 포함되는 유체역학(Navier-Stokes eqautions)을 활용하는 기상/기후, 항공/우주 분야가 역시나 병렬컴퓨팅을 가장 많이 사용하고 있다. 관련 분야를 공부해본 사람이라면 알겠지만, 거의 모든 자연 현상을 설명하기 위해서는 유체역학 방정식이 필요하다.

 

유체역학은 대표적인 미분방정식의 총집합이라고 할 수 있다. 미분방정식을 컴퓨터 계산으로 구현하기 위해서는, 작게 나눈다는 '미분' 뜻에 맞게 시간/공간 아주 잘게 나눠서 해상도를 높일수록 실제 자연 현상에 가까운 결과를 얻을 수 있다. 시간과 공간을 잘게 나눈다는 것은 계산의 수가 기하급수적으로 늘어난다는 것을 의미하고, 그렇기 때문에 인간은 더더더 좋은 슈퍼컴퓨터 성능을 원하는 것이다.

 

망원경의 성능이 좋아질수록 더 멀리 볼 수 있고, 현미경의 성능이 좋아질수록 더 자세히 볼 수 있듯이, 슈퍼컴퓨터 성능이 좋아지고 컴퓨팅 기술이 발전할수록 더 먼 미래를 더 정확하게 예측할 수 있을 것이다.

 

 

 


운영 체제(Operating System)

Source : TOP500.org

운영체제는 리눅스. 전부 리눅스. 무조건 리눅스를 공부해야 한다. 컴퓨터 한 대로 계산할 수 없는, 엄청 규모가 크고 복잡한 현상들을 다루는 분야에서 일을 하고 싶다면, 언젠가는 리눅스를 공부하게 된다. 이 부분이 생각보다 중요하다.

 

 

 


프로세서 세대(Processor Generation)

Source : TOP500.org

거의 다 Intel Xeon이고,  AMD Rome이 4위에 있다. 프로그램을 개발하는 사람의 입장에서는 가격에 맞춰서 최신 제품을 사기 때문에 자세히 알 필요는 없다. 하지만 클러스터를 구성할 때 계산 노드(node)를 예산이 될 때마다 구입해서 추가하기 때문에 현재 구성된 클러스터의 CPU 프로세서의 성능이 어느 정도이고, 추가할 CPU 프로세서의 성능은 지금보다 얼마나 더 좋아지는지 가늠할 수 있으면 좋다. 오랫동안 클러스터를 운영하다 보면 코어 수는 같아도 CPU 성능 때문에 계산 속도 차이가 꽤 많이 날 수 있기 때문이다.

 

Intel 프로세서와 AMD 프로세서의 세대와 기본 성능에 대해서 정리해보는 걸로.

 

 

 


소켓 당 코어 수(Core per Socket)

Source : TOP500.org

소켓 당 20개 코어가 가장 많구나. 현재 연구실에서 운영하는 클러스터에는 노드 당 4개 ~ 32개 코어로 다양한데, 소켓 당 몇 개인지는 모르겠다. 확인하는 방법을 찾아봐고 정리해놔야 겠다.

 

 

 


연결 제품군(Interconnect Family)

Source : TOP500.org

클러스터 또는 슈퍼컴퓨터의 경우 여러 대의 컴퓨터를 인터넷으로 연결되어 통신하며 계산에 필요한 값이나 결과를 주고 받는다. 그렇기 때문에 프로그래밍 기술 뿐만 아니라 인터넷 속도로도 계산 시간을 많이 줄일 수 있고, 그렇기 때문에 더 빠른 속도를 요구하는 인터넷들이 계속해서 개발된다.

 

아주 중요하지는 않지만 이런 게 있다는 것을 알고 있으면 좋다. 흔하게 우리가 유선으로 꽂아서 사용하는 이더넷(Ethernet)이 아직까지는 제일 많이 쓰이는 것 같다. 하지만 최근들어 인피니밴드(Infiniband)라는 것이 많이 사용된다.

 

 

 


연결 제품(Interconnect)

Source : TOP500.org

역시 아직 Ethernet이 압도적으로 많이 차지하고 있고, 10G가 가장 많다. 25G와 40G도 10G만큼 시장에 많이 공급된 것으로 보아 몇 년 뒤면 10G도 느린 인터넷이 될 것으로 보인다. 그리고 나머지는 최근들어 공급되고 있는 Infiniband가 대부분이고, 속도가 가장 빠른 Infiniband EDR(Extanded Data Rate)이 가장 많이 공급되었다.

 

 

 

 

 


◐ 참고문헌

https://en.wikipedia.org/wiki/TOP500

댓글