이번에는 QCDOC를 바탕으로 만들어진 블루진(Blue Gene)계열의 이야기다.


Blue Gene/L


전회도 조금 언급했으나 원래 IBM은 1999년에 Protein Folding(단백질 구조 해석)을 목적으로한 1억달러 규모의 연구 개발 프로젝트를 시작한다.


이 프로젝트는 Protein Folding의 메커니즘을 대규모 시뮬레이션으로 규명하는 것이 목적이지만 이와 함께 Massively Parallel(초병렬) 하드웨어와 소프트웨어를 구축할 목적이었다.

 

Protein Folding의 시뮬레이션을 위해서는 1PFLIOS규모의 머신이 필요하다는 것으로 프로젝트의 최종 목표는 1PFLOPS의 머신을 구축하는데 있었다.


1999년이라고 하면 ASCI Blue Pacific/Blue Mountain이 운용을 시작한 해로 ASCI Blue Mountain이 실효 1.6TFLOPS, Blue Pacific에서도 실효 2.1TFLOPS라는 근방으로 1PFLOPS라고 하면 이것보다 500~600배의 성능을 내야 하기 때문에 이를 일약에 실현하는 것은 도저히 무리다. 여기서 당초 300TFLOPS규모의 머신(Blue Gene/L)을 실현하는 것을 목표로 하였다.

 

 

저비용으로 고성능을 요구한 Blue Gene/L

그런데 그 최초의 Blue Gene/L의 설계 목표는 높은 성능/비용대비를 실현하는 것에 성능/소비 전력비나 성능/부피비를 향상시키는 것도 목표에 내걸렸다. 최초의 두 가지는 이해하기가 쉽지만 마지막 성능/부피비는 별로 익숙하지 않을 것이다.


이는 ASCI 시스템이 모두 10000평방 피트를 넘는 방대한 설치 면적을 필요로 했다는 것에 대한 반성이다. 전회 소개한 QCDOC가 100평방 피트 정도로 유지되고 있는 것은 시스템의 운용 비용이라는 점에서도 메리트는 크다.

 

그리고 설치 면적이 크면 노드 간을 둘러싼 배선의 거리도 길어진다는 점에서 이는 그대로 레이턴시와 소비 전력의 증대로 이어진다. 그러므로 가급적 배선 거리는 짧게 하고 싶고, 그러려면 필연적으로 설치 면적을 제한하는 방안이 필요하다.

 

Blue Gene/L은 이런 점을 감안하고 기존의 슈퍼 컴퓨터를 크게 웃도는 성능/소비 전력비를 목표로 하는 것을 목표로 내걸었다.


 

 

Blue Gene/L의 목표. 이 도표에만 2002년에 있는 "QCDSP Columbia/IBM"은 QCDOC의 잘못이다. 또한 이번 도표의 출전은 모두 IBM Journal of Research and Development의 Volume 49, Number 2/3, 2005이다


이를 실현하기 위하여 QCDSP/QCDOC의 생각을 발전시키게 되었다. 성능 목표는 360TFLOPS에 이를 20MW정도의 소비 전력으로 충당한다는 것이다.

 

PowerPC 440코어와 소용량 캐시를 채용

이 목표를 어떻게 실현할 것인지에 대한 기본은 QCDOC와 마찬가지로 PowerPC 440코어를 이용하고 있다. 이에 독자적인 Double-hummer FPU을 조합한 것이 1코어다.

 

칩 자체는 이 코어를 2개에 2차 캐시 ×2, 이어 eDRAM을 사용한 4MB의 3차 캐시, 추가로 외부 접속용 네트워크와 DRAM 컨트롤러 등을 통합하고 있다.


 

 

Blue Gene/L의 칩 구조. Multiport Shared SRAM은 용량이 16KB지만 이것은 캐시용이 아니라 프로세서간 통신용 Scratch Pad


