2013년 7월 28일 일요일

암달의 법칙과 구스타프슨의 법칙 비교

이번 글에서는 지난 글(슈퍼컴퓨터에서의 무어의 법칙 - 암달의 법칙, 구스타프슨의 법칙)에 이어 암달의 법칙과 구스타프슨의 법칙을 애미메이션 영화에 적용하여 설명을 하겠습니다. 이 예를 통해서 어느 정도 이해가 더 쉽게 되길 바랍니다.

쉬렉과 같은 애니메이션 영화나 아니면 요즘 개봉되고 있는 "Mr. 고"같은 컴퓨터 그래픽이 들어가는 영화는 각종 특수 효과들을 컴퓨터를 이용하여 구현을 합니다. 이때 특수효과들을 더 실제와 가깝게 하기 위해서는 많은 컴퓨팅 시간이 필요합니다. 또한 렌더링 작업도 많은 시간이 걸리게 됩니다. 복잡도에 따라 걸리는 시간은 다르겠지만 서버 한대로 수시간이 필요하다고 합니다. 여기서 계산을 간단히 하기 위해서 프로세서의 코어 하나가 필름 한장을 처리하는데 100시간이 걸리다고 합시다. 즉, 한 화면을 우리가 눈으로 볼 수 있는 형태로 바꾸는데 싱글 코어로는 4일이 넘게 걸리는 것이죠. 당연히 이 시간을 줄여야겠죠. 더 최신의 프로세서를 사용한다거나 코어수가 많은 프로세서를 사용하려 할 것입니다. 이때 코어수가 10개인 프로세서 2개가 장착되는 서버로 계산을 한다고 하면 시간이 얼마가 걸릴까 궁금하겠죠. 이럴때 적용할 수 있는 것이 바로 암달의 법칙입니다.

S(N) = 1/((1-P) + P/N)

S(N), 바로 성능향상은 전체 프로그램중 병렬화가 차지하는 부분과 병렬화를 담당하는 시스템의 수(N)의 관계입니다. N이 증가하면서 생기는 오버해드를 무시하고 병렬화 비중이 95%라고 하면 코어수 하나에서 실행했을 때 100시간 걸리는 것이 10개 코어 프로세서 2개를 사용하면 대략 9.7시간이 걸릴 것으로 예상되고, 이때 최대 속도 향상은 10.2배입니다. 코어수는 20배 증가했는데 속도는 10.2배밖에 향상이 되지 않습니다.

그런데 영화를 제작하는데 있어서 필름 한두장만 컴퓨터로 만드는 것은 아닙니다. 상연시간이 2시간이고 초당 프레임수가 24인 영화를 만든다면 총 17만 2천8백장의 화면을 만들어야 합니다. 코어수가 20인 위 서버로 계산을 한다면 무려 4600년이나 되는 엄청난 시간이 걸린다는 계산이 나옵니다. 그럼 이렇게 엄청난 데이터 처리를 어떻게 할까요? 영화 만드는 것을 포기하라구요?  방법이 있죠. 바로 서버수를 늘리면 되는 것입니다. 서버 한대에서 처리할 것이 아니라 서버 1000대에서 처리하면 4.6년으로 줄게 되고 2000대로 계산하면 2.3년이면 되죠. 약간 다른 관점으로 보면 서버 한대로 9.7시간 동안 1 화면을 렌더링 할 수 있었다면 서버 1000대로 동일한 9.7시간동안 거의 1000화면 처리를 할 수 있게 됩니다. 이때 바로 적용할 수 있는 것이 구스타프슨의 법칙입니다. 계산 과학에서 커다란 문제는 병렬화를 효과적으로 하여 처리할 수 있다는 개념이죠. 암달의 법칙인 병렬화 부분에 성능향상이 제한된다는 것에 사로잡히지 말라는 것입니다. 작업을 한대의 시스템에서 처리할 수 있는 양만큼 나눈후 시스템 수를 늘리라는 것이다. 컴퓨터의 수에 따라 성능 향상은 비례한다라는 것입니다. 확장성의 법칙입니다. 바로 클러스터링을 이용한 슈퍼컴퓨터의 기본 개념이 되었고 구글이나 네이버, 페이스북등 거의 모든 인터넷 포털 업체들이 수천대의 서버에서 수만대의 서버를 운용하는 이유이기도 합니다.

구스타프슨의 법칙 수식은 아래와 같습니다.

S(P) = a + P(1-a) = P - a x (P-1)

