2013년 7월 15일 월요일

린팩(Linpack)은 슈퍼컴퓨터의 성능을 올바르게 측정하고 있는가?

최근 몇년간 슈퍼컴퓨터의 성능을 측정하는데 사용되는 밴치마크 도구들 중 대표적인 린팩(Linpakc)이 과연 슈퍼컴퓨터의 성능을 올바르게 측정을 할 수 있는가에 대한 논의가 활발히 이루어지고 있다. 1970년대에 처음 발표되어 사용되던 것이 왜 논쟁의 대상인 되었는가?

논쟁은 이렇다. Linpack은 실 애플리케이션들의 성능을 제대로 평가하는데 한계가 있다는 것이다. 또한 변화하는 애플리케이션 사용 경향에 발 맞추지 않았다는 것이다. 사회가 변화하고 슈퍼컴퓨터들이 기존의 과학 계산용에서 보다 폭 넓게 사용되면서 기존의 전통적인 방법으로는 성능을 측정하는데 있어서 부족하다는 것이다. 최근 슈퍼컴들의 사용을 보면 단순히 선형 대수 계산만이 아닌 복잡한 형태의 계산에 사용이 된다. 부동소수점으로 이루어진 행렬 연산의 처리 속도뿐만 아니라 데이터를 주고 받는데 필요한 성능, 네트웍의 성능도 또한 점점 더 중요해지기 때문이다. 그리고 최근에 Top500에서 높은 순위를 얻기 위해 무작정 GPGPU를 사용하여 높은 점수를 받으려는 것이 과연 의미 있는 노력인가하는 논쟁이다. 그렇지만 논쟁이 활발해진 것은 2010년 GPGPU를 사용한 중국의 Tianhe-1A가 Top500에서 1위를 차지하면서 미국의 자손심에 커다란 상처를 준 이후일 것이다.

린팩은 1993년 이래 top500 슈퍼컴퓨터들의 성능을 재서 최고 500위 순위를 매기는데 사용되는 벤치마크 도구이다. 부동소수점 행렬 연산의 속도를 측정한다. 초당 몇 번의 부동소수점을 처리했느냐가 얼마나 빠른 컴퓨터인가를 판가름하는데 사용된다. 일반적으로 몇 Giga/Tera/Peta Flops(Floating Point operation per second)로 표현한다. 이번 ISC'13에서 1위를 한 중국의 Tianhe-2의 성능은 33.86PFlops이다.

이러한 논쟁의 결과로 그동안 사용되던 Linpack이 대체되거나 수정될 전망이다. Linpack을 처음 만든 사람중의 한 사람인 Jack Dongarra교수는 "슈퍼컴퓨터의 순위를 매기는 Linpack은 더이상 실질 애플리케이션의 성능과 밀접한 연관성이 없다."고 말하며, 11월 다음 Top500 목록을 발표할 시점에 선보일 새로운 벤치마크둘을 개발하고 있다고 밝혔다.
새로운 벤치마크 도구 이름은 HPCG(the High Performance Conjugate Gradient)이며 현대의 애플리케이션과 데이터 처리 패턴에 맞는 성능 측정 도구가 될 것이다라고 한다. 발표 즉시 린팩을 대체하진 못하겠지만 실질 애플리케이션의 성능을 대변하는 대체 수치로서 사용될 것이다.

이 새로운 벤치마크 툴인 HPCG가 HPC업계에 어떤 변화를 줄 지 지켜볼 일이다.

참고
http://www.utk.edu/tntoday/2013/07/10/professor-jack-dongarra-announces-supercomputer-benchmark/
[PDF]Toward a New Metric for Ranking High Performance Computing Systems

Tianhe-1A에 관련된 글들

2013년 7월 12일 금요일

Tianhe-2(Milky Way-2) 슈퍼컴 시스템 분석 – 운영체제, 소프트웨어 스택

