블루진(BlueGene)계열에 대한 언급 중 슈퍼 컴퓨터의 계보는 다시 ASC 계열로 돌아간다. 기념할 만한 연재 300회를 맞는 이번에는 ASCI Q의 치환 때문에 IBM이 개발한 로드러너(RoadRunner)다.

 

세계 최초로 1PFLOPS에 도달한 컴퓨터 "RoadRunner"

 

노드수도 동작 주파수도 한계, 후계기 마련에 다가선 한계 

어스 시뮬레이터와 BlueGene/L이라는 2제품의 성공은 ASC 계열을 생각하는데 큰 과제를 남겼다.

 

우선 첫번째는 노드 간 접속 레이턴시의 문제다. ASCI 계열만 보고 있으면 SMP(Symmetric Multiprocessing:대칭형 다중 프로세싱)+클러스터 방식이 안 된다고 생각하지만 어스 시뮬레이터도 초대 시스템은 640노드를 1단 크로스 바로 연결한 거대한 SMP+클러스터 구성이다.

 

그럼에도 불구하고 이 어스 시뮬레이터가 높은 성능을 발휘한 이유의 하나는 원래 프로세서가 벡터 방식으로 250MHz로 낮은 동작 주파수에서도 8GFLOPS의 성능을 얻고 있어 전체 성능을 벌어들였던 것이지만 다른 하나는 노드 간 접속이 아주 고속이었던 것이다.


이는 일단 크로스 바를 사용한 데 따른 것이지만 여기서 크로스 바를 쓴 것은 노드 수가 640개로 적은데 따른 것이다. 후기형 어스 시뮬레이터는 노드 수가 5120개로 늘어나면서 크로스 바를 포기하고 2단 구성의 크로스 바에서 Fat Tree를 구성한다는 ASCI Q를 방불케 하는 구성이다.

 

즉, 노드 수가 늘어나면 레이턴시가 늘어난다는 당연하다고 말할 수 있는 결과다.


또 다른 하나는 범용 프로세서의 한계다. BlueGene/L은 듀얼 FPU로 700MHz 구동으로 2.8GFLOPS를 실현했고 합계 360TFLOPS의 머신을 구축할 수 있었지만 이것으로 1PFLOPS가 가능한가 하면 3배의 노드수로는 노드 간 통신의 레이턴시가 어려운 일이다.

 

즉 midplane의 수가 128개에서 384개가 될 것인데 이를 프로그램에서 사용하기는 꽤 어려울 것이며 1개의 midplane의 노드 수를 늘리는가 하면 이번에는 midplane 내 레이턴시가 부쩍 늘어날 것이다.

 

여기서 동작 주파수를 3배로 높인다고 할 수 있지만 그 경우 소비 전력이 아마 10배를 넘어 Blue Gene/L의 높은 실장 밀도는 이룰 수 없다.


CRAY-2 수준으로 냉각액에 모두 담그는 정도의 방열 대책 마련이 필요하기 때문에 성능/소비 전력비가 엄청나게 떨어진다.

 

이러한 이야기는 2004년경부터 본격적으로 나오고 있는 것으로 1노드 당 성능을 올리는게 제일 편하다는 당연한 이야기가 됐다. 다만 동작 주파수는 이제 한계가 드러나고 있던 터라 이는 방법론으로서는 좋지 않다.


 

 

동작 주파수의 추이. 출처는 2007년 로스앨러모스 국립 연구소의 John A. Turner가 발표한 "Roadrunner:Heterogeneous Petascale Computing for Predictive Simulation" 이라는 논문. 원 데이터가 Tom's hardware guide. 이후로 작동 주파수는 계속 달리고 있지만 2015년 현재는 4GHz 근처에서 포화. 이를 넘어선 제품을 내는 것은 IBM 뿐이다


여기서 멀티 코어라고 말하면 이쪽은 반도체 제조 기술과의 약속이 되는 셈이지만 코어 수를 늘리면 코어 간의 동기가 문제가 되어 이쪽도 무진장으로 늘릴 수만 있는 것도 아니다. 거기서 Heterogeneous Architectures를 이용한다는 것이 ASC의 결론이었던 것 같다.

 

Heterogeneous(헤테로지니어스)로 활로를 찾는

당시는 또 Heterogeneous로 불릴 것은 3개밖에 없었다. 우선은 인텔이 연구 개발의 일환으로 발표한 80코어의 프로토 타입, 그리고 GPGPU로 이용할 수 있게 된 GPU, 다른 하나가 Cell이다.


 

인텔이 발표한 80코어의 개요. 이 80코어 CPU 1개에서 1.8TFLOPS이므로 555개를 나열하면 계산상은 1PFLOPS가 실현된다 GPU를 연산에 이용하는 이점.다만 2006년이라고 하면 아직 NVIDIA가 G80 코어(GeForce 8800 세대)에서 CUDA을 이용할 수 있게 된 직후인 당시로 성능도 미흡하고 배정밀도 부동 소수점은 다루지 않았다