성능향상은 프로세서수 P에 비례하며 기울기는 (1-a)가 됩니다(a는 병렬화 할 수 없는 부분). 암달의 법칙에서는 성능향상이 프로세서수가 아무리 증가해도 특정값으로 제한이 되는데 구스타프슨의 법칙에서는 비례하죠. 바로 관점의 차이가 결과도 다르게 나오는 것입니다. 그렇다고 어느 한 식이 잘못됐다는 것은 아닙니다.

지난 관련 글

2013년 7월 24일 수요일

슈퍼컴퓨터에서의 무어의 법칙 - 암달의 법칙, 구스타프슨의 법칙

고성능 컴퓨팅(HPC, High Performance Computing) 또는 슈퍼컴퓨터의 세계에서는 암달의 법칙이나 구스타프슨의 법칙은 반도체에서 무어의 법칙만큼이나 잘 알려진 법칙입니다. 이 두 법칙은 컴퓨팅 자원이 많아진다면 그 성능은 어떻게 달라질까에 대한 이론적 설명을 하고 있습니다. 이번 글에서는 이 두 법칙이 무엇이며 고성능 컴퓨팅에서 의미하는 바는 무엇인지 알아보도록 하겠습니다.

우선 이 두가지 법칙은 무었인가요? 암달의 법칙은 병렬 컴퓨터 또는 고성능 클러스터링 컴퓨터에서 성능 향상은 순차적인 부분이 전체의 프로그램에서 차지하는 비율에 제한된다라는 것입니다. 즉, 아무리 많은 컴퓨팅 자원이 있더라도 순차적인 부분이 차지하는 비율에 따라 그 성능 효과는 다르다라는 것입니다. 예를 들면, 아래그래프를 보면 프로그램의 50%만이 병렬화 할 수 있는 부분이라면 이론적인 성능 향상은 아무리 많은 프로세서를 사용하더라도 최대 2배로 제한됩니다. 이에 반해 구스타프슨의 법칙은 암달의 법칙과는 조금 다른 시각에서 바라본 법칙으로 작은 컴퓨터로 처리하기 어려운 대용량 데이터 처리는 효과적으로 병렬화하여 처리 할 수 있다는 법칙입니다. 두 법칙의 차이는 관점의 차이로서 암달의 법칙은 여러 사람(컴퓨터)이 일을 함으로써 일 처리 시간을 단축할 수 있다는 시간적인 시각에서 최대 성능향상을 예측할 수 있는 방법을 제시했다면 구스타프슨의 법칙은 여러 사람(컴퓨터)이 일을 함으로써 더 많은 일처리를 할 수 있다는 처리양적인 관점에서 바라본 것입니다. 예를 들면 한사람이 한나절 걸려서 처리 할 수 있는 일을 똑같은 처리능력을 가진 두 사람이 똑 같이 나눠서 일을 하면 반나절이면 끝낼 수 있다라고 보는 것이 암달의 법칙이라면, 구스타프슨의 법칙은 한사람이 하루에 하던 일을 두 사람이 동일한 하루 동안에 하면 두배의 일을 할 수 있다라고 보는 것입니다. 이 개념이 클러스터링을 이용한 고성능 컴퓨팅의 기본 개념적 바탕이 되었습니다.

아래 도표를 보면 암달의 법칙이나 구스타프슨의 법칙은 프로세서의 수가 많아지면 성능향상은 이루어 지게 됩니다. 암달의 법칙 도표를 보면 병렬화 부분이 차지하는 비율에 따라 성능향상을 이룰 수 있는 폭은 커지지만 언젠가는 성능향상이 한계에 닿게 됩니다. 특정 이상의 자원 추가는 무의미 하다는 것이죠. 그렇지만 구스타프슨은 성능 향상 기울기의 차이는 있을 수 있어도 자원의 증가는 곧바로 성능의 향상으로 이어진다라고 보는 것입니다. 현재의 단일 컴퓨터로 처리하기가 어려운 충분히 커다란 대용량의 처리는 각 컴퓨터에 맞게 적당히 일을 나눠 많은 수의 컴퓨터로 처리할 수 있다고 보는 것입니다.

암달의 법칙

구스타프슨의 법칙

다음 글에서는 이러한 법칙이 고성능 컴퓨터(HPC) 또는 슈퍼컴퓨터에서 어떤 의미가 있는지 살펴보겠습니다.

2013년 7월 17일 수요일

전경련 빌딩 유리벽의 비밀 - 자연과학을 이용한 에너지 이용 극대화

회사 앞에 위치한 전국 경제인 연합회(전경련)의 새로운 빌딩이 한창 공사중입니다. 오가며 바라보는 빌딩을 가까이서 보면 그렇게 높은 생각이 들지 않다가 멀리 신촌에서도 빌딩이 불뚝 솟은 모습을 보면 참으로 높다라는 생각이 들게 됩니다. 지하 6층에 지상 50층 건물로 63빌딩과 비슷한 높이라고 합니다.