이번에는 Tianhe-2 시스템의 계산노드, 패브릭과 Frontend에 이어 소프트웨어에 대해서 살펴 보겠습니다. 지난 글은 아래 링크에서 참조 하시면 됩니다.
  1. 1위 슈퍼컴, Tianhe-2(Milky Way-2) 시스템 분석
  2. Tianhe-2(Milky Way-2) 슈퍼컴 시스템 분석 – 계산노드
  3. Tianhe-2(Milky Way-2) 슈퍼컴 시스템 분석 – 패브릭 & Frontend

운영체제는 NUDT에 의해 개발된 리룩스 버전의 Kylin Linux를 사용합니다. 이 OS는 Tianhe-1A에 사용되었던 것과 같은 것으로 다양한 마이크로 프로세서들을 지원하고 여러 종류의 컴파일러를 지원한다고 합니다. 자원 관리는 Simple Linux Utility for Resource Management (SLURM)을 이용합니다. 전원 절감을 고려한 자원 할당 기술과 다양한 스케쥴링 정책들을 가지고 있다고 합니다. 자체 시스템에 적합하도록 리룩스를 이용한 자체 OS를 만들어 활용한다는 사실이 놀랍기만 합니다.

TH-2 소프트웨어 스택에서 Fortran, C, C++, 과 자바 컴파일러, OpenMP 그리고 GLEX (Galaxy Express) 채널 지원을 하면서 MPICH 3.0.4을 기반으로 한 MPI 3.0이 있습니다. 다중채널 메시지 데이터 전송을 할 수 있며 동적 흐름 제어(dynamic flow control) 및 오프로드 컬렉티브 작업들을 합니다. 또한 디렉티브를 기반으로 하는 노드안의 프로그래밍 모델인 OpenMC라고 불리우는 것을 개발을 하였습니다. Open-MP, CUDA, OpenACC, 또는 OpenCL들을 사용하는 대신에 새로운 병렬 프로그래밍 모델인 OpenMC는 애플리케이션을 개발할 때 뛰어난 편의성을 제공합니다. 이 하드웨어와 소프트웨어를 위한 새로운 추상화는 CPU코어와 제온 파이 프로세서를 포함 모든 컴퓨팅 프로세서위에 단일화된 논리계층을 제공하면서 비슷한 ISA와 이기종 프로세서들에게도 확장이 가능합니다. CPU와 가속기를 위한 단일화된 추상화(abstraction)로 OpenMC 모델은 신이기종 구조의 장점을 최대로 발휘합니다. OpenMC는 계속해서 개발이 진행중이라고 합니다.
TH-2 Software Stack

인텔의 ICC 13.0컴파일러를 사용하며 인텔의 MKL 11.0.0과 제온 파이를 위한 BLAS기반으로한 자체의 수치연산 라이브러리를 가지고 있다고도 합니다. NUDT가 최적화작업을 진행했습니다.

이렇게 해서 몇 회에 걸쳐 top500 1위인 Tianhe-2의 슈퍼컴 시스템에 대해서 살펴보았습니다. 1위를 해서 대단한 것이 아니라 슈퍼컴 분야에서도 전세계를 이끌겠다는 강한 의지를 보였다 점에서 놀랍습니다. 우리도 한발 한발 비록 느릴 수는 있어도 앞으로 걸음을 내딛는 모습을 보여줄 때라고 생각이 됩니다.

조금은 긴 내용이지만 읽어주신 분들께 감사드립니다. 많은 내용은 아래 참조문서를 참조했으며 외신에서 발표된 내용을 정리하였습니다.

참조
Deep detail on the full scope of the Tianhe-2

언제쯤 엑사급 슈퍼컴퓨터(Exascale)가 출현할까?

엑사급 슈퍼컴(Exascale Supercomputer)

