단일 가상화 서비스 플랫폼 벤치마크 테스트베드 구축 및 시험
2020.06.01.
우준 권민우 명훈주 윤준원 이국화 한영만 , , , , ,
한국과학기술정보연구원
개요
1. ··· 1
단일 가상화 서비스 플랫폼 1.1. ··· 1
기존 플랫폼 벤치마크 1.2. ··· 2
기존 플랫폼 벤치마크 계획 2. ··· 4
기존 플랫폼 현황 2.1. ··· 4
벤치마크 대상 플랫폼 선정 및 테스트베드 설계 2.2. ··· 20
기능 시험 2.3. ··· 23
성능 시험 2.4. ··· 24
성능 시험 2.4.1. HPC ··· 24
데이터 분석 성능 시험 2.4.2. ··· 30
활용 사례 발굴 2.5. ··· 31
벤치마크 테스트베드 구축 3. ··· 32
테스트베드 구축 3.1. TidalScale ··· 32
테스트베드 구축 3.2. vSMP ··· 38
기능 시험 결과 4. ··· 43
사용 편의성 4.1. ··· 43
연동 유연성 4.2. ··· 43
운영 용이성 4.3. ··· 44
성능 최적화 4.4. ··· 45
결함 허용성 4.5. ··· 46
확장 가능성 4.6. ··· 46
성능 시험 결과 5. ··· 47
성능 시험 환경 5.1. ··· 47
성능 시험 5.2. HPC ··· 49
5.2.1. STREAM ··· 49
5.2.2. CLOMP ··· 51
5.2.3. HPL ··· 55
5.2.4. Gaussian ··· 58
데이터 분석 성능 시험 5.3. ··· 61
벤치마크 프로그램 5.3.1. R ··· 61
활용 사례 발굴 6. ··· 64
기반 농생명 유전체 조립 6.1. NGS ··· 64
유전체 다중서열정렬 6.2. ··· 66
결론 7. ··· 68
참고 문헌 [ ] ··· 69
표 차례
< >
표 1. Local vs. Remote Run-Times (Sec) ··· 12
표 2. TidalScale 및 ScaleMP vSMP 테스트베드 구성 시 고려사항 ··· 21
표 3. HPC 성능시험 벤치마크 프로그램 및 테스트 방법··· 24
표 4. STREAM 테스트 유형 ··· 24
표 5. CLOMP 벤치마크 툴의 인자 값··· 25
표 6. HPL 벤치마크 옵션··· 26
표 7. HPC 성능시험 벤치마크 프로그램 및 테스트 방법··· 30
표 8. Waverunner 관리 서버 사양··· 33
표 9. Waverunner 관리 서버 로컬 ZFS 데이터셋 리스트··· 34
표 10. Work 노드 사양 ··· 35
표 11. vSMP 물리노드 사양 ··· 38
표 12. TidalScale vs ScaleMP (사용 편의성) ··· 43
표 13. TidalScale vs ScaleMP (연동 유연성) ··· 44
표 14. 운영 용이성··· 44
표 15. 성능 최적화··· 45
표 16. 결함 허용성··· 46
표 17. 확장 가능성 ··· 46
표 18. 기존 단일 가상화 서비스 플랫폼 성능 시험 환경··· 47
표 19. CLOMP 벤치마크 테스트 케이스··· 51
표 20. CLOMP 벤치마크 테스트 케이스 (CPU 56core, Memory 286GB) ··· 52
표 21. CLOMP 벤치마크 테스트 케이스 (CPU 80core, Memory 573GB) ··· 54
표 22. 1노드 베어메탈서버 대비 노드 단일가상서버의 1 Gaussian 실행 오버헤드··· 59
표 23. R을 이용한 데이터 분석 성능테스트 (2노드 단일가상서버) ··· 61
표 24. R을 이용한 데이터 분석 성능테스트 (4노드 단일가상서버) ··· 62
표 25. 1노드 베어메탈서버 대비 노드 단일가상서버의 1 R 벤치마크 프로그램 실행 오버헤드 ··· 63
표 26. Canu를 이용한 벼 유전체 조립 결과··· 65
표 27. MAFFT를 사용한 16S rRNA 성능 검증 데이터셋··· 67
표 28. MAFFT를 사용한 16S rRNA 성능 검증 결과··· 67
그림 1. 소프트웨어 정의 서버를 위한 단일 가상화 서비스 플랫폼 개요··· 1
그림 2. 단일 가상화 서비스 플랫폼 기술개발 개요 및 참여기관 역할 구분··· 2
그림 3. 기존 단일 가상화 서비스 플랫폼의 기능 및 성능 벤치마크··· 3
그림 4. 기존 단일 가상화 서비스 플랫폼 출처 위키( : -SSI 단일 이미지 클러스터링 플랫폼) ··· 5
그림 5. TidalScale Architecture ··· 6
그림 6. TidalScale WaveRunner Control Panel ··· 6
그림 7. SAP HANA/TPC-H ··· 7
그림 8. R-Predictive Analytics ··· 7
그림 9. Oracle DB-In-memory/TPC-H ··· 8
그림 10. 메모리 확장 할 경우 TidalScale사용 시 비용 절감 ··· 8
그림 11. CS MOSIX Cloud ··· 10
그림 12. 웹 webmon 모니터링 ··· 11
그림 13. MOSIX (OpenMOSIX) 아키텍처 ··· 11
그림 14. 논리적 아키텍처 (ScaleMP) ··· 13
그림 15. Throughput (SPECFP_RATE_BASE2006: QUAD – Intel Nehalem EX) ··· 14
그림 16. Memory Bandwidth Performance ··· 14
그림 17. OpenMP Parallelization (Home-Grown OpenMP Code vs. SGI Altix UV) ··· 15
그림 18. MPI HPC Challenge HPL ··· 15
그림 19. Kerrighed Architecture ··· 17
그림 20. kDFS 아키텍처 ··· 17
그림 21. Kerrighed Clusters Map ··· 18
그림 22. Kerrighed Clusters Status ··· 18
그림 23. ScaleMP사의 vSMP와 TidalScale 아키텍처··· 20
그림 24. CLOMP 벤치마크 툴의 메쉬데이터 구조··· 25
그림 25. HPL 행렬 연산의 벤치마크 옵션··· 26
그림 26. LU factorization을 통한 연립방정식 해··· 27
그림 27. Gaussian을 사용하여 산출된 수소화물의 결합 엔탈피 및 정전기 전위 그래프··· 28
그림 28. TidalScale 단일가상서버에서 Gaussian 성능시험 스크립트 예제··· 29
그림 29. 단일 가상화 서비스 플랫폼 활용 사례 ··· 31
그림 30. TidalScale 테스트베드 구성도 ··· 32
그림 31. TidalScale 테스트베드 네트워크 구성··· 32
그림 32. Waverunner 관리 서버 네트워크 포트 구성 ··· 33
그림 33. Waverunner 관리 서버 로컬 ZFS 스토리지 구성 ··· 34
그림 34. Work 노드 네트워크 포트 구성 ··· 35
그림 35. TidalPod centos-master 구성 ··· 36
그림 36. TidalPod에서 Work 노드 구성··· 36
그림 37. TidalPod 설정 변경··· 37
그림 38. 단일가상서버 위에서 구동된 Guest OS에 SSH 터미널 접속을 통해 htop을 실행한 화면 ··· 37
그림 39. vSMP 테스트베드 구성도 ··· 38
그림 40. vSMP installer 설치 화면··· 39
그림 41. vSMP 라이센스 서버 구성 화면··· 39
그림 42. vSMP 이미지 생성··· 40
그림 43. PXE boot 설정 구성 화면··· 40
그림 44. vSMP 가상머신 구동 및 Guest OS 부팅··· 41
그림 45. GuestOS에서 vsmppp 설치 파일 및 설치 후 디렉터리 리스트 ··· 41
그림 46. 가상머신 및 GuestOS에서 프로세서 및 메모리 구성 현황 ··· 42
그림 47. 2노드 단일가상서버 및 4-way 물리서버에서 STREAM 테스트 결과··· 49
그림 48. 4노드 단일가상서버에서 STREAM 테스트 결과··· 50
그림 49. 2노드 단일가상서버 및 4-way 물리서버 CLOMP 테스트 결과··· 53
그림 50. 4노드 단일가상서버 CLOMP 테스트 결과··· 54
그림 51. TidalScale 단일가상서버에서 HPL 테스트 결과··· 56
그림 52. vSMP 단일가상서버에서 HPL 테스트 결과··· 56
그림 53. Bigmem02에서 HPL 테스트 결과··· 57
그림 54. vSMP 단일가상서버에서 Gaussian 성능시험 스크립트 예제··· 58
그림 55. 2노드 단일가상서버 및 대용량공유메모리 물리서버에서 Gaussian 테스트 결과··· 60
그림 56. 4노드 단일가상서버에서 Gaussian 테스트 결과··· 60
그림 57. R를 이용한 데이터 분석 성능테스트 (2노드 단일가상서버) ··· 62
그림 58. R을 이용한 데이터 분석 성능테스트 (4노드 단일가상서버) ··· 63
그림 59. 유전체 조립 과정 ··· 64
그림 60. MSA을 통한 진화적 상관관계 분석 예시··· 66
1.1. 단일 가상화 서비스 플랫폼
○, ,
,
- (Inverse Virtualization)
-
- Single System Image
그림 1 소프트웨어 정의 서버를 위한 단일 가상화 서비스 플랫폼 개요.
“
○
”
「
」
그림 2 단일 가상화 서비스 플랫폼 기술개발 개요 및 참여기관 역할 구분.
1.2. 기존 플랫폼 벤치마크
○
,
○
.
- -
-
,
○
,
그림 3 기존 단일 가상화 서비스 플랫폼의 기능 및 성능 벤치마크.
2. 기존 플랫폼 벤치마크 계획 2.1. 기존 플랫폼 현황
○ -
,
• :
• :
• :
‘ps’, ‘kill’
• root: NFS
• I/O :
I/O
• IPC :
IPC (inter-process communication)
• IP : IP
IP ( IP
)
○
-
-
TidalScale HPC MOSIX,
그림 4 기존 단일 가상화 서비스 플랫폼 출처 위키. ( : -SSI 단일 이미지 클러스터링 플랫폼)
(TidalScale) - TidalScale
TidalScale•
TidalScale•
TidalScale• .
, , , GB
TB
• HyperKernel
.
. ,
CPU I/O
• WaveRunner Console 5
( 4 )
• : Redhat(Certified Technology), Ubuntu(Certified Technology), SUSE(Ready)
- TidalScale
• : , , I/O, Storage I/O
그림 5. TidalScale Architecture
- TidalScale WaveRunner Console (2017 12 )
그림 6. TidalScale WaveRunner Control Panel
SAP HANA/TPC-H•
그림 7. SAP HANA/TPC-H
R-Predictive Analytics •
그림 8. R-Predictive Analytics
Oracle DB-In-memory/TPC-H • TidalScale Oracle in-memory DB
그림 9. Oracle DB-In-memory/TPC-H
그림 10 메모리 확장 할 경우 . TidalScale사용 시 비용 절감
- TidalScale
• Cadence
TidalScale
Software-Defined Servers . ,
30%
TidalScale 200+ TidalPool
TidalScale
3~4node POD .
50% 80%
Walmart•
, TidalScale
4*6TB Tidalpod (28 node pool) TidalPod 10
2~400K 3~5M Pod
history .
On-Off line 40% ,
,
USAA•
TidalScale 8
in-memory
Sirqul• IoT
TidalScale 200core 4TB Pod
, , ,
, , . 30
5
(MOSIX)
- MOSIX
MOSIX•
4.4.4
OpenMOSIX 2018
MOSIX•
• MOSIX4
MOSIX4•
.
( )
MOSIX4•
MOSIX• CS MOSIX Cloud
7 MOSIX , 32 (512 cores) ( 9 )
그림 11. CS MOSIX Cloud
mosmon (CLI)• (CPU-speed, load, free vs. used
memory, swap space, number of active nodes, ... )
• webmon , average load
(mosmon , 10 )
그림 12 웹 . webmon 모니터링
• VM non-VM VM guest OS
Windows
• , , ,
- MOSIX
그림 13. MOSIX (OpenMOSIX) 아키텍처
- MOSIX
MOSIX• (RC, SW, JEL, BLAT)
MOSIX ( 2) 1Gb/s
slowtime (vs. Local Time) 1.085%
(across campus) 1.3% MOSIX
구분 RC SW JEL BLAT
Local 723.4 627.9 601.2 611.6
Total I/O (MB) 0 90 206 476
I/O block size - 32KB 32KB 64KB
Syscalls 3,050 16,700 7,200 7,800
Same cluster 725.7 637.1 608.2 620.1
Slowdown 0.32% 1.47% 1.16% 1.39%
Remote cluster 727.0 639.5 608.3 621.8
Slowdown 0.50% 1.85% 1.18% 1.67%
표 1. Local vs. Remote Run-Times (Sec)
- MOSIX
• MOSIX VirtualCL(VCL)
OpenCL Wrapper MOSIX
. VCL SLURM MPI
(ScaleMP) - ScaleMP
2003• SMP
Guest OS VM 40
ScaleMP• vSMP
vSMP• Infiniband
I/O I/O .
(Tuning) • ScaleMP
Infiniband HCA, Switch
• OS ( 64 bit OS, 2.6.11 ,
RHEL5/6, SLES11, SLES11SP1-3... ) ScaleMP•
I/O, CPU
- ScaleMP
그림 14 논리적 아키텍처 . (ScaleMP)
- ScaleMP
Troughput (SPECFP_RATE_BASE2006: QUAD Intel Nehalem EX) • –
그림 15. Throughput (SPECFP_RATE_BASE2006: QUAD – Intel Nehalem EX)
Memory Bandwidth (STEAM: QUAD Socket Intel Nehalem Ex) • –
그림 16. Memory Bandwidth Performance
OpenMP Parallelization (HOME-GROWN Code vs. SGI Altix UV) •
그림 17. OpenMP Parallelization (Home-Grown OpenMP Code vs.
SGI Altix UV)
Distributed Memory (MPI, HPC Challenge HPL) •
그림 18. MPI HPC Challenge HPL
- ScaleMP
• Formula1 mesh whole-car
pre-processing 200GB size mesh 12
ScaleMP 12 Intel dual-processor Xeon 384 GB
RAM vSMP VM Global Energy •
x86 192GB RAM vSMP VM
Medical Research Institute• MRI
200GB .
1TB Ram 128 cores vSMP VM SSI
• Hedge Fund
latency 0.5TB RAM 128 cores vSMP VM low latency
(Kerrighed) - Kerrighed
Kerrighed• ,
, , OS
• , , ,
, ,
• x86-64 with Kerrighed >= 2.4.0, i386 / x86-32 / IA32 with Kerrighed <= 2.3.0
Kerrighed•
Kerrighed• SSI HOST OS
PID, IPC, Net,
• TCP 2222
• v.3.0.0
- Kerrighed
그림 19. Kerrighed Architecture
- Kerrighed
kDFS (kernel/Kerrighed Distributed File System) •
그림 20. kDFS 아키텍처
- Kerrighed
• 75 Kerrighed
110 672 cores, RAM 4,096GB
그림 21. Kerrighed Clusters Map
그림 22. Kerrighed Clusters Status
Fortran Intel Xeon 192 cores, 4,096 GB, Infiniband/malanox
40G Kerrighed VM
Sirius • ( ) 84 Intel Xeon 672 cores, 672 GB, Gigabit
Ehternet Kerrighed
Kerlabs(• ) 63 Intel Xeon 252core, 63GB, Gigabit Ethernet
Kerrighed Itp
• : http://www.kerrighed.org/php/clusterslist.php
2.2. 벤치마크 대상 플랫폼 선정 및 테스트베드 설계
○
- 2.1 (SSI, Single System Image)
Kerrighed
- ,
,
-
.
- , HPC
ScaleMP vSMP(versatile SMP)
, SAP in-memory
TidalScale
[ScaleMP vSMP] [TidalScale]
그림 23. ScaleMP사의 vSMP와 TidalScale 아키텍처
○
-
TidalScale v3.0 ScaleMP vSMP Foundation v9.0
- TidalScale vSMP 2-way Intel Xeon Skylake Gold
4 ,
구분 테스트베드 구성 시 고려 사항
Tidalscale v3.0
인터커넥션 네트워크 지원되는 확인 필요
: 10G / 25G ( NIC )
하이퍼 커널을 포함한 이미지 배포를 위한 네트워크
Freebsd OS PXE ,
네트워크 접속을 위한 네트워크 네트워크
External Guest , IPMI Control
등 구성 필요
별도의 관리 노드서버를 구성해야 함
Waverunner
OS : RHEL/CentOS 6.7/7.*, Oracle Linux 6.*,Ubuntu 16.04, SLES 12, FreeBSD 10.3/11.1
vSMP Foundation v9.0
인터커넥션 네트워크 : Infiniband (지원되는 HCA 확인 필요)
다수의 물리서버에서 구성변경에 따라 vSMP Foundation 커널을 유연하게
배포하기 위해 별도의 서버를 구성해야 함
PXE boot
OS : RHEL/CentOS/Oracle Linux 5/6/7, SLES11/12 이상
(Linux 64 bit OS, Kernel level 2.6.11 )
- TidalScale
TidalScale • Waverunner
TidalScale • (Work ) 4
TidalScale • 25GbE
, PXE/Guest/Control 1GbE, Storage
10GbE
Guest OS• (Waverunner )
ZFS iSCSI export
• Guest OS KISTI CentOS
Linuxe 7.4
- vSMP(ScaleMP)
vSMP • vSMP Foundation
PXE boot
vSMP • TidalScale 4
• vSMP
56Gbps IB 4x FDR , PXE/Guest/Control
1GbE . Guest OS•
Lustre
• Guest OS TidalScale CentOS
Linuxe 7.4
○
-
• GUI, CLI, ,
-
• (IPMI, PXE,
, RESTful API ) -
• , , ,
-
Inter-connect • , InfiniBand , vCPU/Memory Page
, , HPC
Guest OS
-
• VM , 2
Inter-connection
-
• , , vCPU , Backplane (HCA VM
Bandwidth ) ․
2.4. 성능 시험
2.4.1. HPC 성능 시험
HPC TidalScal vSMP
○
, HPL Gaussian
3
○
4-way
구분 벤치마크 프로그램 테스트 방법
HPC 성능 시험
CLOMP : OpenMP 성능 측정 벤치마크 프로그램 메모리 프로세서 간 데이터 전송
STREAM : /
속도 측정 벤치마크 프로그램
실수연산 성능측정 벤치마크 프로그램 HPL :
대용량 공유 메모리를 요구하는 GAUSSIAN :
전자구조 계산 프로그램
베어메탈 물리 서버 대
1) ( ) (1 ) v.s.
단일가상서버
(vSMP/Tidalscale)
베어메탈서버 대비 오버헤드 측정 베어메탈서버 대
2) 4-way CPU (1 ) v.s.
단일가상서버(2-way CPU 물리서버 대2 ) 오버헤드 및 성능 확장성 비교
3) 단일가상서버(2-way CPU 물리서버 대4 ) 성능 확장성 비교
표 3. HPC 성능시험 벤치마크 프로그램 및 테스트 방법
STREAM
○
- STREAM
(Copy, Scale, Add, Triad) OpenMP .
- STREAM (V.5.10) C ,
OMP_NUM_THREADS .
표 4. STREAM 테스트 유형
- CLOMP OpenMP , OpenMP
그림 24. 벤치마크 툴의 메쉬데이터 구조
- Part Zone Zone (loop) NUMA,
Cache friendly Mem-bound OpenMP
Parameter Description
numThreads 연산에 참여하는 쓰레드 개수 (-1이면 최대 쓰레드 개수)
allocThreads 데이터 할당에 관여하는 쓰레드 개수 (-1이매 최대 쓰레드 개수)
numParts Part의 개수 루프의 개수( )
zonesPerParts Part당 Zone의 개수
zoneSize Zone의 크기 (512 nominal, >= 32 valid)
flopScale Zone안에서 발생하는 작업의 양
timeScale `테스트의 반복회수를 결정짓는 값
표 벤치마크 툴의 인자 값
- allocThreads ’-1‘ NUMA friendly
- numParts zonePerParts Mem-bound
- flopScale Cache friendly
HPL
○
- HPL - . HPL
mpi Linpack(
) .
- HPL Top500
MPI BLAS, CBLAS, ATLAS, C, Fortran
.
- HPL MPI Linpack(
) . Linpack
BLAS n
Ax=B n by n+1 (coefficient matrix) LU (LU factorization) .
(Floating-point) .
- HPL
N P, Q NB .
옵션 설 명 옵션 설 명 옵션 설 명
N Problem size Pmap Process mapping Bcasts Panel broadcasting method
NB Blocking factor threshold for matrix validity test Pfacts Panel factorization method P Rows in process grid Ndiv Panels in recursion L1, U to store triangle of panel Q Columns in process grid Nbmin Recursion stopping criteria Align Memory alignment
Depth Lookahead depth Swap Swap algorithm
표 6. HPL 벤치마크 옵션
그림 25. HPL 행렬 연산의 벤치마크 옵션
그림 26. LU factorization을 통한 연립방정식 해
- N
80% . (double precision)
8Byte
.
- HPL Rmax LINPACK Flops ,
Rpeak , , factor
Flops . Rmax
. Rmax Rpeak
OS .
CPU .
(Hypervisor)
, (affinity) (bare machine)
.
- (Rpeak) .
Theoretical Performance(Rpeak) = Number of cores x
Floating point instructions per clock cycle x Clock frequency
Gaussian
○
- Gaussian( ) ,
. , , , ,
. , Gaussian Linda
- Gaussian Gaussian
( ) test1152.com) CPU
- Gaussian
GAUSS_PDEF GAUSS_MDEF Gaussian %NProcShared
%Mem , %NProcShared %Mem
그림 27. Gaussian을 사용하여 산출된 수소화물의 결합 엔탈피 및 정전기 전위 그래프
export g16root="/apps/applications/G16/g16.b01"
export g16BASIS=${g16root}/basis export GAUSS_EXEDIR=${g16root}
export GAUSS_LIBDIR=${g16root}
export GAUSS_ARCHDIR=${g16root}/arch
export LD_LIBRARY_PATH="${g16root}:${LD_LIBRARY_PATH}"
export PATH="${g16root}:${PATH}"
export GAUSS_SCRDIR="/mnt/ram_disk/tmp export GAUSS_MDEF="200gb
ncpus=`grep -c processor /proc/cpuinfo`
export OMP_THREAD_LIMIT=$ncpus export MP_BIND=yes
export MP_BLIST="`seq -s , 0 $((ncpus-1))`"
for np in 20 40 60 80 ; do
export OMP_NUM_THREADS=$np export GAUSS_PDEF=$np
DATE=`date +%Y-%m-%d-%H:%M:%S`
INPUT=test1152.com
PREFIX=`echo $INPUT | cut -d . -f 1`
/usr/bin/time --format="\nMax mem:%M kilobytes\n" g16 $INPUT mv ${PREFIX}.log ${PREFIX}_NP:${np}_${DATE}.log
done
그림 28. TidalScale 단일가상서버에서 Gaussian 성능시험 스크립트 예제
2.4.2. 데이터 분석 성능 시험
TidalScal vSMP R
○
○
4-way
R Robert Gentleman and Ross Ihaka
○
. R
Development Core Team . R
‘ R’ 2015
R 3.5.3 R Open 3.5.3
, ,
구분 벤치마크 프로그램 테스트 방법
데이터 분석 성능
R 벤치마크 프로그램 데이터 크기와 비례하여 :
메 모리를 요구하는 메모리 데이터 분석 프로그램
베어메탈 물리 서버 대
1) ( ) (1 ) v.s.
단일가상서버
(vSMP/Tidalscale)
베어메탈서버 대비 오버헤드 측정 베어메탈서버 대
2) 4-way CPU (1 ) v.s.
단일가상서버(2-way CPU 물리서버 대2 ) 오버헤드 및 성능 확장성 비교
3) 단일가상서버(2-way CPU 물리서버 대4 ) 성능 확장성 비교
표 7. HPC 성능시험 벤치마크 프로그램 및 테스트 방법
○ ,
/ HPC R
- MPI /
- /
-
○
HPC TidalScale vSMP
그림 29 단일 가상화 서비스 플랫폼 활용 사례 .
3. 벤치마크 테스트베드 구축 3.1. TidalScale 테스트베드 구축
TidalScale , Waverunner
○
, Work , Guest OS , OS
그림 30. TidalScale 테스트베드 구성도
-
Guest/Control/PXE • : 1GbE (Arista 7048T ) • Interconnect : 25GbE (Arista 7160 48Y ),
(MTU=9216 or 9000)
Storage • : 10GbE (Arista 7050T )
그림 31. TidalScale 테스트베드 네트워크 구성
• FreeBSD 11.2 TidalScale WaveRunner v3.0 USB ZFS
⁕ 14TB SATA 8 RAIDZ2(Dobule Parity,
RAID6) ZFS (Pool) , I/O 480GB SSD
2 Write/Read
• Waverunner External/Guest/Control/PXE/Storage
DHCP, IP , DNS
구분 사양
Model Dell EMC R740xd
CPU Intel Xeon Skylake Gold 6136 3.0GHz * 2 EA
Mem DDR4 256GB (32GB * 8EA)
DISK DISK1 : SATA HDD 14TB * 8 EA DISK2 : SATA SSD 480GB * 2 EA
NIC NIC1 : Onboard Broadcom 5720 1Gb * 4 Port NIC2 : Intel X520 10Gb SFP+ * 2 Port
NIC3 : Intel X540 10Gb Base-T * 2 Port 표 8. Waverunner 관리 서버 사양
그림 32. Waverunner 관리 서버 네트워크 포트 구성
Name zroot
RAID RAIDZ2 (Double Parity, RAID6)
Disks 14TB * 8 EA
Write Cache 480GB SSD 1 EA
Read Cache 480GB SSD 1 EA
ashift 12 (4k Sector)
Volblocksize 4096 (4k)
그림 33. Waverunner 관리 서버 로컬 ZFS 스토리지 구성
NAME USED AVAIL REFER MOUNTPOINT
zroot 19.3G 69.5T 188K /zroot
zroot/ROOT 1.35G 69.5T 188K none
zroot/ROOT/default 1.35G 69.5T 1.35G /
zroot/exports 439M 69.5T 205K /exports
zroot/exports/iso 188K 69.5T 188K /exports/iso
zroot/exports/tidalpods 438M 69.5T 205K /exports/tidalpods
zroot/exports/tidalpods/00858467-4512-4e09-a2c7-f0549d14c70b-cen 1.27M 69.5T 435M /exports/tidalpods/00858467-4512-4e09-a2c7-f05 49d14c70b-cen
zroot/exports/tidalpods/3992259e-af86-4d04-9fb0-73d364b6b39a-ubu 1.21M 69.5T 435M /exports/tidalpods/3992259e-af86-4d04-9fb0-73d 364b6b39a-ubu
zroot/exports/tidalpods/default 436M 69.5T 435M /exports/tidalpods/default
zroot/tmp 285M 69.5T 285M /tmp
zroot/usr 375K 69.5T 188K /usr
zroot/usr/home 188K 69.5T 188K /usr/home
zroot/var 9.99G 69.5T 188K /var
zroot/var/audit 188K 69.5T 188K /var/audit
zroot/var/crash 188K 69.5T 188K /var/crash
zroot/var/db 19.9M 69.5T 5.64M /var/db
zroot/var/db/postgres 14.2M 69.5T 14.2M /var/db/postgres
zroot/var/log 2.67M 69.5T 2.67M /var/log
zroot/var/mail 188K 69.5T 188K /var/mail
zroot/var/tidalscale 9.97G 69.5T 17.9M /var/tidalscale
zroot/var/tidalscale/disk 9.95G 69.5T 9.95G /var/tidalscale/disk
zroot/var/tmp 188K 69.5T 188K /var/tmp
zroot/zvols 7.26G 69.5T 188K /zroot/zvols
zroot/zvols/defaultcentos 2.73G 69.5T 2.73G -
zroot/zvols/defaultubuntu 4.53G 69.5T 4.53G -
표 9. Waverunner 관리 서버 로컬 ZFS 데이터셋 리스트
- Work
• Boot mode BIOS , Virtualization(VT-X, VT-D)
Hyper Threading enable, PXE PXE boot
• IPMI DHCP username password
Waverunner • Work 4 TidalPool
⁕ Work BMC Waverunner DHCP IP
,
Tidalpod • Guest OS CentOS 7.4
TidalScale• Waverunner GUI CLI 2
. GUI , CLI
.
- TidalPod(SDS) TidalPod work
• Waverunner GUI SSH CLI
TidalPool KISTI-Pool TidalPod centos-master • TidalPod(centos-master)
TidalPool(KISTI-Pool) Work 4
구분 사양
Model Dell EMC R740
CPU Intel Xeon 6136 * 2 EA RAM DDR4 256GB (32GB * 8EA) DISK DISK1 : SATA SSD 480GB * 2 EA
NIC NIC1 : Onboard Broadcom 5720 1Gb * 4 Port NIC2 : Broadcom 57414 25Gb * 2 Port
NIC3 : Intel X540 10Gb Base-T * 2 Port 표 10. Work 노드 사양
그림 34. Work 노드 네트워크 포트 구성
그림 35. TidalPod centos-master 구성
그림 36. TidalPod에서 Work 노드 구성
- TidalPod(SDS)
• TidalPod CPU Pod
三 SDS SETTINGS key Value
.
, . CPUs
TidalPod CPU , Memory TidalPod
Work .
그림 37. TidalPod 설정 변경
- TidalPod Guest OS
GUI • CLI TidalPod(SDS) Power on
, Guest OS CentOS Linux 7.4 .
Guest OS• Guest IP Waverunner SSH
Guest OS
그림 38 단일가상서버 위에서 구동된 . Guest OS에 SSH 터미널 접속을 통해 htop을 실행한 화면
3.2. vSMP 테스트베드 구축
○ ScaleMP vSMP PXE
PXE boot vSMP vSMP
Guest OS
구분 사양
Model Dell EMC R640
CPU Intel Xeon SKL Gold 6140 2.3GHz 18 cores 2ea
RAM DDR4 192GB (16GB * 12EA)
DISK DISK1 : SATA SSD 300GB 1ea
Network NIC : 1GbE
HCA : IB 4x FDR
표 11. vSMP 물리노드 사양
- PXE
• vSMP
USB vSMP
PXE
그림 39. vSMP 테스트베드 구성도
ScaleMP• CSUM
vsmp installer ScaleMP
.
그림 40. vSMP installer 설치 화면
그림 41. vSMP 라이센스 서버 구성 화면
primary • secondary ( ) vSMP
그림 42. vSMP 이미지 생성
• vSMP /var/lib/tftpboot/vsmp /var/lib/tftpboot/pxelinux.cfg PXE boot
※ /etc/dhcp/dhcpd.conf DHCP
그림 43. PXE boot 설정 구성 화면
- vSMP Guest OS
PXE boot• vSMP vSMP
• CentOS 7.4
그림 44. vSMP 가상머신 구동 및 Guest OS 부팅
vsmp • CentOS , ,
, , vsmppp(vSMP
Productivity Pack)
그림 45. GuestOS에서 vsmppp 설치 파일 및 설치 후 디렉터리 리스트
그림 46 가상머신 및 . GuestOS에서 프로세서 및 메모리 구성 현황
․
4.1. 사용 편의성
○ GUI, CLI , ,
- TidalScale WaveRunner , CLI GUI ScaleMP
CLI
- TidalScale ScaleMP ScaleMP
기능 항목 TidalScale ScaleMP
웹 GUI
테스트베드
WaveRunner (KISTI )
CLI
매뉴얼 교육
프로그램 (Training Courses)
표 12. TidalScale vs ScaleMP (사용 편의성)
4.2. 연동 유연성
○- TidalScale ScaleMP IPMI, PXE
. ScaleMP Bright Cluster Manager, IBM Platform, Isight CMU, Rocks, XCAT
- TidalScale RESTful API
기능 항목 TidalScale ScaleMP IPMI
PXE 클러스터
관리 플랫폼
Bright Cluster Manager, IBM Platform, Insight CMU, Rocks, XCAT RESTful
API
표 13. TidalScale vs ScaleMP (연동 유연성)
4.3. 운영 용이성
, , ,
○
- TidalScale
- TidalScale ScaleMP TidalScale
7 43 ScaleMP 6 55 5
- TidalScale 20
기능 항목 TidalScale ScaleMP
운영 관리 인터페이
스
배포
자동화 툴 (WaveRunner Console) (USB 메모리 혹은 PXE boot을 통한 이미지
배포 환경을 직접 설치 구성해야 함)
배포 시간 측정사례
( )
분 초 전체 분 초 서버
7 43 ( ), 3 47 (
파워온~DHCP 서버 접속 전), 3분
초 서버 접속 후 부팅 후
56 (DHCP ~ OS
로그인 프롬프트 출력)
분 초 전체 분 초 서버
6 55 ( ), 3 17 (
파워온~DHCP 서버 접속 전) 3분
초 서버 접속 후 부팅 후
38 (DHCP ~ OS
로그인 프롬프트 출력) 표 14 운영 용이성.
Inter-connect , InfiniBand , vCPU/Memory Page ,
○
, HPC Guest OS
- TidalScale 25GbE ScaleMP 400GbE
InfiniBand
- TidalScale vCPU/Memory Page Migration 6 sμ
- TidalScale
vCPU Memory ,
ScaleMP
- ScaleMP TidalScale HPC Guest OS
기능 항목 TidalScale ScaleMP
Inter-connect 성능 Max.
25Gb 이더넷
( )
400Gb
구성 시 (IB EDR Multi-Rail ) 지원
InfiniBand vCPU/Memory
Page Migration (6 s)
애플리케이션 워크로드 특성을
반영한 성능 최적화 기능
하이퍼커널에서 머신러닝 기반 학습을 통해 (
및 자동 마이그레이션
vCPU Memory )
프로그램 실행과정에서 에서
( ScaleMP
제공하는 애플케이션 워크로드 별 실행 가이드라인에 따라 사용자가 직접 최적화) 운영
HPC
환경에 적합한 튜닝 Guest OS
표 15 성능 최적화.
4.5. 결함 허용성
○ Fail-over Interconnect
- TidalScale ScaleMP
Fail-over
- ScaleMP InfiniBand inter-connect 4
기능 항목 TidalScale ScaleMP
노드 장애 자동 Fail-over
네트워크 이중화 Interconnect
(Backplane Redundancy)
표 16 결함 허용성.
4.6. 확장 가능성
○ , , vCPU , Backplane
- TidalScale ScaleMP 128 ScaleMP
VM 96TB 384
- ScaleMP 4 HCA Backplane
기능 항목 TidalScale ScaleMP
노드 추가 가능
여부 (Max. 128개 노드) (Max. 128개 노드)
메모리 확장 가능
여부 (+) (Max. 96TB/VM)
추가 가능 vCPU
여부 (+) (Max. 384 cores/VM)
확장 Backplane
가능 여부 증가로
(HCA VM
증가 Bandwidth )
(Max. 4 HCAs) 표 17 확장 가능성 .
5.1. 성능 시험 환경
○
(TidalScale/vSMP) 2-way CPU
1
○
4-way CPU ( : Bigmem02) 1
2-way CPU 2 (TidalScale/vSMP)
○
2-way CPU 4 (TidalScale/vSMP)
성능시험
환경 구분 사양 및 구성도
TidalScale 단일가상서버
노드 구성
1 : 20 CPU cores(Intel Xeon Skylake 6136 3.0 GHz), 200GB Mem 노드 구성
2 : 40 CPU cores(Intel Xeon Skylake 6136 3.0 GHz), 402GB Mem 노드 구성
4 : 80 CPU cores(Intel Xeon Skylake 6136 3.0 GHz), 768GB Mem
vSMP 단일가상서버
1
노드 구성 : 36 CPU cores (Intel Xeon Skylake Gold 6140 2.3GHz), 167GB Mem 노드 구성 2 : 72 CPU cores (Intel Xeon Skylake Gold 6140 2.3GHz), 334GB Mem 노드 구성 4 : 144 CPU cores (Intel Xeon Skylake Gold 6140 2.3GHz), 667GB Mem
표 18 기존 단일 가상화 서비스 플랫폼 성능 시험 환경.
대용량 공유메모리
물리서버 (Bigmem02)
56 CPU cores(Intel Xeon Broadwell E7-4830 V4 2.0GHZ), 768GB Mem
5.2.1. STREAM
○ STREAM (DSTREAM_ARRAY_SIZE)
. , STREAM
array 4
1 ( ) . , array
64 x86 64
"-mcmodel = medium" 64
. array 100,000,000
.
# icc -o stream.exe stream.c -mcmodel medium shared-intel DSTREAM_ARRAY_SIZE=100,000,000 – – -DOFFSET=0 -DNTIMES=10 -qopenmp -qopt-streaming-stores always
STREAM TidalScale
○
vSMP TidalScale Bigmem02
359GB/sec(2 ) 718GB/sec(4 )
. NUMA-friendly
그림 47. 2노드 단일가상서버 및 4-way 물리서버에서 STREAM 테스트 결과
그림 48. 4노드 단일가상서버에서 STREAM 테스트 결과
CLOMP 5 OpenMP
○
5 - Taget input : reference
- NUMA friendly : allocThreads ‘-1’ CPU
NUMA CPU
Memory
- Cache friendly : flopScale ‘1000’
Cache
- Mem-bound input : Part Zone Mem-bound
OpenMP
- Mem-bound NUMA friendly : Mem-bound allocThreads CPU NUMA friendly
(Speedup) : ‘ ’ / ‘
○
’, OpenMP
Test types numThreads allocThreads numParts zonesPerParts zoneSize flopScale timeScale Target
input -1 1 $maxThreads
*iterationCnts 100 32 1 100
NUMA
friendly -1 -1 $maxThreads
*iterationCnts 100 32 1 100
Cache
friendly -1 1 $maxThreads
*iterationCnts 1 32 1000 100
Mem-bound
input -1 1 $maxThreads
*iterationCnts $zonesPerParts $zonesSize 1 100
Mem-bound NUMA
friendly -1 -1 $maxThreads
*iterationCnts $zonesPerParts $zonesSize 1 100
표 19. 벤치마크 테스트 케이스
CPU 56core, Memory 286GB ( (bigmem02) )
○
- 2 vSMP CPU 72core, Memory 384GB
- (bigmem02) maxThreads
‘56’ , iterationCnts ‘10’
2• TidalScale ‘40’ ,
CPU 40core
- Mem-bound 2 2 vSMP 2
.
Total Memory Size = numParts * zonesPerPart * zoneSize + sizeof(Part) * • numParts
286GB = 560 * 512 * 1000000 + 72 * 560 • ← (bigmem02)
• 286GB = 560 * 20480 * 25000 + 72 * 560 ← vSMP
Test types numThreads allocThreads numParts zonesPerParts zoneSize flopScale timeScale Target
input -1 1 560 100 32 1 100
NUMA
friendly -1 -1 560 100 32 1 100
Cache
friendly -1 1 560 1 32 1000 100
Mem-bound (286GB)
input 1
-1 1 560 512 1000000 1 100
Mem-bound (286GB)
NUMA friendly 1
-1 -1 560 512 1000000 1 100
Mem-bound (286GB)
input 2
-1 1 560 20480 25000 1 100
Mem-bound (286GB)
NUMA friendly 2
-1 -1 560 20480 25000 1 100
표 20. 벤치마크 테스트 케이스
TidalScale • (Bigmem02)
OpenMP , zoneSize zonesPerParts
( 6, 7) vSMP OpenMP .
그림 49. 2노드 단일가상서버 및 4-way 물리서버 CLOMP 테스트 결과
CPU 80core, Memory 573GB (4 )
○
- 4 vSMP CPU 144core, Memory 768GB
- 4 TidalScale maxThreads TidalScale
‘80’ iterationCnts ‘10’
- Mem-bound 2 vSMP 3
573GB = 800 * 512 * 1,400,000 + 72 * 560 •
• 573GB = 800 * 20,480 * 25,000 + 72 * 560 ←vSMP
Test types numThreads allocThreads numParts zonesPerParts zoneSize flopScale timeScale
Target input -1 1 800 100 32 1 100
NUMA friendly -1 -1 800 100 32 1 100
Cache friendly -1 1 800 1 32 1000 100
Mem-bound(573GB)
input 1 -1 1 800 512 140000
0 1 100
Mem-bound(573GB)
NUMA friendly 1 -1 -1 800 512 140000
0 1 100
Mem-bound(573GB)
input 2 -1 1 800 20480 25000 1 100
Mem-bound(573GB)
NUMA friendly 2 -1 -1 800 20480 25000 1 100
표 21. 벤치마크 테스트 케이스
-
• vSMP TidalScale OpenMP
• TidalScale
. ( )
vCPU Memory .
그림 50. 4노드 단일가상서버 CLOMP 테스트 결과
2 Tidalscale HPL intel
○
18.0.2 (mpi) Intel mpi 18.0.2
. CPU HPL 24
40% 40 20% . HPL CPU
CPU (Locality)
. ( )
. , 4
TidalScale 20 10%
40 .
- 2 : 24 CPU cores(Intel Xeon Skylake 6136 3.0 GHz), 256GB • : 3.0GHz * 24cores * 32fpu = 2,304GFlops
• : 925.2063 GFlops ( 40.15%)
CPU frequency: 3.562 GHz Number of CPUs: 24
Number of cores: 24 Number of threads: 24
Maximum memory requested that can be used=16200901024, at the size=45000 Performance Summary (GFlops)
Size LDA Align. Average Maximal 20000 20016 4 915.0549 916.7797 22000 22008 4 899.4967 925.2063 25000 25000 4 875.9457 876.4378 Residual checks PASSED
End of tests
- 2 : 40 CPU cores(Intel Xeon Skylake 6136 3.0 GHz), 402GB • : 3.0GHz * 40cores * 32fpu = 3,840GFlops
• : 738.8297 GFlops ( 19.24%)
CPU frequency: 3.562 GHz Number of CPUs: 40
Number of cores: 40 Number of threads: 40
Maximum memory requested that can be used=16200901024, at the size=45000 Performance Summary (GFlops)
Size LDA Align. Average Maximal 27000 27000 4 732.4989 732.4989 30000 30000 1 738.8297 738.8297 35000 35000 1 731.9056 731.9056 Residual checks PASSED
End of tests
그림 51. TidalScale 단일가상서버에서 HPL 테스트 결과
○ vSMP HPL intel 18.0.2
(mpi) ScaleMP mpich2 .
42~43%
- 2 : 72 CPU cores(Intel Xeon Skylake Gold 6140 2.3GHz), 384GB Mem • : 2.3GHz * 72cores * 32fpu = 5,299.2 GFlops
• : 2.323 GFlops ( 43.84%)
- 4 : 144 CPU cores(Intel Xeon Skylake Gold 6140 2.3GHz), 667GB Mem • : 2.3GHz * 144cores * 32fpu = 10,598.4 GFlops
• : GFlops ( %)
그림 52. vSMP 단일가상서버에서 HPL 테스트 결과
Bigmem02 4 Xeon E7-4870 CPU(2.0GHz) DDR4 2,400MHz
○
768GB . HPL
intel 18.0.2 (mpi) Intel mpi 18.0.2
. 80%
- Intel Xeon CPU E7-4830 v4 2.0GHz, DDR4 2,400MHz 768GB(32GBx24ea) • : 2.0GHz * 56cores * 16fpu = 1,792 GFlops
• : 1,450 GFlops ( 80.91%)
====================================================================================
T/V N NB P Q Time Gflops Cores Rate
--- WR00L2L2 284723 184 7 8 10613.81 1.450e+03 (56 cores) 80.91%
그림 53. Bigmem02에서 HPL 테스트 결과
․
5.2.4. Gaussian
Gaussian
○
test1152.com 4
.
vSMP Gaussian
○
(GAUSS_SCRDIR), (GAUSS_MDEF),
(OMP_NUM_THREADS) CPU (GAUSS_PDEF)
Gaussian . , TidalScale
.
#!/bin/bash
export LD_PRELOAD=/opt/ScaleMP/libvsmpclib/lib64/libvsmpclib.so export PATH=/opt/ScaleMP/numabind/bin:${PATH}
export g16root="/apps/applications/G16/g16.b01"
export g16BASIS=${g16root}/basis export GAUSS_EXEDIR=${g16root}
export GAUSS_LIBDIR=${g16root}
export GAUSS_ARCHDIR=${g16root}/arch
export LD_LIBRARY_PATH="${g16root}:${LD_LIBRARY_PATH}"
export PATH="${g16root}:${PATH}"
export GAUSS_SCRDIR="/scratch/wjnadia/vSMP/gaussain/tmp"
export GAUSS_MDEF="200gb
ncpus=`grep -c processor /proc/cpuinfo`
export OMP_THREAD_LIMIT=$ncpus export MP_BIND=yes
export MP_BLIST="`seq -s , 0 $((ncpus-1))`"
for np in 20 40 60 80 ; do
export OMP_NUM_THREADS=$np export GAUSS_PDEF=$np
DATE=`date +%Y-%m-%d-%H:%M:%S`
INPUT=test1152.com
PREFIX=`echo $INPUT | cut -d . -f 1`
/usr/bin/time --format="\nMax mem:%M kilobytes\n" g16 $INPUT mv ${PREFIX}.log ${PREFIX}_NP:${np}_${DATE}.log
done
그림 54. vSMP 단일가상서버에서 Gaussian 성능시험 스크립트 예제
(TidalScale/vSMP) .
TidalScale 20, vSMP 36 (MDEF) 100GB
TidalScale •
Gaussian
vSMP • 7.8%
[Elapsed Time : second]
① TidalScale
쓰레드수
구분 20
단일가상서버 노드
TidalScale (1 ) 990.2
베어메탈서버 노드(1 ) 16.8
오버헤드 5,794%
② vSMP
쓰레드수
구분 36
단일가상서버 노드
vSMP (1 ) 16.84
베어메탈서버 노드(1 ) 15.62
오버헤드 7.8%
표 22. 1노드 베어메탈서버 대비 노드 단일가상서버의 1 Gaussian 실행 오버헤드
- 2 (TidalScale/vSMP)
(bigmem02) Gaussian ( (MDEF) 200GB )
TidalScale •
vSMP • 32
40 TidalScale
(bigmem02)
• (bigmem02)
그림 55. 2노드 단일가상서버 및 대용량공유메모리 물리서버에서 Gaussian 테스트 결과
- 4 (TidalScale/vSMP) Gaussian
( (MDEF) 200GB )
4• TidalScale 2
, 40
. TidalScale
, 20
• 4 vSMP 40
80 .
그림 56. 4노드 단일가상서버에서 Gaussian 테스트 결과
5.3.1. R 벤치마크 프로그램
R CMS(Centers for Medicare & Medicaid
○
Services) “CMS 2008-2010 Data Entrepreneurs’ Synthetic
Public Use File” , GAM /GLM , ,
, K-
-
• 128GB , 256GB(2 ), 512GB( 4
)
TidalScale• , RAM DISK ,
-
• : Revolution R Open 8.0.3
• : Data Entrepeneurs Synthetic Public Use Data Set ( )
○
- 158GB (2 )
Elapsed time(sec)
구분 Tidalscale vSMP Bigmem02
GAM model 1,234.33 348.17 202.00 GLM model 116.75 125.72 91.68 Decision tree 321.75 373.09 295.68 Random forest 6,939.80 8,246.75 5,674.54 K nearest neighbors 811.08 741.24 714.09 Total 9,423.71 9,834.97 6,977.99
표 23. R을 이용한 데이터 분석 성능테스트 (2노드 단일가상서버)
- 2,000.00 4,000.00 6,000.00 8,000.00 10,000.00 12,000.00
GAM model GLM model Decision tree Random forest K nearest neighbors Total
R 테스트 결과 (2노드)
Tidalscale vSMP Bigmem02 Elapsed time(sec)
그림 57. R를 이용한 데이터 분석 성능테스트 (2노드 단일가상서버)
• Tidalscale vSMP
, Tidalscale Random Forest , vSMP GAM
- 318GB (4 )
2• Random Forest vSMP
, Tidalscale GAM/GLM
vSMP
구분 Tidalscale vSMP
GAM model 6,171.18 1,308.57 GLM model 3,870.75 348.63 Decision tree 942.40 779.31 Random forest 14,433.74 17,989.67 K nearest neighbors 3,507.69 2,693.95
Total 28,925.75 23,120.13
표 24. R을 이용한 데이터 분석 성능테스트 (4노드 단일가상서버)
- 5,000.00 10,000.00 15,000.00 20,000.00 25,000.00 30,000.00 35,000.00
GAM model GLM model Decision tree Random forest K nearest neighbors
Total Tidalscale vSMP
그림 58. R을 이용한 데이터 분석 성능테스트 (4노드 단일가상서버)
○
- R 1 1
TidalScale 13.1% 71.7% vSMP
0.8% 5.6%
[Elapsed Time : second]
① TidalScale
구분 TidalScale
단일가상서버 노드(1 ) 베어메탈서버
노드
(1 ) 오버헤드
GAM model 72.25초 42.07초 71.7%
GLM model 38.67초 24.54초 57.6%
Decision tree 68.35초 47.73초 43.2%
Random forest 1,010.94초 893.86초 13.1%
K nearest neighbors 95.75초 63.58초 50.6%
② vSMP
구분 vSMP
단일가상서버 노드(1 ) 베어메탈서버
노드
(1 ) 오버헤드
GAM model 43.25초 40.95초 5.6%
GLM model 24.01초 23.67초 1.4%
Decision tree 47.82초 47.42초 0.8%
Random forest 876.27초 843.70초 3.9%
K nearest neighbors 65.91초 63.09초 4.5%
표 25. 1노드 베어메탈서버 대비 노드 단일가상서버의 1 R 벤치마크 프로그램 실행 오버헤드
6. 활용 사례 발굴
6.1. NGS 기반 농생명 유전체 조립
○
-
- ·
- , R&D
-
※ 거대유전체 조립을 위해서는 초고가의 고성능·고용량의 전산 인프라가 필수적임
그림 59 유전체 조립 과정 .
○
- 3 NGS PacBio
.
• GenBank
https://sra-pub-src-2.s3.amazonaws.com/SRR10188372/m64001_190823_225137.Q20.fastq.gz.1 https://sra-pub-src-1.s3.amazonaws.com/SRR9969479/m64011_190430_000122.Q20.fastq.1 https://sra-pub-src-1.s3.amazonaws.com/SRR9969480/m54119U_190503_125238.Q20.fastq.1 https://sra-pub-src-1.s3.amazonaws.com/SRR9969481/m64011_190501_053146.Q20.fastq.1
- Canu (https://github.com
/marbl/canu)
-pacbio-raw *m640*.fastq.1 > canu_rice.out 2> canu_rice.err
○
- PacBio TidalScale Canu
.
시스템 Run time Memory usage
단일가상서버 TidalScale
노드 구성
(4 ) 8 days 768 GB
(40 CPU cores) 표 26. Canu를 이용한 벼 유전체 조립 결과
- TidalScale Canu
. Canu CPU
TidalScale
. , vSMP Java
.
- ,
.
6.2. 유전체 다중서열정렬
○
- (MSA: Multiple Sequence Alignment)
, ,
, (deleteriousness) ,
,
.
- ,
-
vSMP .
○
- CLUSTALW, MUSCLE, T-Coffee
MAFFT(Multiple Alignment using Fast Fourier Transform) .
MAFFT FFT
.
- vSMP MAFFT
MAFFT “globalpair”
“nomemsave” .
$ mafft --globalpair thread 140 --nomemsave [input] > [output]—
그림 60. MSA을 통한 진화적 상관관계 분석 예시
- MAFFT TidalScale
16S rRNA .
16S.B.ALL(27,643) 16S.T(7,350) vSMP
.
Dataset Gene Taxonomic Range Number of Taxa
16S.B.ALL 16S rRNA Bacteria 27,643
16S.T 16S rRNA
Three domains of life + mitochondria
+ chloroplast
7,350 표 27. MAFFT를 사용한 16S rRNA 성능 검증 데이터셋
○
- 16S rRNA MAFFT
.
Dataset Run time Memory usage Comment
16S.B.ALL ~3d 2h 582.6 GB
코어 144 CPU
16S.T ~20h 162.9 GB
표 28. MAFFT를 사용한 16S rRNA 성능 검증 결과
- MAFFT 16S rRNA vSMP
.
MAFFT CPU
vSMP .
7. 결론
○
, ,
“
○
”
TidalScale vSMP
○
4
TidlalScale vSMP , ,
○
, , ,
.
- TidalScale WaveRunner CLI GUI
vSMP
.
- TidalScale vCPU
, vSMP GuestOS
, , ,
vsmppp(vSMP Productivity Pack) .
- TidalScale vSMP Fail-over
, vSMP InfiniBand inter-connect
4
STREAM, CLOMP, HPL, Gaussian HPC
○
R TidlalScale vSMP
- TidalScale
Gaussian , vSMP 10%
- TidalScale vSMP HPC
- vSMP HPC , TidalScale HPC
SAP HANA In-memory R
○
CPU 2
[1] TidalScale, https://www.tidalscale.com/
[2] TidalScale, “7 Trends driving the industry to software-defined servers”, 2018 [3] Sang Gu Kim, TidalScale, “TidalScale Overview”, 2019
[4] TidalScale, “TidalScale use Case”, 2019
[5] TidalScale, “User Manual” and “Best Practices Guide”, 2018
[6] ScaleMP, “Best practice for running applications with vSMP”, 2012 [7] ScaleMP, https://www.scalemp.com/technology/spec/
[8] ScaleMP, “ScaleMP White Paper”, 2013 [9] ScaleMP, “vSMP Quick Start Guide”, 2018
[10] MOSIX, “The MOSIX Cluster Management System for Parallel Computing on Linux Clusters and Multi-Cluster Private Clouds”, 2018
[11] MOSIX, http://www.mosix.cs.huji.ac.il/index.html [12] VCL, http://www.mosix.cs.huji.ac.il/txt_vcl.html
[13] Kerrighed, http://www.kerrighed.org/wiki/index.php/Main_Page
[14] Kerrighed Cluster Status, http://www.kerrighed.org/php/clusterslist.php [15] TidalScale R_benchmark_test, https://github.com/tidalscale/R_benchmark_test [16] Greg Bronevetsky, John C. Gyllenhaal, Bronis R. de Supinski, “CLOMP:
Accurately Characterizing OpenMP Application Overheads”, International Journal of Parallel Programming, June 2009
[17] PETITET, Antoine. HPL-a portable implementation of the high-performance Linpack benchmark for distributed-memory computers. http://www.netlib.org/benchmark/hpl/, 2004.
[18] Goto, Kazushige, and K. Milfeld. "GotoBLAS2.", https://www.tacc.utexas.edu/tacc-projects/gotoblas2, 2011.
[19] Dunlop, Dominic, Sébastien Varrette, and Pascal Bouvry. "On the use of a genetic algorithm in high performance computer benchmark tuning", Parallel Processing and Applied Mathematics. Springer Berlin Heidelberg pp. 102-114, 2010 [20] Li S, Raman K, Sasanka R., “Enhancing application performance using heterogeneous memory architectures on a many-core platform,” in High Performance Computing & Simulation (HPCS), pp. 1035-1042, 2016.
[21] Tanabe, N., & Endo, T., “Exhaustive evaluation of memory-latency sensitivity on manycore processors with large cache,” in Proceedings of the 2nd International Conference on High Performance Compilation, Computing and Communications, pp. 27-34, 2018.
[22] Gropp W, Lusk E, Skjellum, A, Using MPI: portable parallel programming with
Parallel Computing: pp. 95 101, 2011, Online: https://doi.org/10.1007/978-0-387-09766-4_85. – [24] John D, McCalpin D STREAM: Sustainable memory bandwidth in high performance computers, 2015. Online: http://www.cs.virginia.edu/stream.
[25] G. Pfister, An Introduction to the InfiniBand Architecture (http://www.infinibandta.org/), IEEE Press, 2001.
[26] MCLAY, Robert, et al. Best practices for the deployment and management of production hpc clusters. In: State of the Practice Reports. ACM, 2011. p.
9LUSZCZEK, Piotr, et al. Introduction to the HPC challenge benchmark suite.
Lawrence Berkeley National Laboratory, 2005.
[27] Liu, K., Linder, C. R. & Warnow, T. Multiple sequence alignment: a major challenge to large-scale phylogenetics. PLoS Currents 2, RRN1198 17 (2011).–
[28] Linder, C. R., Suri, R., Liu, K. & Warnow, T. Benchmark datasets and software for developing and testing methods for large-scale multiple sequence alignment and phylogenetic inference. PLoS Currents 2, RRN1195 7 (2010). –
[29] Kuraku, S., Zmasek, C. M., Nishimura, O. & Katoh, K. aLeaves facilitates on-demand exploration of metazoan gene family trees on MAFFT sequence alignment server with enhanced interactivity. Nucleic Acids Research 41, W22 W28 – (2013).
[30] Koren S, Walenz BP, Berlin K, Miller JR, Phillippy AM. Canu: scalable and accurate long-read assembly via adaptive k-mer weighting and repeat separation.
Genome Research. (2017).
이 문서의 내용을 임의로 전재 및 복사할 수 없으며 이 문서의 내용을 부분적으로라도 이용 또는 전재할 ,
경우 반드시 저자인 한국과학기술정보연구원의 서면 허락을 취득하여야 한다, .