본문 바로가기
IT_Study/CS_Study

[Parallel Computing] (1) Supercomputer이란 무엇일까?

by 두번째얼룩 2024. 4. 12.

 여러 형태로 슈퍼 컴퓨터를 정의할 수 있으나, 필자는 아래와 같은 내용으로 정의한 문장이 가장 슈퍼 컴퓨터에 가깝다고 생각한다. 

'현재 사용가능한 가장 빠른 컴퓨터 시스템과 같은 클래스에 속해 있는 컴퓨터 시스템이라고 말할 수 있다.'

여기서 빠르다는 의미는 특정 테스크를 단 시간 내에 수행한다는 것을 의미한다. 그리고 같은 클래스는 일반적으로 500개의 가장 빠른 컴퓨터들을 발표하는 Top500에 포함되어 있는 것을 의미한다. 

Top500에 속해있는 컴퓨터들은 'https://www.top500.org'에서 확인해볼 수 있다. Top500은 1993년도부터 List up을 하기 시작하였고, 목록 업데이트는 일 년에 두 번 수행한다. 퍼포먼스는 'LINPACK' 벤치마크를 수행하여 측정한다. 간단하게 말하면, 'LINPACK' 벤치마크는 'double-precision floating-point'를 사용하고, Linear equation(Ax=b, A=NxN Matrix)를 푸는 형태이다.

 성능을 나타내는 지표는 FLOPS(FLoating-point OPeration per Second)라 표현하며, 얼마나 많은 'Floating-point operation'을 단 시간 내에 수행할 수 있는 지를 나타낸다. 현재 슈퍼컴퓨터는 ExaFLOPs(10^18)의 성능을 보이고 있다. 

 Top500이 성능으로만 가장 뛰어난 슈퍼컴퓨터들을 나타냈었다. 최근 환경 오염과 관련된 문제가 대두되면서, 전력소모량에 대한 관심이 높아졌다. 이에 따라 성능만이 아니라 소모되는 전력대비 성능(Perforamcne per Watt)을 새로운 지표로 사용하여 2013년부터 1년에 두 번씩 슈퍼컴퓨터들을 리스트업 하였다. 이는 Green500이라 불리며, 'https://www.top500.org/lists/green500'에서 확인해볼 수 있다. 특이한 점은 Green500에 이름을 올리려면, 먼저 Top500에 속한 적이 있어야 한다.  

 Supercomputer는 매 1.2년마다 2배의 성능 향상 추세를 보이고 있다.  에너지의 경우 매 2.2년마다 2배의 효율이 좋아지고 있다.

Supercomputer 발전 속도[1]

그런데 Supercomputer를 구성하는 Sever와 GPU는 Server인 경우 매 2.4년마다 2배, CPU는 매 2.2년마다 2배의 성능향상을 보이고 있다.

서버 발전 속도[1]
GPU 발전 속도[1]

Sever와 GPU의 성능 향상이 더디므로, Supercomputer의 발전은 더 많은 Server와 GPU를 활용하여 Massivley Parallel를 수행하는 방향으로 이뤄지고 있다. 

 Sever와 GPU의 성능 향상이 더딘 이유에는 여러 가지가 있으나, 여기에서는 Power Wall, ILP(Instruction Level Parallelim) Wall을 언급하려고 한다.  

 Power wall은 Power 제약으로 인하여 싱글 코어의 성능을 올리기 어려운 점을 이야기한다. 일반적으로 싱글 CPU의 계산 능력은 Clock frequency에 따라 비례한다. 마찬가지로 CPU에서 소모되는 Power 또한 Clock frequency에 따라 비례한다. 그런데 Power의 제한으로 인하여 Clock frequency를 올리기 어려워졌고, Clock frequency를 올리지 못하므로 싱글 CPU의 계산 능력을 올리기 어려워졌다. 이를 극복하고자 Core의 개수를 늘려 Parallel computing을 수행하여 전체적인 계산능력을 향상하려고 한다. 

 Instruction Level Parallelim(ILP)는 하나의 Core에서 동시에 수행될 수 있는 Instruction을 활용하여 성능을 올리는 방법이다. 그런데 이는 Application 마다 동시에 수행가능한 Instruction의 수가 달라질 수 있다. 보통 동시에 수행가능한 Instruction 숫자가 4개보다 작으므로 4개의 Instruction을 동시에 수행할 수 있는 하드웨어가 있으면 충분하고 한다. 이보다 많은 수의 Instruction을 수행하는 Hardware를 두는 건 낭비가 되므로 이를 활용하여 성능을 올리기는 어렵다. 

 다음 글에서는 Parallel Computing의 개념에 대해서 에 대해서 알아보겠다. 

 

 

 

 

[1] ISCC 2023,Inovation for the Next Decade of Compute Efficiency.

 

 

 

 

 

 

 

 

 

 

 

 

댓글