우리는 알고 있듯이 Cell프로세서는 SCE의 PlayStation 3을 위해서 SCE-소니 IBM, 도시바가 공동으로 개발한 프로세서로 64bit의 PPE(PowerPC Processor Element)로 불리는 범용 프로세서에 SPE(Synergistic Processor Element)라 불리는 서브 프로세서×8을 조합한 것이다.


 

Heterogeneous의 신성 Cell 프로세서.


PPE 자체는 별로 성능이 높지 않고 주로 SPE 관리 등에 전념하는 형태로 연산 자체는 SPE이 주체로 하는 것이 일반적이었다.


이 SPE는 단정밀도 부동 소수점 연산이면 1개당 25.6GFLOPS에 이를 7개 이용함으로써 179.2GLOPS의 연산 성능을 발휘했다.

 

그리고 왜 7개인가는 8개의 SPE 중 1개는 무효화되고 있어(이는 수율 개선 때문)만일 8개로 유효하게 하면 204.8GFLOPS가 되는 계산이다.

 

추가로 만일 PPE도 풀로 연산을 시켰을 경우의 피크 성능은 230.4GFLOPS가 되는 계산이지만 여기까지 성능이 나오지는 못한 모양이다.



 

ASC Project가 선택한 것은 AMD 옵테론과 셀(Cell)


ASC Project는 최종적으로 이 Cell을 기반으로 한 Heterogeneous의 시스템을 구축하는 계약을 2006년 9월에 IBM과 맺었다. 계약은 3단계로 나뉘며 이하의 3단계로 시스템을 납품하게 됐다.


Phase 1: Opteron 프로세서를 이용한 Base System
Phase 2: Opteron에 Cell을 조합한 부분적인 실증 시스템
Phase 3: Opteron+Cell의 완전한 시스템

왜 IBM이 자신들의 Power/PowerPC, 인텔의 CPU를 사용하지 않고 AMD의 Opteron을 선택한 것인가 하면, 2006년 당시에 IBM은 POWER 5+인데 작동 주파수는 2.3GHz 정도로 절대적인 연산 성능은 높았으나 소비 전력도 컸다.


한편 인텔은 작동 주파수가 더 높은 Dempsey/Tulsa 세대를 이때 투입했으나 이는 Ceder Mill기반 코어로 작동 주파수는 몰라도 성능은 낮았다.

 

원래 Opteron 코어는 나중에 등장하는 Cell에 대해 데이터 분배를 하는 역할이어서 반드시 높은 성능은 불 필요하고, 오히려 I/O의 산출량 및 저전력이 요구되는 덕목이었다.

 

이점에서 Hyper Transport Link를 사용하고 I/O을 확장할 수 있는 Opteron 계열은 칩셋 경유로 I/O에서 인텔과 IBM 프로세서보다 오히려 뛰어나다는 판단을했다고 생각된다.

 

실제로 로스앨러모스 국립 연구소에 설치된 RoadRunner에 이용된 것은 1.8GHz 구동의 "Opteron 2210"이었다.

 

그런데 Phase 1에서 납품된 것은 LS21과 Expansion blade의 구성(아래 그림)이다. LS21은 얇은 블레이드 구성 2P 서버로 실제로는 그림보다 좀 더 복잡하다. Hyper Transport Tunnel로 사우스 브리지도 탑재, 이에 다양한 주변 회로나 기동용 SAS HDD 등도 이용이 가능하지만 일단 그림에서는 생략하고 있다.


얇은 블레이드 구성 2P 서버 "LS21". IBM BladeCenter LS21/LS41의 Installation and User's Guide에서 발췌


LS21과 Expansion blade의 구성


이에 조합하는 형태로 Expansion blade라고 불리는 것이 역시 같은 사이즈로 포개졌다. 이쪽의 내용은 2개의 Opteron 앞에 2개의 Hyper Transport Link x16을 커넥터 경유로 연결, 그 앞에 Broadcom의 "HT2100"이라는 Hyper Transport/PCI Express 브리지에 접속하고 있다.


"HT2100"는 원래 ServerWorks가 발매하고 있던 것으로 2001년에 Broadcom이 회사를 인수, 이 당시는 Broadcom의 제품으로 제공되고 있었다.

 

구조는 아래의 사진6 처럼 x16의 Hyper Transport Link에서 CPU와 접속하고 여기서 5ch, x24레인의 PCI Express Gen 1레인을 출력한다는 것이다.

 