이로써 DRAM을 제외하면 사실상 1칩으로 2개의 계산 노드를 통합할 수 있다. 제조 공정이 8SF(130nm)가 이용되고 있지만 작동 주파수는 700MHz로 소극적으로 되어 있다. 이것은 CPU 코어의 소비 전력 타깃이 1W이며 이에 맞추어 조정한 형태다.

 

2차 캐시의 구조도 재미있다. 위의 사진으로 L2 prefetch buffer라고 쓰여 있는 것은 용량이 2KB 밖에 없어서 32KB의 1차 캐시와 비교해도 꽤 적다. 당연히 Inclusive 구조에는 못미치고 Exclusive한 구조를 하고 있다.

 

왜 이런 소용량의 캐시를 추가했냐고 하면 Cache Snooping때문이다. PowerPC 440 자체는 싱글 코어 CPU인 것으로 멀티 프로세서의 대응이 들어 있지 않다.


구체적으로는 Cache Snoop의 기능을 갖고 있지 않아서 외부에 공유 캐시를 일체 갖지 못하게 된다. 이를 커버하기 위해서 Cache Snoop의 기능을 2차 캐시에 넣었다.

 

어디까지나 Snooping을 목적으로 하고 있으니 용량은 적어도 좋고 이 때문에서인지 L2 Cache가 아니라 L2 Prefetch Buffer로 칭한다.

 

용량 자체는 embedded DRAM을 이용하고 4MB 자체 대용량을 L3 온 칩으로 탑재했으며 게다가 이것은 충분히 고속이다.

 

Double-hummer FPU는 700MHz에서 2.8GFLOPS의 연산 성능을 갖지만 Double의 경우에는 이것을 최대한 사용하는 경우에는 이하의 처리가 발생하게 된다.

 

  • 데이터를 5.6GB/초 ×2에서 읽기
  • 연산 결과를 5.6GB/초에 시작

위의 사진을 보면 알 수 있듯이 CPU 코어와 2차/3차 캐시를 잇는 버스는 이 대역에 맞게 설계된다. 요컨대 이는 병목이 되지 않도록 설계되어 있는 셈이다. 무엇보다 대역 레이턴시는 다음과 같은 숫자로 되어 있으며 2차/3차 캐시는 나름대로 레이턴시가 크다.


캐시와 레이턴시의 관계
1차 캐시 3사이클
2차 캐시 11사이클
스크래치 패드 15사이클
3차 캐시 28/36/40사이클
DRAM 86사이클


오히려 DRAM이 이상하게 고속이라고 해야 할지 모르지만 이는 3차 캐시를 경유했을 때의 숫자로 3차 캐시를 경유하지 않으면 좀 더 늘어날 것으로 생각된다.


 

병렬 연산을 위한 2개의 FPU와 1GB의 DDR SDRAM으로 1장의 카드를 구성


다음은 FPU다. Blue Gene/L에서는 FPU를 2개 탑재하고 있지만 이는 QCDOC의 FPU가 2개 나란히 있다기 보다는 QCDOC의 FPU 폭을 2배로 늘린 형태다.

 

내부는 프라이머리와 세컨더리 2계통으로 나뉘어 있는데 양쪽의 FPU에서 동일한 명령을 실행한다. 말하자면 FPU를 SIMD식으로 확장한 설계다.

 


FPU 구조. 레지스터 파일 자체는 Primary와 Secondary로 분리하고 있지만 각각의 연산 유닛은 양쪽의 레지스터 파일에서 데이터를 읽을 수 있게 되어 있다


다만 여러 SIMD가 예컨대 16Bytes 폭은 단정밀도 연산 ×4 혹은 배정밀도 연산 ×2를 동시에 실행할 수 있는 반면 Double-hummer FPU는 단정밀도와 배정밀도 1사이클당 2개의 연산 명령을 실행할 수 밖에 없는 것이 큰 차이다.

 

명령 중에는 MAC 연산(곱셈+가산)도 포함됐으며 이를 실행하는 경우는 1사이클에서 4연산이며 700MHz면 2.8GFLOPS다. 참고로 이 Double-hummer FPU 자체는 800MHz에서 동작을 타깃으로 설계됐다고 한다.

 