그런데 가만히 건물 외관을 살펴보면 기발하고 재미있는 것이 있습니다. 보통의 유리 빌딩들은 외벽 유리들이 다 평편한데 이 건물은 밖으로 올록 볼록 튀어 나왔습니다. 우리 전통 가옥의 처마가 처진 모양입니다. 무슨 이유가 있어 보입니다. 어떤 이유일까요?

아름다움의 표현에 대해서 언급을 하기 보다는 저는 기능적인 면에서 설명을 할까 합니다. 커다랗게 두가지 숨은 기능이 있다고 생각합니다.
첫째, 각 처마의 위치에는 태양 전지판이 있어 태양 발전을 합니다. 전력을 생산하는 것이죠. 그리고 여름에 태양 광선과 전지판이 직각에 가깝게 세움으로써 전지판의 사용 효율을 극대화 하였습니다. 아래 하지때의 그림을 보면 시각적으로 쉽게 이해가 되리라 생각됩니다.
두번째는 사계절에 따른 태양 고도가 변화하는 자연현상을 잘 이용하여 냉난방을 자연적으로 극대화했습니다. 여름에는 햇볕을 차단하여 시원하게 할 수 있고, 반면에 겨울에는 햇볕을 최대한 실내로 받아 들여 자연 난방을 할 수 있는 구조입니다. 냉난방을 자연의 현상을 이용하여 효율적으로 하고 있는 것이죠.

여름철 태양의 고도 및 채광

겨울철 태양의 고도 및 채광 
첫번째에 대해서는 특별히 설명을 하지 않아도 쉽게 이해하시리라고 생각합니다. 두번째에 대해서 좀 더 부연 설명을 드리면, 여름에는 서울 태양의 남중고도는 76도 정도 됩니다. 즉, 이때 태양 전지판으로 전기를 생산함과 동시에 햇볕이 건물 안으로 들어오지 못하게 가리게 됩니다. 그렇지만 겨울에는 전력을 생산하는 것보다는 따듯하게 하는 것이 더 중요하므로 태양 빛이 건물 안으로 많이 투과가 되면 될수록 더 좋습니다. 이것을 고려하여 태양 전지판을 적절한 크기와 적절한 기울기로 세웠습니다. 그림에서 보시듯이 여름에는 햇볕이 투과되지 않고 겨울에는 투과가 되는 것을 보실 수 있습니다. 아주 뛰어난 발상이죠. 그리고 전기를 생산할 때인 여름에는 햇빛 가림막 역할을 함과 동시에 최소 면적으로 최대 전력을 생산할 수 있는 각도로 맞춰 설계를 했습니다. 결론은 자연과학을 이용하여 비용을 낮추고 자연을 보호하는 1석 2조의 효과를 얻는 것이죠.

참고
남중고도란 천체가 가장 남쪽에 왔을 때의 고도를 말합니다. 태양의 남중고도는 "90도 + 적위 - 그 지방의 위도"로 구합니다. 서울의 위도는 37.5도이며, 적위는 동지때는 -23.5도이며 하지때는 +23.5도가 됩니다. 따라서 하지 때의 남중 고도 h는 90˚ -37. 5˚+23.5˚ = 76˚ , 동지 때의 남중 고도 h는 9 0˚-37.5˚ -23.5˚ = 29˚ 가 됩니다.

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, 중국 기업에 의한 서버 제작등등 프로세서외 모든 것들이 중국에서 만들어 졌습니다. 조만간 프로세서도 자체 개발 제작하여 사용할 날도 머지 않을 듯 합니다. 앞으로 다가올 엑사급 슈퍼컴퓨터 시대에 대비하여 모든 것을 중국 기술 기반으로 하고자 하는 꿈을 향해 한 걸음 더 나갔다는 생각이 됩니다.

참조

2013년 6월 30일 일요일

[독서] Effective Networking for International Professionals

사회생활을 하는데 있어서 네트워킹의 중요성은 굳이 말로 하지 않아도 모든 직장인들은 그 중요성을 몸으로 느끼고 있다고 생각합니다. 직장을 옮기려고 하거나 직무를 전환하고자 하는 사람에게는 더욱 더 중요하겠조. 이 책은 오랜 HR경험을 바탕으로 인맥쌓기에 대한 조언을 담았습니다.