Broadcom의 "HT-2100"의 카탈로그에서 발췌. 실제로 HT-2100 외에 HT-1100 사우스 브리지도 존재했지만 이는 RoadRunner에서는 사용되지 않았다



Expansion blade자신은 이를 3ch의 x8 레인이라는 구성으로 이중 2개는 이 다음에 나오는 QS22에 접속, 나머지 하나는 온보드 슬롯에 접속된다. 이 슬롯은 본래 2본분이 있는데 한쪽은 Infiniband 4x DDR 보드가 장착되어 외부의 직물에 접속되고 다른 쪽은 단순히 미사용.

 

여기서 Phase 2/3에서 어떤 구성으로 된 것인가?라는 것이 아래 그림이다. 위 절반은 Phase 1과 같지만 미사용이였던 4개의 PCI Express x8 레인의 끝에 4개의 PowerXCell 8i가 IBM 사우스 브리지 경유로 접속한다. 이 2개의 Opteron 프로세서와 4개의 "PowerXCell 8i"를 조합하는 것으로 한개의 노드를 구성했다.

 


Phase 2와 Phase 3 구성



 

배정밀도 부동 소수점 연산을 할 수 있는 Cell, 그것이 "PowerXCell 8i"


"PowerXCell 8i"는 65nm Cell의 배정밀도 부동 소수점 연산 확장판이다. 먼저 SPE는 1개당 25.6GFLOPS라는 수치를 기록하고 있지만 이는 단정밀도의 경우로 배정밀도는 1.8GFLOPS에 불과했다.


요컨대 단정밀도 부동 소수점 연산밖에 고려하지 않아 배정밀도라면 극단적으로 성능이 떨어진다. 이래서는 과학 기술 계산에는 사용할 수 없다. 거기서 배정밀도 부동 소수점 연산 능력을 강화한 것이 PowerXCell 8i.

 


"PowerXCell 8i"의 개요.  "PowerXCell와 선형 계산"에서 발췌. eDP와 X2D/DDR2 컨트롤러 때문에 전체의 코어 크기가 좀 더 넓어진

 통상 Cell의 차이점은 2가지다.


각 SPE에 새로 eDP(enhanced Double Precision)유닛을 추가하고 배정밀도 부동 소수점 연산에서 SPE 1개당 12.8GFLOPS의 연산이 가능토록 했다.메모리 컨트롤러의 X2D(XIO to DDR2)브리지를 추가하고 DDR2 메모리 컨트롤러를 탑재했다.

2번째는 원래 Cell은 아시다시피 XDR DRAM을 탑재한다. 이는 대역이 25.6GB/초로 고속 메모리 용량은(XDR DRAM에 한해서)256MB 밖에 없어 역시 이것은 과학 기술 계산에는 불 충분하다.

 

그렇다고 XDR DRAM 그대로 용량의 증가는 어렵다. 대용량의 XDR DRAM은 존재하지 않으며 XDR DRAM의 구성상 메모리 확장성이 한정됐기 때문이다.

 

거기서 XDR DRAM용 XIO라는 I/F에 DDR2와 프로토콜 변환을 하는 X2D는 브리지를 경유하여 DDR2 DIMM을 장착하도록 했다. 전송 성능이 다소 낮아지더라도 탑재할 수 있는 메모리 용량을 대폭 늘릴 수 있게 됐다(이론상 칩당 16GB).

 

이 PowerXCell 8i를 2개 탑재한 블레이드가 "QS22"로 불린다. IBM은 한개의 이용에 대비하고, PowerXCell 8i 근처에 풍부한 회로를 구현했지만 RoarRunner는 주변 회로는 거의 이용되지 않고 또 DIMM 용량도 PowerXCell 8i 1개당 4GB다.


"QS22"의 개요. 이쪽에서 직접 Infiniband HBA 및 GbE에서 접속이 가능한 구성이다


내부는 아래 사진처럼 되어 있다. RoadRunner는 3종류 4개의 블레이드를 만들어 1노드로 했다.



"QS22"의 사진. 중앙의 구리 히트 싱크 밑에 PowerXCell 8i가 위치한다. 이하의 출전은 "Roadrunner:Hardware and Software Overview"(IBM Redbook) 발췌 RoadRunner는 3종류 4개의 블레이드를 만들어 IBM은 이를 "TriBlade"라 밝혔다


노드 당 성능은 PowerXCell 8i의 SPE만을 사용한 경우 409.6GFLOPS, PPE도 참여시키면 435.2GFLOPS다. 또 Opteron에도 만일 계산을 시켰다면 이론상으로는 14.4GFLOPS 정도가 추가 되지만 역시 여기까지 쓰는 경우는 없었다.

 

PPE코어도 계산에 맞추면 SPE코어의 제어가 늦고 프로그래밍이 어려운 것도 있어 오직 SPE에서 계산하고, PPE는 SPE제어 Opteron은 데이터 입출력 등에 전념한 형태다.

 