FPU의 평면도. 타이밍을 맞추느라 일부는 ASCI 게이트를 사용하지 않고 수배선에서 최적화를 시행한 것


이 Blue Gene/L은 1장의 카드에 칩 2개와 DDR SDRAM이 모두 탑재된다. 메모리는 노드, 즉 Blue Gene/L의 칩 1개당 512MB으로 알려졌다.


Blue Gene의 Compute Card.DDR SDRAM이 DIMM 슬롯을 사용하지 않고 직접 기판에 장착된 것은 슬롯을 사용함으로써 기계적인 고장이 발생하는 것을 피하기 위해서다. 유연성은 없어지지만 이는 하나의 생각이다


카드 1장당 소비 전력은 15W로 여겨지지만 Blue Gene/L의 칩 자체가 1개당 5~6W정도(코어 1W로 합계 2W, 그 외 4MB의 eDRAM과 후술 하는 I/O 연결용으로 나름 필요), DDR SDRAM이 1GB 분량으로 역시 3~4W.

 

이 카드를 Compute Card로 칭한다(다른 I/O전용 I/O Card도 존재). 이 Compute Card를 16장 장착한 것이 Node Card.

 


Compute Card를 16장 장착한 Node Card.16장의 Compute Card 외에 최대 2장의 I/O Card를 장착할 수 있지만 이 사진에는 장착되지 않은 것 같다


캐비닛에는 이 Node Card를 16장 장착한다. 이 단계에서 노드 수는 1024(코어 개수는 2048), 메모리는 512GB에 이른다. 연산 성능은 1캐비넷에서 5.6TFLOPS에 이르는 셈으로, 이론 성능만 하면 ASCI Blue Pacific의 1.5배의 성능이 불과 1캐비넷에 들어간 것이다.

 

무엇보다 1개의 Compute Card가 15W에 들어간다고 해도 이를 1000장 모으면 15KW가 되는 것으로 냉각 방법에는 노력이 필요하다. 칩 1개당 발열은 5~6W로 패시브의 히트 싱크만으로 충분히 감당하지만 이에 대해 나름대로 냉각풍을 맞출 필요가 있다.

 

거기에서 캐비닛 측면에는 60개의 냉각 팬을 설치하여 섀시를 비스듬히하여 냉각 효과를 높이는 노력이 이루어졌다.

 


Blue Gene/L의 캐비닛. 이 사진에는 오른쪽 절반 측면에 냉각 팬이 덮는다 냉각팬 배열. 3개 단위로 쉽게 교환할 수 있는 구조지만 개인적으로는 좀 더 큰 팬을 사용해도 괜찮을 듯


아래의 사진에는 설명이 필요할 것이다. 위의 사진에서 나타낸 캐비닛은 아래 사진의 파란 부분에 담긴다. 그 좌우로 기울어진 급배기 지역이 붙는 형태다.


Blue Gene/L의 섀시. 이것도 실물 모형 같은 것으로 실제로는 이 캐비닛의 배기부와 왼쪽 캐비닛의 흡입부가 겹쳐지도록 배치되어 캐비닛 간의 간격은 더 막히고 있다


이 경우 캐비닛에는 오른쪽에서 흡기(바닥에서 냉기를 공급하고 캐비닛 안에서 가열된 에어는 왼쪽으로 흘러)되어 그대로 나가는 셈이 된다.

 

이 사선 판자의 각도는 10.1도 정도 되는데 시뮬레이션에 의하면 각도가 0, 즉 비스듬히 판자가 없는 상태에서 캐비닛 내 온도는 최소 38.2℃(가장 높은 곳에서는 50℃ 이상)이던 것이 비스듬히 판자를 넣은 것으로 최저 27.0도까지 내려가게 되었다고 한다.

 


위가 기존의 방열 기구, 아래가 Blue Gene/L의 것