7 Reasons Why Networking is Crucial for Your Career Transition
업종 전환이나 회사를 변경하고자 하는 사람에게 있어서 왜 인맥쌓기가 중요한지 7가지로 강조를 한다. 첫번째 이유로는 구직 게시판은 비효율적이다. 특히 회외로 나가고자 하거나 당사자가 매니저급 이상이거나 임원인 경우에는 더욱 비효율적이다. 어느 회사의 CEO가 바뀌었거나 어느 회사가 새로운 CIO를 영입했다는 소식은 뉴스를 통해서 종종 듣게 되지만 어떤 과정으로 바뀌었는지에 대해서는 언급이 없다. 구직 게시판을 통해서 새로운 임원을 구했을리는 만무하다. 두번째로는 80% 이상의 구직은 절대로 밖으로 알려지지 않는다. 많은 회사들이 인원을 보충할 때 회사 내부 직원의 채용을 우선시 하기 때문에 당연한 결과일 수가 있다. 네트웍을 통하지 않고서는 이런 기회를 알기는 불가능에 가깝다. 다음으로는 채용하는 사람 입장에서 자기가 믿는 사람으로부터 소개를 받은 사람을 더 신뢰를 한다는 것이다. 이외 Opening new Doors. Long Term Career Success. An Essential Skill - 다른 사람들과의 협업이 더욱 더 중요해지기 때문에 네트웍은 필수 불가결한 기술이다.

3 Mistakes Most People Make in Building Relationships
  1. Not Knowing Why: 관계를 형성하고 네트웍을 하는데 있어서, 당신의 열정과 가치 그리고 당신의 목적을 전달할 수 있어야 하는 것이 무척 중요하다.
  2. Me, me, me: 관계 형성의 기초는 다른 사람에게 가치를 만드는 것이며 상호 혜택이 되는 관계를 만드는 것이다.
  3. Starting Too Late: 전직이 필요하지 않을 때부터 시작하라.
Foundation of Successful Relationships
  1. 목표 회사를 아주 구체적으로 정의하고 나열하라
  2. 효율적으로 전달하라. 할 수 있는 기술들을 나열하는 것만으로는 부족하다. 가치(혜택)들을 전달하라.
  3. 원하는 것을 정확히 파악하라. 당신의 커리어 패스에서 무엇을 원하는지 어느 곳을 가고자 하는지 명확히 파악하고 정의하여야 한다.
How to Build a Strong Network to Support Your Career Transition
  • 당신의 현 네트웍은 매우 중요하다. 알게 모르게 이미 커다란 네트웍을 가지고 있다. 신뢰하는 90 사람을 열거하라. 이 사람들이 여러분의 가치를 긍정적으로 추천할 수 있도록 하라.
  • 관련 업계의 행사장은 중요한 네트워크 형성장이다.
  • 소셜 이벤트는 재미있거나 새로운 친구들을 사귈 기회를 줄 뿐만 아니라 커리어에서도 중요하다.
  • Career Fairs, Sports Events
  • LinkedIn
  • 지속적으로 관계를 유지하라.
Key Takeaways
  • 먼저 제공하라
  • 지금 적극적으로 네트워킹을 하라
  • 효과적인 인맥을 위한 시스템을 갖춰라

2013년 6월 27일 목요일

차세대 인텔 제온 파이, 코드명 “나이츠 랜딩(Knights Landing)”

독일에서 개최된 ISC'13은 인텔에게 있어서 그 어떤 행사보다도 뜻 깊은 행사였을 것입니다. 인텔 기반의 슈퍼컴퓨터가 1997년 6월 ASCI Red 이후로 13년만에 처음으로 1위를 차지 했을 뿐만 아니라,  발표된지 6개월된 제온 파이 코프로세서가 48,000개나 사용되었기 때문입니다. 또한 새롭게 이름을 올린 슈퍼컴퓨터들 중 무려 98%에 해당하는 시스템들이 인텔 제온 프로세서를 사용했습니다. 두말할 것도 없이 인텔 제온 프로세서의 높은 성능과 뛰어난 에너지 효율성을 증명한 셈이죠. 인텔에서는 이때 차세대 제온 파이, 나이츠 랜딩(Knights Landing)을 공개하였는데 이 차세대 제품의 특징에 대해서 적어보고자 합니다.

이번에 발표된 나이츠 랜딩의 주요 특징은 다음과 같습니다.
  • 첨단 14nm 반도체 공정 기술 기반
  • 독립 CPU(호스트 프로세서) 또는 PCIe 코프로세서 타입
  • CPU와 메모리를 동일 패키지화(on-package) 