이번 ISC’13에서 1위를 차지한 슈퍼컴의 성능은 33.86PFlops입니다. 그러면 언제쯤 Peta의 천배인 Exa급 슈퍼컴이 나올까요? 아래 그래프를 보면 가운데 빨간선이 1위를 차지한 슈퍼컴들의 성능을 표시한 선입니다. 이 1위 슈퍼컴들의 추세를 살펴보면 대략 언제쯤 엑사급 성능 슈퍼컴이 나올 수 있을지 추측이 가능합니다. 세로축의 1 EFlops와 #1 슈퍼컴 성능 추세선이 만나는 빨간 별 표시가 바로 엑사 성능입니다. 대략 2019년 말로 예상됩니다. 과연 이러한 추세대로 2019년에서 2020년에 엑사급 슈퍼컴이 나올 수 있을지 지켜보는 것도 재미있을 것입니다.
Top500 슈퍼컴 성능 추세
엑사급 성능을 이루기 위해서 그냥 서버만 많이 사서 구축하면 되는 것이 아닙니다. 극복해야 할 많은 난관들이 있습니다. 보통 현재의 기술 발달로는 달성하기 어렵고 기존과는 다른 전혀 뭔가 새로운 기술 발달이 있어야만 가능하다고 합니다. Disruptive Technology라고 말을 하는 뭔가 새로운 기술. Exa급 성능을 이루기 위한 기술적인 난관들과 그 어려움을 극복하기 위한 각계에서의 노력들에 대해서 적어 보도록 하겠습니다.

2013년 7월 9일 화요일

여러분의 노트북은 슈퍼컴퓨터입니다!

여러분의 노트북은 몇년 전 정도의 슈퍼컴에 해당할까요? 최근에 발표한 4세대 코어 i7를 사용하고 계신다면 지금 여러분은 10년전 슈퍼컴을 개인용 노트북으로 사용하고 계십니다. 10년이면 강산도 변한다는데 IT에서의 변화는 그 속도가 더 빠른것 같습니다. 확인하기 위해서 2002년 6월 Top500 자료를 살펴보니 정말로 408위 슈퍼컴이 161.9GFlops의 성능을 내더군요. 최신 노트북의 이론 성능이 179GF이고 대략 90% 효율성을 가정하면 실효 성능은 161.2GF이 됩니다.
Top500 슈퍼컴 성능 진화
위 챠트는 슈퍼컴의 역사이자 성능 진화의 이력입니다. 1993년도에 처음으로 발표하기 시작했으며 매년 2회 세계 최고 슈퍼컴 500개를 발표합니다. 줄기차게 성능이 향상되었음을 알 수가 있습니다. 가운데에 있는 줄이 1위 슈퍼컴의 성능을 표시한 것이고, 맨 위에 있는 줄은 500개 성능을 합한 총 성능이며 가장 아래줄은 500위에 해당하는 슈퍼컴의 성능을 표시한 것입니다.

각 선들의 기울기는 어떤 의미일까요?

이 기울기는 슈퍼컴 성능의 진화 추세입니다. 무어의 법칙을 슈퍼컴에 적용시킨 것이라고 볼 수 있습니다. 그렇지만 슈퍼컴은 매 18개월마다 2배씩 증가한다는 무어의 법칙보다 조금 더 빠르게 발전했습니다. 대략 14개월마다 성능이 2배 증가한다고 합니다. 이유는 병렬화의 발달로 슈퍼컴에 사용되는 서버의 숫자가 계속해서 증가하기 때문입니다. 점점 더 많은 칩을 사용하는 것이죠, 이번 SC’13에서 1위를 차지한 중국의 Tianhe-2는 보조프로세서를 합쳐 무려 8만개의 프로세서를 사용하였습니다. 코어 수로는 585만 6천개입니다. 놀랍습니다. 그런데 1위를 차지한 시스템이 영원히 1위를 차지할 수는 없죠. 언젠가는 Top500 리스트에서도 사라지게 되는데 대략 6~8년이면 500위권 밖으로 밀려나게 됩니다. 한 시스템이 가장 오래동안 1위를 차지한것은 일본의 Earth-Simulator로 무려 5번이나 1위에 머물렀습니다.