이른바 대류를 잘 이용하여 냉각을 하고 있는데 이 결과 Blue Gene/L의 케이스는 밖에서 보면 기울어 있다.


Blue Gene/L의 외관. 이는 디자인 컨셉의 CG, 실제로 설치된 사진이 아니다



 

네트워크는 3가지로 구성 노드간 통신은 3차원 원환 구조


자, 다음으로 네트워크 이야기를 하고 싶다. Blue Gene/L은 이 캐비닛을 64개 나열하고 이론 성능에서 367TFLOPS를 실현하고 있는데 노드 수는 65536에 이르러 적절한 네트워크로 접속하지 않으면 성능이 나오지 않는다.


거기서 Blue Gene/L에는 여러 종류의 네트워크가 조합되어 있다. 노드간 통신의 기본은 3차원 원환 구조이다. 이는 아래의 사진(a)처럼 각각의 노드를 3차원 구조로 접속하는 것으로 Blue Gene/L에서는 8×8×8이 기본이다.

 


Blue Gene/L의 네트워크. 3종류의 네트워크가 존재


노드 수에서 말하면 512로 딱 캐비닛의 절반에 해당한다. 또한 BlueGene/L에서는 이를 midplane이라고 말하고 있다. 첫번째 페이지에서 나타낸 Blue Gene/L의 칩 구조 사진에서 "Torus"라고 적힌 유닛이 이 3차원 원환 구조용 링크로 송수신 각각 1.4Gbps로 접속된다.

 

Blue Gene/L 전체에서는 이 midplane이 128개 존재하지만 Blue Gene/L은 이 midplane을 1개의 Partition으로 취급하고, 복수의 midplane을 이용하는 경우에는 프로그램 측에서 이를 처리한다(즉 midplane자체를 확장하지 않는다)라는 형태로 제약을 마련하고 있다.

 

이는 복수의 섀시에 걸쳐서 동기를 취하거나 하면 거기가 병목이 될 것이므로 어디까지나 1개의 처리는 1개의 midplane에서 이루는 것이며 여러 midplane를 사용할 경우에는 처리 자체를 각각 분할하려는 방식을 취했다.


midplane끼리는 Link Chip으로 불리는 전용 ASIC을 경유하여 케이블로 접속된다. Link Chip의 제조 프로세스는 130nm의 "Cu-11"를 이용해서 제조되고 있으며 4종류의 동작 모드를 갖는다.

 


Link Chip의 구조. 이는 파티셔닝 때 일일이 배선을 연결해 바꾸지 않더라도 동작 모드를 변경함으로써 자신을 그 파티션에 더하거나 빼거나 하는 것. 덧붙여 그림에서는 Port E가 사용되지 않게 되어 뭔가 이상했다


Regular와 Split라는 2종류의 케이블은 midplane간을 잇는 것이지만 통상의 가로 세로 하락 방향의 배선이 Regular, 그 규칙에서 벗어난 것이 Split이다.

 

이 Link Chip들 또한 3차원 토러스를 구성하는 형태로 되어 있는데 예를 들면 아래의 사진처럼 1~8 사용자가 있어 각각 따로 파티션을 사용하고 싶은 경우 6~8 사용자는 가로 방향에 전체를 물리적으로 잡아 버리면 파티션을 구분할 수 없어 6/7/8의 경계만 가로 방향은 Split케이블을 이용하여 분리하게 된다.

 


이는 Blue Gene/L 시스템을 위에서 바라본 그림. 사각은 각각 섀시라고 생각하자


참고로 이 3차원 원환은 1노드 당 평균 100나노초의 레이턴시가 필요하다. 그래서 65536개의 모든 노드에 데이터를 송신할 경우 대체로 6.4마이크로초 정도 필요하다.


그런데 이야기를 3종류의 네트워크로 되돌리면 이와 별도로 Collective Network라 불리는 것(b)의 형태)가 있다.

 


Blue Gene/L 네트워크


