벤치마킹 · 6 min read · Dec 14, 2025
HPL (고성능 Linpack): Raspberry Pi 벤치마킹
벤치마킹은 시스템이 달성한 속도를 평가하기 위해 일부 표준 프로그램을 실행하는 과정입니다. 여러 표준 벤치마킹 프로그램이 있으며, 이 튜토리얼에서는 HPL이라고도 알려진 잘 알려진 프로그램을 사용하여 Linux 시스템을 벤치마킹합니다.
소개
이 튜토리얼에서는 Raspberry Pi라는 단일 프로세서 시스템을 벤치마킹하는 방법을 다룹니다. 먼저 단일 노드를 벤치마킹한 다음, 각 노드가 Raspberry Pi를 나타내는 여러 노드를 벤치마킹합니다. 여기서 몇 가지 주의할 점이 있습니다. 첫째, 단일 노드 또는 여러 노드를 벤치마킹하려면 몇 가지 종속성을 충족해야 하며, 이는 이 튜토리얼에서 다룰 것입니다. 그러나 여러 노드에서는 HPL이 작동하기 위해 MPI 구현(MPICH 또는 OpenMPI와 같은)을 빌드하고 실행해야 하는 등 더 많은 종속성이 있습니다. 따라서 여러 노드를 벤치마킹하기 위해서는 노드에 MPICH가 설치되고 실행 중이라고 가정합니다.
HPL이란?
HPL은 분산 메모리 컴퓨터에서 이중 정밀도(64비트) 산술로 (무작위) 밀집 선형 시스템을 해결하는 소프트웨어 패키지입니다. HPL 패키지는 얻어진 솔루션의 정확성과 이를 계산하는 데 걸린 시간을 정량화하기 위한 테스트 및 타이밍 프로그램을 제공합니다. 이 소프트웨어가 시스템에서 달성할 수 있는 최고의 성능은 다양한 요인에 따라 달라집니다. 이 구현은 프로세서 메모리 사용량에 대해 병렬 효율성이 일정하게 유지된다는 점에서 확장 가능합니다. 따라서 이를 사용하여 단일 프로세서 또는 일련의 분산 프로세서를 병렬로 벤치마킹할 수 있습니다. 이제 HPL 설치를 시작하겠습니다.
1 종속성 설치
HPL을 설치하기 전에 충족해야 할 몇 가지 소프트웨어 종속성이 있습니다. 이들은 다음과 같습니다:
- gfortran - 포트란 프로그램 컴파일러
- MPICH2 - MPI 구현
- mpich2-dev - 개발 도구
- BLAS - 기본 선형 대수 서브프로그램
여기서는 MPICH2가 설치되어 있다고 가정합니다. 다른 종속성과 패키지를 설치하려면 다음 명령을 사용하십시오:
sudo apt-get install libatlas-base-dev libmpich2-dev gfortran이 단계는 클러스터에 있는 각 노드(Pi)에서 반복해야 합니다.
2 HPL 다운로드 및 설정
여기에서 HPL 패키지를 다운로드합니다. 다음 단계는 tar 파일을 추출하고 주어진 템플릿을 기반으로 makefile을 만드는 것입니다. 터미널을 열고 다운로드한 HPL tar 파일이 저장된 디렉토리로 변경합니다. 다음 명령 세트를 차례로 실행합니다.
tar xf hpl-2.1.tar.gz
cd hpl-2.1/setup
sh make_generic
cd ..
cp setup/Make.UNKNOWN Make.rpi마지막 명령은 Make.UNKNOWN의 내용을 Make.rpi로 복사합니다. 이렇게 하는 이유는 make 파일이 시스템(라즈베리 파이)의 모든 구성 세부정보와 mpich2, atlas/blas 패키지, 홈 디렉토리 등의 다양한 라이브러리 세부정보를 포함하고 있기 때문입니다. 다음 단계에서는 Make.rpi 파일을 수정합니다.
3 Make.rpi 파일 조정
이것은 중요한 단계입니다. 아래에 표시된 변경 사항은 시스템에 따라 다릅니다. 여기서는 내 시스템에 대해 보여줍니다. 다음 변경 사항에는 Make.rpi 파일에 퍼져 있는 매개변수가 표시됩니다. 따라서 각 매개변수를 찾아 변경 사항을 교체하거나 추가한 다음 다음 매개변수로 계속 진행하는 것이 좋습니다.
다음 명령을 사용하여 텍스트 편집기로 Make.rpi 파일을 엽니다:
nano Make.rpi파일에 다음과 같은 변경을 합니다.
ARCH = rpi
TOPdir = $(HOME)/hpl-2.1
MPdir = /usr/local/mpich2
MPinc = -I $(MPdir)/include
MPlib = $(MPdir)/lib/libmpich.a
LAdir = /usr/lib/atlas-base/
LAlib = $(LAdir)/libf77blas.a $(LAdir)/libatlas.a4 HPL 컴파일
Make 파일이 준비되면 HPL 컴파일을 시작할 수 있습니다. “bin/rpi” 폴더 내에 “.xhpl” 파일이 존재하게 됩니다. 다음 명령을 실행합니다:
makeh arch=rpi5 HPL 입력 파일 생성
다음은 “HPL.dat” 파일의 예입니다. 이것은 HPL이 실행될 때의 입력 파일입니다. 이 파일에 제공된 값은 문제를 생성하고 계산하는 데 사용됩니다. 이 파일을 직접 사용하여 단일 노드에 대한 테스트를 실행할 수 있습니다. “bin/rpi” 폴더 내에 파일을 생성하고 이름을 “HPL.dat”로 지정합니다. 아래 내용을 해당 파일에 복사합니다.
HPLinpack 벤치마크 입력 파일
혁신 컴퓨팅 연구소, 테네시 대학교
HPL.out 출력 파일 이름 (있는 경우)
6 장치 출력 (6=stdout,7=stderr,file)
1 문제 크기 수 (N)
5040 Ns
1 NBs 수
128 NBs
0 PMAP 프로세스 매핑 (0=행 우선,1=열 우선)
1 프로세스 그리드 수 (P x Q)
1 Ps
1 Qs
16.0 임계값
1 패널 사실 수
2 PFACTs (0=왼쪽, 1=크라우트, 2=오른쪽)
1 재귀 중지 기준 수
4 NBMINs (>= 1)
1 재귀에서 패널 수
2 NDIVs
1 재귀 패널 사실 수.
1 RFACTs (0=왼쪽, 1=크라우트, 2=오른쪽)
1 브로드캐스트 수
1 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1 미리 보기 깊이 수
1 DEPTHs (>=0)
2 SWAP (0=이진 교환,1=긴,2=혼합)
64 교환 임계값
0 L1 (0=전치,1=비전치) 형태
0 U (0=전치,1=비전치) 형태
1 평형화 (0=아니오,1=예)
8 메모리 정렬 (더블 > 0)이 파일의 내용은 만족스러운 출력을 얻을 때까지 시행착오 방법으로 변경해야 합니다. 각 매개변수에 대해 알고 싶고 어떻게 변경하는지에 대한 내용은 여기의 문서를 참조하십시오. 주요 내용을 건너뛰려면 해당 문서의 6페이지부터 읽기 시작하십시오.
6 단일 노드에서 HPL 실행
HPL.dat 파일이 준비되면 HPL을 실행할 수 있습니다. 위의 HPL.dat 파일은 단일 노드 또는 프로세서에 대한 것입니다. 위 파일의 PQ 값의 곱은 HPL이 테스트되는 프로세서 수를 제공합니다. 따라서 위 파일에서 P=1 및 Q=1, 11=1이므로 단일 프로세서에 해당합니다. 이제 이를 실행하려면 다음 명령을 사용하십시오:
cd bin/rpi
./xhpl출력은 아래와 비슷하게 보입니다:
================================================================================
HPLinpack 2.1 -- 고성능 Linpack 벤치마크 -- 2012년 10월 26일
A. Petitet 및 R. Clint Whaley, 혁신 컴퓨팅 연구소, UTK 작성
Piotr Luszczek, 혁신 컴퓨팅 연구소, UTK 수정
Julien Langou, 콜로라도 대학교 덴버 수정
================================================================================
입력/출력 매개변수에 대한 설명은 다음과 같습니다:
T/V : 벽 시간 / 인코딩된 변형.
N : 계수 행렬 A의 차수.
NB : 분할 차단 인자.
P : 프로세스 행 수.
Q : 프로세스 열 수.
시간 : 선형 시스템을 해결하는 데 걸린 시간(초).
Gflops : 선형 시스템을 해결하는 실행 속도.
다음 매개변수 값이 사용됩니다:
N : 5040
NB : 128
PMAP : 행 우선 프로세스 매핑
P : 1
Q : 1
PFACT : 오른쪽
NBMIN : 4
NDIV : 2
RFACT : 크라우트
BCAST : 1링M
DEPTH : 1
SWAP : 혼합 (임계값 = 64)
L1 : 전치 형태
U : 전치 형태
EQUIL : 예
ALIGN : 8 배정밀도 단어
--------------------------------------------------------------------------------
- 행렬 A는 각 테스트에 대해 무작위로 생성됩니다.
- 다음 스케일링 잔여 확인이 계산됩니다:
||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N )
- 상대 기계 정밀도 (eps)는 1.110223e-16으로 설정됩니다.
- 계산 테스트는 스케일링 잔여가 16.0보다 작으면 통과합니다.또한 최종 결과에 집중해야 합니다. 터미널에 표시되는 최종 출력은 아래와 비슷하게 보입니다. 마지막 값은 속도를 제공하며, 그 이전의 값들은 제공된 다양한 매개변수를 보여줍니다. 아래 내용에서 속도는 Gflops로 표시되며, 그 값은 약 1.21e-01 Gflops로, 변환하면 121 메가 FLOPS(MFLOPS)가 됩니다.
================================================================================
T/V N NB P Q 시간 Gflops
--------------------------------------------------------------------------------
WR11C2R4 21400 128 3 11 537.10 1.210e-01
HPL_pdgesv() 시작 시간 2014년 6월 23일 월요일 17:29:42
HPL_pdgesv() 종료 시간 2014년 6월 23일 월요일 17:55:19
--------------------------------------------------------------------------------
||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)= 0.0020152 ...... 통과
================================================================================라즈베리 파이에 따라 속도와 소요 시간은 상당히 다를 수 있습니다. 따라서 이러한 결과를 노드나 클러스터와 비교하는 데 사용하지 마십시오.
7 여러 노드에서 HPL 실행
여러 노드에서 HPL을 실행하려면 HPL.dat 파일을 변경해야 합니다. 여기서 32개의 노드가 있다고 가정해 보겠습니다. 따라서 PQ의 곱은 32여야 합니다. 나는 P=4, Q=8을 선택하여 48=32가 되도록 했습니다. 이 변경 외에도 N의 값을 변경해야 하며, 시행착오를 통해 N=17400에서 최대 속도를 얻었습니다. 최종 파일 내용은 아래와 같습니다. 해당 변경 사항을 “HPL.dat” 파일에 적용하십시오.
HPLinpack 벤치마크 입력 파일
혁신 컴퓨팅 연구소, 테네시 대학교
HPL.out 출력 파일 이름 (있는 경우)
6 장치 출력 (6=stdout,7=stderr,file)
1 문제 크기 수 (N)
17400 Ns
1 NBs 수
128 NBs
0 PMAP 프로세스 매핑 (0=행 우선,1=열 우선)
1 프로세스 그리드 수 (P x Q)
4 Ps
8 Qs
16.0 임계값
1 패널 사실 수
2 PFACTs (0=왼쪽, 1=크라우트, 2=오른쪽)
1 재귀 중지 기준 수
4 NBMINs (>= 1)
1 재귀에서 패널 수
2 NDIVs
1 재귀 패널 사실 수.
1 RFACTs (0=왼쪽, 1=크라우트, 2=오른쪽)
1 브로드캐스트 수
1 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1 미리 보기 깊이 수
1 DEPTHs (>=0)
2 SWAP (0=이진 교환,1=긴,2=혼합)
64 교환 임계값
0 L1 (0=전치,1=비전치) 형태
0 U (0=전치,1=비전치) 형태
1 평형화 (0=아니오,1=예)
8 메모리 정렬 (더블 > 0)이 작업이 완료되면 HPL을 다시 실행해야 합니다. 다음 명령을 사용하십시오. 아래 명령의 경로를 시스템의 머신 파일 경로로 변경하는 것을 잊지 마십시오.
cd bin/rpi
mpiexec -f ~/mpi_testing/machinefile -n 32 ./xhpl이 결과는 단일 노드에 대해 위와 비슷하게 나타나지만, 확실히 더 높은 속도를 가질 것입니다.
이러한 종류의 변경은 시스템의 노드 또는 프로세서 수에 따라 수행할 수 있으며, 벤치마크 결과를 찾을 수 있습니다. 그리고 앞서 언급했듯이 HPL.dat 파일의 값을 설정하는 방법에 대해 더 알고 싶다면, 여기의 문서를 참고하여 읽어보십시오.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.