그럼 이번 ISC’13에서 1위를 차지한 슈퍼컴의 성능이 33.86PFlops인데 언제쯤 Peta의 천배인 Exa급 슈퍼컴이 나올까요?

2013년 7월 7일 일요일

Tianhe-2(Milky Way-2) 슈퍼컴 시스템 분석 – 패브릭 & Frontend

이번에는 지난 회의 Tianhe-2의 시스템 일반과 계산노드 및 전체적인 시스템 구성에 이어 Frontend 시스템 및 패브릭 솔류션에 대해서 살펴 보겠습니다. 지난 글은 아래 링크에서 참조 하시면 됩니다.
  1. 1위 슈퍼컴, Tianhe-2(Milky Way-2) 시스템 분석
  2. Tianhe-2(Milky Way-2) 슈퍼컴 시스템 분석 – 계산노드

Frontend 프로세서 - FT-1500

Tianhe-2는 컴퓨팅 노드와 함께 4096개의 갤럭시 FT-1500 CPU로 이루어진 Frontend(전처리) 시스템이 있습니다. FT-1500프로세서는 NUDT에서 자체적으로 개발하고 제작한 FeiTeng 계열의 CPU입니다. 이 프로세서는 SparcV9 프로세서 기반의 16개 코어가 들어있으며 각 코어는 4개의 스레드를 지원합니다. 40nm 반도체 공정기술을 사용하였으며 1.8GHz 의 속도로 부동소수점 성능은 144GFlops입니다. 이 시스템의 성능은 Linpack성능에는 포함되지 않았습니다. 평균 65W 의 전력을 소비하며, 이전 Tianhe-1A에서 사용된 FT-1000보다 코어수, 클럭, 공정기술등에서 커다란 발전을 이룬 칩입니다. 아직은 몇세대 전의 반도체 공정 기술을 사용했지만 자체적으로 설계 제작하여 실제로 적용을 하였다는 점에서 커다란 의미가 있다고 봅니다. 반도체 기술만 얻게 된다면 더욱 더 뛰어난 상용 프로세서도 가능하리라 생각됩니다.
Tianhe-2 Frontend processor, FT-1500

패브릭(Fabric) 솔류션

Milky Way-2(은하-2)에서는 TH Express-2라는 자체 기술의 고속 인터커넥터 네트웍을 사용합니다. 정확한 의미는 알려지지 않았지만 광과 전자를 혼합 사용하는 방식이라고 하며 네트웍 토폴리지는 Fat-Tree 토폴리지입니다. 160Gbps의 양방향 전송속도를 보입니다. 576포트를 지원하는 13개의 스위치로 구성되어 있습니다. 네트웍 프로토콜 역시 자체 개발한 것이라 합니다. 라우터 칩(NRC)과 NIC칩도 직접 제작을 하였습니다.
Tianhe-2 Fabric 솔류션

NRC(Network Router Chip) 하나의 전송속도는 2.56 Tbps입니다. 칩에 대한 규격은 아래 그림과 같습니다. MPI를 통한 Broadcast operation은 6.35GB/s로 동작 합니다. 12,000노드에서 1K 데이터의 레이턴시는 약 9us로 측정된다고 합니다.
Tianhe-2 NRC, NIC
지금까지 몇 회에 걸처 Tianhe-2의 시스템에 대해서 알아보았습니다. 다음 회에서는 소프트웨어적인 부분을 살펴보도록 하겠습니다.

참조
Deep detail on the full scope of the Tianhe-2

2013년 7월 3일 수요일

Tianhe-2(Milky Way-2) 슈퍼컴 시스템 분석 – 계산노드