이곳은 전 노드에 브로드캐스트를 할 경우 등에 사용하는 것으로 대역은 2.8Gbps, 레이턴시는 5마이크로초 미만으로 된다. 이것이 첫번째 페이지에서 나타낸 칩 구조의 사진에 있는 Collective라는 유닛을 이용한다.

 

또 Barrier Network라 불리는 것도 별도로 마련되어 있다. 이것은 시스템의 동기를 취하기(각 노드가 즉시 동작을 중지) 위한 것으로 노드 수가 65536이라도 1.5마이크로초 미만에서 동기를 할 수 있도록 설계되고 있다.

 

이상의 3개가 애플리케이션 사용의 네트워크인데 외에 GbE, 그리고 디버깅용 JTAG가 별도로 네트워크로 준비되어 있다. 위의 사진(c)이 그것이다.

 

 

복수의 시설에 납입해 상업적으로도 성공을 거두었다

이런 연구에 의해서 Blue Gene/L은 높은 성능을 발휘했다. Blue Gene/L 최초의 시스템은 로렌스 리바모아 국립 연구소에 납품됐지만 우선 4캐비닛(8192코어)가 가동된 단계에서 11.68TFLOPS를 발휘하고 TOP500의 4위를 차지, 16캐비닛(즉 정격의 4분의 1)가 가동된 2004년 11월에는 70.72TFLOPS를 발휘하여 TOP500의 1위 어스 시뮬레이터를 넘어선다.

 

절반이 가동된 2005년 6월은 실효 성능 136.8TFLOPS, 풀 가동했던 2005년 11월은 실효 성능 280.6TFLOPS를 발휘, 이후 2007년 11월까지 1위 자리를 계속 유지했다.


추가로 이 풀스펙 구성에서 이론 성능 367TFLOPS은 280.6TFLOPS이므로 효율은 76.5%로 그렇게 나쁘지 않고 성능/소비 전력부터보면 280.6TFLOPS를 1433KW에서 실현되고 있는 것이며 191.5KFLOPS/W라는 계산으로 QCDOC과 비교해도 3.8배 정도 성능/소비 전력 비율이 개선되고 있다.


이후 로렌스 리바모아 국립 연구소는 섀시를 104개까지 증강하고 피크 성능을 596TFLOPS까지 올리며 보다 작은 시스템이 각처에 납품되고 있다.

 

예를 들면 2006년 11월 TOP500 리스트를 보면 로렌스 리바모아 국립 연구소 이외에 100위 이내만 14개 시스템이 납품되고 있다.

 


 

TOP500에서 100위 이내에 랭킹에 오른 Blue Gene/L
순위 코어 개수 내용
3 40,960 IBM Thomas J. Watson Research Center
17 12,288 ASTRON/University Groningen, Netherlands
21 8,192 Computational Biology Research Center, AIST
22 8,192 Ecole Polytechnique Federale de Lausanne, Switzerland
23 8,192 High Energy Accelerator Research Organization /KEK
24 8,192 High Energy Accelerator Research Organization /KEK
25 8,192 IBM Rochester, On Demand Deep Computing Center
42 6,144 UCSD/San Diego Supercomputer Center
61 4,096 EDF R&D, France
61 4,096 EDF R&D, France
62 4,096 Harvard University
63 4,096 High Energy Accelerator Research Organization /KEK
64 4,096 IBM Almaden Research Center
65 4,096 IBM Research, Switzerland
66 4,096 IBM Thomas J. Watson Research Center


안에는 KEK처럼 3시스템(MOMO/Sakura/Ume)을 운용한 곳도 있어 상업적으로도 성공한 부류로 취급해야 할 것이다.


이 Blue Gene/L의 성공으로 다음에 Blue Gene/P 개발이 시작되고 이에 영향을 받아 Blue Gene/C, Cyclops64의 개발도 2004년에 시작됐지만 이는 다른 기회에 설명한다.

 


출처 - http://ascii.jp

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