일단 1개의 Opteron 코어로 1개의 PowerXCell 8i가 짝을 이루고 메모리도 코어 주변 4GB에 갖춘 것은 이 근처를 프로그래밍에서 쉽게 다룰 수 있도록 하겠다는 배려로 생각한다.

 

랙 하나에는 이 TriBlade가 12개 인입되고 이것이 1개로 4915.2GFLOPS로 약 5TFLOPS이므로 이것을 200개 늘어놓으면 1PFLOPS.

 


랙의 구조. 하얀 블레이드는 미사용 슬롯으로 보인다


실제로는 Compute Rack와 I/O+Compute Rack, 그리고 Switch&Service Rack 16개로 1개의 Connection Unit이라고 불리는 그룹을 형성했다.



Connection Unit 구성. I/O에는 IBM의 X3655가 이용됐다. 이는 Opteron 2218을 듀얼로 탑재하는 블레이드에서 RAIO 컨트롤 등도 탑재한다


1개의 Connection Unit에는 180개의 TriBlade(=노드)가 장비된 것으로 Connection Unit당 73.7TFLOPS 정도가 된다.

 

이 1개의 클러스터 인당 1개 288포트 Infiniband Switch가 탑재되면서 Connection Unit 내의 노드는 1hop으로 다른 노드와 연결된다. 참고로 288포트 중 180포트는 직접 각 노드에 12개는 I/O 노드에 연결되고 나머지 96포트가 상위 스위치에 연결된다.

 


이는 Roadrunner Technical Manager의 Ken Koch씨의 논문 "Sweep3D(Sn transport)&other key Roadrunner applications"에서 발췌. 노드 수가 많은 것은 I/O 노드도 포함하고 있기 때문.(180 TriBlade+12 I/O)×18=3456


Infiniband 자체는 x4 DDR이므로, 신호 속도 자체는 20Gbps인데 Embedded Clock을 사용하기 위한 실질적인 데이터 전송 속도는 16Gbps이다.

 

Connection Unit은 모두 18개로 이 Connection Unit들은 8대의 Infiniband Switch에서 상호 접속되지만 각각의 Connection Unit과 Switch 사이는 12링크로 연결되는 Fat Tree로 구성되어 있다. 피크 성능 1.3PFLOPS를 넘는 시스템이 이것으로 완성된 형태다.

 

 

실효 성능으로 1PFLOPS을 넘겨

시스템은 2008년 5월 뉴욕에 있는 IBM의 공장에서 풀 시스템으로 생산되고, 그 후 뉴 멕시코 로스앨러모스 국립 연구소에 여름 쯤에 납품됐다. 이 공장에서 생산된 시점에서 실효 성능으로 1PFLOPS을 넘겨 2008년 6월 TOP500에서 BlueGene/L를 넘어서고 No.1를 차지했다.

 

로스앨러모스 국립 연구소에 납품 후에는 약간의 성능 개선을 달성해 2009년 6월까지 TOP500에서 1위 자리를 지켰다.

 

그 후로는 다소 구성을 바꾼 상태로 운용된 것 같지만 2012년 11월 시점에서도 아직까지 22위에 랭크되어 있는 것은 절대 성능이 꽤 강력한 머신이었던 것은 틀림 없다.

 

효율은 이론 성능의 1375.8TFLOPS에서 실효 성능 1042.0TFLOPS로 76%에 가까운 것으로 나쁘지 않다. 1042TFLOPS에서 소비 전력은 2345KW로 성능/소비 전력비는 444.3KFLOPS/W로 이쪽도 뛰어나게 좋은 숫자였다.

 

하지만 이후 등장한 HPC 머신은 더 좋은 성능/소비 전력비를 실현했기 때문에 로드러너(RoadRunner)의 소비 전력은 과거로 여겨졌다.

 

실제로 2012년 11월 TOP500을 보면 RoadRunner에 이어23위의 머신인 에든버러 대학에 놓인 BlueGene/Q 베이스의 DiRAC는 1035.3TFLOPS를 불과 493KW로 실현하고 있다. 결국 이 소비 전력이 걸림돌이 되어 2013년 3월말에 RoadRunner의 가동은 종료됐다.

 

참고로 IBM은 이 PowerXCell 8i를 확장한 원칩으로 TFLOPS를 실현할 수 있는 CPU를 계속 개발하고 있었다. 구체적으로는 PPE× 2+SPE× 32의 "PowerXCell 32ii", 그리고 PPE× 4+SPE× 32의 "PowerXCell 32iv"로, 최종적으로 이들 프로세서는 세상에 나가지 못하고 사라졌다.

 


출처 - http://ascii.jp

반응형
Posted by 랩터 인터내셔널