차세대 제품에서 더 높은 성능과 에너지 효율성을 제공하는데 있어서 14nm 공정 기술은 가장 기본적인 기술적 발판이 되어줄 것입니다. 앞으로 더 많은 코어수를 지원하고 현재의 해스웰 프로세서처럼 메모리를 CPU에 포함 시킬 것으로 예상이 되는데 이것들을 가능하게 하는 것이 바로 최첨단 14nm 미세 공정 기술입니다. 이 기술로 더 많은 트랜지스터들을 집적하여 발생하는 전력 소비를 낮춰야만 하는 어려움을 극복할 수 있으리라 생각됩니다.

다음으로 중요한 2번째 기능은 현재 나이츠 코너처럼 코프로세서로 동작할 뿐만 아니라 CPU처럼 독립적으로 동작을 할 수 있도록 하는 것입니다. 이것은 프로그래머 개발자들에게 엄청난 유연성을 제공하게 되고 오프로드(Offload)를 할 때 발생하는 오버헤드를 줄여 성능을 높일 수가 있게 됩니다. 지금 현재 제품을 사용할 때는 항상 호스트 프로세서로서 제온 프로세서를 함께 사용하여만 하지만 앞으로는 제온 파이 혼자서 OS를 부팅하고 프로그램들을 실행시킬 수 있는 제온 프로세서와 같은 '프로세서'가 되는 것이죠. 그렇게 된다면 제온 파이가 직접 인터커넥트 패브릭 솔류션에 연결되어 시스템이 훨씬 간단해지고 성능은 높아질 뿐만 아니라 에너지 소비를 줄일 수 있게 되는 것입니다.

세 번째로는 메모리가 프로세서와 같은 패키지에 포함이 된다는 것입니다. 이것으로 높은 메모리 대역폭과 급격히 낮아진 레이턴시를 제공할 수 있게 되고 높아질 CPU의 성능과 균형을 맞출 수 있게 될 것으로 예상됩니다. 높아지는 프로세서의 성능에 맞춰 메모리 및 IO의 성능을 균형있게 맞추는 것이 인텔에서는 중요한 일이죠. 현재로서의 가장 합리적인 해결책이 바로 프로세서 칩과 메모리 칩을 합쳐 패키지 하는 것이리라 생각됩니다. 그 이후에는 CPU 칩과 메모리 칩을 쌓는 것일 수도 있겠죠. 이 메모리는 3 가지 방식으로 사용될 수 있습니다. 프로세서와 메모리 사이에서 CPU의 캐시처럼 추가적인 캐시 역할을 할 수 있으며 다음으로는 외부 메모리의 확장으로 사용될 수 있고, 마지막으로는 내장 온-패키지 메모리를 두 부분으로 나눠 각각 캐시와 메모리 확장으로 사용할 수 있는 하이브리드 방식으로 사용될 수 있습니다. 사용자 애플리케이션 환경에 따라 사용할 수 있는 유연한 사용 모델을 제공하는 것이죠.

차세대 인텔 제온 파이 프로세서: 나이츠 랜딩
앞으로 나이츠 랜딩이 발표되는 시점에 테크니컬 컴퓨팅 환경이 어떻게 변화가 될 지 무척 궁금합니다. 엑사급의 슈퍼컴퓨터 시대가 인텔의 의지대로 업계 예상보다 2년정도 앞선 2018년에 도래할 지 재미있게 살펴볼 일입니다.

참고자료

2013년 6월 23일 일요일

파워포인트를 블로그나 홈페이지에 공유하기

블로그를 만든후 감격의 첫 글입니다. 무엇에 대해서 글을 쓸까 고민을 하다가 제가 발표하는 자료들을, 주로 파워포인트, 공유하면 어떨까 생각이 들었습니다. 그런데 초보인지라 어떻게 파워포인트 문서를 블로그내에 포함을 시킬까 방법을 찾아보니 자세히 설명되어 있는 자료가 없어 직접 정리를 해 보았습니다. 도움이 되길 바랍니다.

파워포인트나 엑셀, 워드화일등의 문서를 블로그에 게시하는 법입니다. Google Doc를 이용하여 생성된 문서들을 블로그나 웹에 포함시키는 방법입니다. 제가 Google Blodgger를 사용하기 때문에 Google Doc를 이용하는 방법에 대해서 설명드립니다. 아래 파워포인트가 문서에 포함되어 있는것을 보실 수 있습니다. 아래에서 '재생'이나 '다음'을 클릭하여 하나하나 보시면 생각보다 쉽습니다. HTML에 대한 지식이 전혀 없어도 문제없습니다.



슬라이드안의 '다음' 화살표 버튼을 클릭하면 하나 하나 보실 수 있습니다.
도움이 되셨기를 바랍니다.