지난 Tianhe-2 시스템에 대한 개요에 이어 이번에는 시스템의 각 부분 구성에 대해서 알아보도록 하겠습니다.
우선, 이번 시스템에는 신이기종(Neo-Heterogeneous) 시스템이라는 용어를 사용하고 있습니다. 신이기종 시스템은 단일 프로그래밍 모델을 사용하는 이기종 시스템을 말합니다.
Neo-Heterogeneity = Heterogeneous system with a single programming model
기존에는 CPU와 가속기가 함께 쓰인 시스템에 대해서 이기종 아키텍처라는 말을 사용했었지만 지금은 신이기종(Neo-Heterogeneous)이라는 말을 쓰기도 합니다. 신이기종 아키텍처는 하드웨어 관점에서는 CPU와 가속기를 함께 사용하는 이기종 시스템이지만 동일한 프로그래밍 모델, 환경을 사용하는 시스템을 말합니다. 프로그램 개발과 최적화 과정이 기존의 이기종 아키텍처보다 쉽습니다. 예를 들면 기존 Tianhe-1A에서는 CPU와 가속기를 사용한 이기종 아키텍처입니다. CPU와 GPGPU 가속기는 전혀 다른 프로그래밍 모델을 사용하여야 하기 때문에 프로그램 개발자들이 개발하는데 무척 복잡해서 많은 노력을 들여야 하며 시간을 허비해야만 하였습니다. 그렇지만 이번 Tianhe-2시스템은 제온 프로세서와 제온 파이 코프로세서의 사용으로 동일한 프로그래밍 모델을 사용할 수 있다고 합니다. 따라서 신이기종 아키텍처 시스템이라고 지칭하고 있습니다.

계산 노드

Milky Way-2의 설계에 있어 가장 기본이 되는 계산 노드는 아이비 브리지 기반 인텔 제온 프로세서 2개와 인텔 제온 파이 코프로세서 3개로 구성되어 있습니다. 이 계산 노드 2개가 합쳐져서 하나의 계산 블레이드가 구성됩니다. 이 계산 블레이드들이 중간 백플레인을 사이에 두고 앞 뒤 대칭적으로 8개씩 총 16개의 블레이드가 결합되어 하나의 프레임을 이룹니다. 다시 4개의 프레임이 하나의 랙에 장착되게 됩니다. 즉 한 랙에는 256개의 프로세서와 384개의 제온 파이 코프로세서가 장착되어 있습니다. 컴퓨팅 밀집도가 무척 높다고 볼 수 있습니다. 한 캐비넷의 성능은 총 439.3TFlops이나 됩니다.
계산 노드

계산 블레이드는 논리적으로 2개의 계산 노드로 구성되어 있으며, 물리적으로는 절반 크기의 CPM과 APU모듈이 수평으로 나란히 결합되어 있습니다. CPM 모듈은 4개의 CPU와 1개의 제온 파이로 구성되어 있으며 APU모듈은 5개의 인텔 제온 파이로 구성되어 있습니다.
계산 블레이드

아래의 사진은 계산 블레이드가 랙에 장착된 모습과 APU에 들어가 있는 제온 파이 코프로세서의 모습입니다.
계산 블레이드
계산 블레이드에 장착된 제온 파이 코프로세서

아래의 그림은 계산 노드들이 백 플레인에 장착되는 구조를 보여주고 있습니다. 8개의 블레이드가 앞면에 그리고 8개의 블레이드가 뒷면에 장착됩니다.


계산 노드를 위한 프로세서는 인텔것을 썼지만 다음부터 소개드릴 패브릭, 네트웍, FrontEnd 시스템, 화일 시스템은 자체 기술로 개발을 하였습니다. 또한 이런 모든 부품들을 이용하여 밀집도가 높은 서버를 설계 제작도 자체적으로 하였습니다. 이런 추세로라면 머지않아 모든 부품 및 기술들이 중국인들에 의해 개발 생산된 것들로 이루어진 슈퍼컴을 볼 수 있을 것 같습니다.

참조
Full Details Uncovered on Chinese Top Supercomputer
Deep detail on the full scope of the Tianhe-2

2013년 7월 2일 화요일

1위 슈퍼컴, Tianhe-2(Milky Way-2) 시스템 분석

