티스토리 뷰

프로그래밍

슈퍼컴퓨터 구조

과정 2017. 3. 20. 05:55

"한 마리의 말로 수레를 끌 수 없다면 여러마리의 말이 함께 끌면 된다."

"수레를 끄는데 필요한건 백마리의 닭이 아니라 한 마리의 소다."


위에 말은 어떤 유명한 놈이 한말인데 이름이 기억나지 않네.

아래는 Cray 사(당시엔 Cray research)를 설립한 Seymour Roger Cray라는 사람이 한 말이야.


처음엔 크레이의 말대로 성능 좋은 벡터방식(여러개의 동일한 연산을 동시에 처리하는)의 CPU를 개발했어.

말이 처음이지 불과 10년전까지도 벡터방식의 SMP머신이 대세였음.

SMP머신은 자세히 설명하면 좀 복잡한데, 그냥 하나의 존나 빠른 컴퓨터라고 생각하면 된다.

하나의 컴퓨터에 씨피유랑 메모리를 존나 박는거임.


SMP머신은 성능은 확실히 짱짱맨이었어, 병렬화 하기도 편했고.

근데 이게 문제가 몇가지 있었다.


슈퍼컴퓨터에는 메모리가 많은데, 하나만 장애나도 시스템이 오류남..


그리고 미국 경제가 어려워지면서 몇 몇 특수기관에만 팔리는 장비를 위해

CPU를 지속적으로 개발/투자하는데 어려움을 느끼면서 점점 사장되었음.


슈퍼컴 개발이 뜸해지면서, 혹은 슈퍼컴이 너무 비싸서 부담을 느낀 사람들이 그리드니, 클러스터니 하면서

내도 좀 빠른 컴퓨터 써보자며 여러 컴퓨터를 엮는 시도를 하게 된다.


벡터 방식의 SMP머신의 한계를 느낀 슈퍼컴 업체들은 여러 컴퓨터를 한데 묶어서 하나의 컴퓨터마냥 슈퍼컴퓨터랍시고 팔아먹기 시작한다.


하지만, 성능 1짜리 1000개를 붙여놓는다고 성능이 1000이 되진 않았어.

성능 증가량이 점점 줄다가 어느순간부터는 한계점에 다다르는 현상이 발생하는 문제가 있었어.



이렇게 케이블로 노드들을 존나게 연결하다보니 확장성에 한계가 있을 수 밖에... 

사진은 어디 설치중인진 모르겠지만 Cray사의 최신 기종인 XC 장비를 설치중인 모습. 


하지만, 부분 장애시 장애가 발생한 노드(슈퍼컴 식 표현이고, 그냥 하나의 컴퓨터라고 생각하면 된다. 노드=컴퓨터)만 죽고 

시스템 전체 운영엔 지장이 없는 등 운영상의 장점이 많이 현재는 거의 모든 슈퍼컴이 이러한 구조를 지니게 되었어.


그러다보니 현대 슈퍼컴퓨터가 좋냐 나쁘냐를 구분하는 주요 요소는 다음과 같다.


1. 몇개의 노드까지 확장 가능한가

2. 노드간의 통신 속도가 얼마나 빠르고, 노드 위치에 따른 성능 변화가 얼마나 적은지

3. 얼마나 적은 전력을 처먹고 얼마나 크기가 작은가


그러다보니, 1번과 2번에 직접적인 영향을 끼치는 노드간 연결해주는 "인터커넥트 네트워크"가 슈퍼컴퓨터의 핵심 기술로 떠오르게 되었고,

Cray사가 XT, XE, XC등 X 시리즈 이후로 이런 노드간 연결인 "인터커넥트 네트워크" 기술이 뛰어나 현재는 전 세계적으로 Cray 제품이 각광받고 있다.


"인터커넥트 네트워크" 성능이 후지면 아무리 장비 떄려박아도 실제 성능이 나오지 않으므로 이론성능만 보고 아무거나 고르면 안된다.

실제 성능이란, 성능 1짜리를 1000개 때려박았을때 1000을 이론성능이라고 하고,

그 장비에서 성능측정용 테스트 모델(BMT라고 한다)을 수행하여 측정한 값을 실제 성능이라고 한다.


원래 Cray는 X씨리즈 나오기 전에 회사가 망하기 직전에 여기저기 인수합병되고 너덜너덜 거리는 중이었는데,

제작년인가 제제작년인가 기존 업계1위였던 IBM의 X86제품군이 중국의 레노버에 팔리고, 업게 2위였던 "아프로"(한국회사다)를 인수하면서

존나게 팔아먹으면서 업계 1위로 올라섰고, 업계에선 2017년까지는 크레이가 계속 1위를 유지할거라고 본다.


소프트웨어는, 생각보다 별거 없다.

대부분 운영체제로 Linux를 사용하고, 오픈소스 둘둘 둘러서 사용하는 경우가 태반이야.

물론 업체마다 각자 Linux를 일정부분 개조해서 사용하고 있기는 해.

댓글