티스토리 뷰

반응형
흔히 클러스터 시스템에서 벤치마크는 LINPACK을 사용하거나 HPL(High-Performance Linpack Benchmark)을 통해서 시스템의 실제 성능을 측정하게 된다.

1. 시스템의 성능이란 ? - FLOPS
그럼 성능?에서 성능은 무엇을 의미하는가?에 대한 해답이 선행되어야 할것이다. 슈퍼컴퓨터에서의 성능은 FLOPS(Floationg-point Operations Per Second : 초당 실수연산 회수) 1초에 덧셈, 뺄셈, 곱셉, 나눗셈 등의 실수 계산을 총 몇 번 할 수 있는지를 나타내는 값이다. 만약 1초에 실수끼리 곱셈을 2번씩 할 수 있다면 그때의 계산 속도는 2FLOPS가 되는 것이다.

[quote]MFLOPS(MegaFLOPS, 106FLOPS)
GFLOPS(GigaFLOPS, 109FLOPS)
TeraFLOPS(1012FLOPS)
PetaFLOPS(1015FLOPS)
[/quote]

2. 이론성능 vs. 실제성능 - Rpeak & Rmax
그럼 이제 성능에 대해 알아봤으니 어떻게 성능을 측정하는가?에 대한 해답이 나와야 한다. 성능은 크게 이론성능과 실제성능으로 나뉜다. 이론성능(Rpeak)은 말 그대로 이론적인 성능이고 실제성능(Rmax)은 여러가지 테스트를 통해 얻어낸 실제로 측정된 성능이다.

그럼 실제성능을 구하기전에 내 하드웨어(CPU)가 낼 수 있는 이론적인 성능을 계산해 보도록 하자. KIST 슈퍼컴퓨팅센터의 qna에 올라온것을 인용하자면

[quote]이론 성능치, peak performance(Rpeak)는 아래의 식을 통해 구할 수 있습니다.
Flop/s=(cycle/s)*(Flop/cycle)*(Number of pipes)
Pentium-IV 3GHz일 경우 ia32(Itaium을 제외한 intel, AMD의 대부분의 CPU) 아키텍처 계열의 CPU로서 1 cycle당 (double precision) floating point 연산은 최대 2번 수행할 수 있으며, vector 계열이 아니므로 number of pipes는 1입니다.
따라서 위식을 적용하면
3(GHz/sec) * 2(Flop/Hz) * 1 = 6 GFlops 가 나옵니다.
따라서 위와 같은 노드가 32개 일 경우
32*6 = 192 Gflops 가 나옵니다.
[/quote]

3. LINPACK & HPL
그럼 이제 실제성능을 측정해 보도록 하자. HPL(A Portable Implementation of the High-Performance LinpackBenchmark for Distributed-Memory Computers)을 통해서 실제성능을 측정할 것인데, 이는 영문에서 보는바와 같이 분산-메모리 컴퓨터에서 즉 각각의 시스템이 독립적인 클러스터 시스템에서 성능을 측정하는데 사용한다. HPL은 mpi를 통해서 Linpack(여러 프로세서가 하나의 커다란 메모리 공간에 접근하여 계산을 수행)을 병렬로 처리하도록 해준다. Top 500에서도 LINPACK과 동일하게 HPL을 통해 측정된 값을 동일하게 인정해 준다.

[quote]LINPACK은 Liner Package의 약자로서 선형 시스템의 해를 구하는데 널리 사용하는 package이다. 해를 구하는 연산이 대부분 부동 소수점(Floationg-point)로 구성되어 있어 시스템의 성능을 측정하는데 널리 사용하는 측정법이며, 현재 Top 500 HPC에 대한 성능측정 및 순위 책정도 Linpack을 사용하고 있다.
[/quote]

따라서 클러스터 시스템의 성능 측정을 위해서는 mpi와 hpl이 설치되어야 한다. 또한 hpl은 BLAS, CBLAS, ATLAS의 설치가 선행되어야 한다. 그럼 하나씩 설치해 보도록 하자.

[quote]mpich - mpich 1.2.7p1
ATLAS - atlas 3.6.0
CBLAS - ?
BLAS - ?
GCC - 2.96
Kernel - 2.4.18-3
OS - RedHat 7.3
[/quote]
반응형
공지사항
최근에 올라온 글