중국은 2013년 6월 Top500 슈퍼컴퓨터 리스트에서 Tianhe-2(Milky Way-2) 시스템으로 1위를 차지했습니다. 지난 2010년 11월에 Tianhe-1에 이어서 2번째로 세계 1위를 차지하게 되었습니다. 정말 중국의 과학 기술에 대한 투자 규모는 상상을 초월할 정도로 거대하고 놀랍습니다. 이 시스템이 어떤지 알아보면서 어떤 의미가 있는지도 함께 살펴보도록 하겠습니다.

Tianhe-2의 이름에 대해서 잠깐 알아보면 읽기는 천하(天河)로 읽지만 뜻은 은하수(銀河水)입니다. 우리나라에서는 천하라는 말보다는 은하라는 말을 더 많이 쓰죠.
Tianhe-2(Milky Way-2) 시스템. 출처: http://www.top500.org

개괄적인 시스템의 제원에 대해서 알아보도록 하겠습니다.
  • 성능: 54.9PFlops Peak Performance, 33.86PF Max performance, 61.68% 효율성
  • 프로세서: 3만 2천개의 출시 예정인 인텔 제온 E5-2692v2(12C, 2.2GHz) 프로세서와 4만 8천개의 제온 파이 31S1P 코프로세서, 4096개의 갤럭시 FT-1500 프로세서로 구성된 신이기종(Neo-Heterogeneous) 아키텍처 시스템
  • 상호연결 기술: 중국 자체 고속 상호연결 기술, TH-Express 2
  • 메모리: 총 1PB
  • 저장장치: 전역 공유 병렬 스토리지 시스템(Global shared parallel storage system), 12.4PB
  • 캐비넷수: 125+13+24(compute/communication/storage )=162
  • 소비전력: 17.8 MW(냉공조 포함시 24 MW)
  • 장소: National University of Defense Technology
  • 용도: 생명 공학, 지구 물리학, 기상, 빅데이터 분석, 정부 안보 애플리케이션등
우선 이 시스템의 이론 성능을 계산해 보도록 하겠습니다. 단일 프로세서의 이론 성능은 아래와 같은 공식으로 계산이 됩니다.
이론 DP(Double Precision) Flops = 클럭 x 단위 클럭당 처리가능 DP 부동소수수 x 코어수
사용된 제온 프로세서는 2.2Ghz, 8 DP FPs/clocks, 12 Cores 로 이론 성능은 소켓당 211.2GFlops 이 되며, 제온 파이의 성능은 1.1Ghz x 16 DP FPs/clocks x 57 Cores 로 1003.2GFlops 입니다. Milky Way-2에는 제온 프로세서와 제온 파이가 각각 32,000와 48,000개로 이루어 졌기 때문에 총 이론 성능은 54.9PFlops입니다.

중요 시사점은 첫째, 중국이 지난 Tianhe-1A 이후 두번째로 1위를 차지했다라는 것입니다. 이것은 일회성이 아니라 지속적인 투자를 의미하며 국가 차원의 막대한 투자와 기술 국가로 도약하고자 하는 강한 의지를 볼 수 있습니다. 다음으로는, 인텔 기반의 프로세서와 가속용 보조 프로세서를 제외하면 모든 기술이 중국 자체 기술을 이용했다라는 것입니다. 새로운 하드웨어 아키텍처, 갤럭시 FT-1500 16코어 프로세서, TH Express-2 네트웍 기술, OpenMC 병렬 프로그래밍 모델, 안정성을 위한 관리 기술, 병렬 스토리지 시스템, 자체 리룩스 운영시스템인 Kylin Linux, 중국 기업에 의한 서버 제작등등 프로세서외 모든 것들이 중국에서 만들어 졌습니다. 조만간 프로세서도 자체 개발 제작하여 사용할 날도 머지 않을 듯 합니다. 앞으로 다가올 엑사급 슈퍼컴퓨터 시대에 대비하여 모든 것을 중국 기술 기반으로 하고자 하는 꿈을 향해 한 걸음 더 나갔다는 생각이 됩니다.

참조