단일 가상화 서비스 플랫폼 벤치마크 테스트베드 구축 및 시험

전체 글

(1)

단일 가상화 서비스 플랫폼 벤치마크 테스트베드 구축 및 시험

2020.06.01.

우준 권민우 명훈주 윤준원 이국화 한영만 , , , , ,

한국과학기술정보연구원

(2)
(3)

개요

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

(4)

표 차례

< >

표 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

(5)

그림 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

(6)

그림 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

(7)

1.1. 단일 가상화 서비스 플랫폼

, ,

,

- (Inverse Virtualization)

-

- Single System Image

그림 1 소프트웨어 정의 서버를 위한 단일 가상화 서비스 플랫폼 개요.

(8)

그림 2 단일 가상화 서비스 플랫폼 기술개발 개요 및 참여기관 역할 구분.

1.2. 기존 플랫폼 벤치마크

,

.

- -

-

,

,

(9)

그림 3 기존 단일 가상화 서비스 플랫폼의 기능 및 성능 벤치마크.

(10)

2. 기존 플랫폼 벤치마크 계획 2.1. 기존 플랫폼 현황

○ -

,

• :

• :

• :

‘ps’, ‘kill’

• root: NFS

• I/O :

I/O

• IPC :

IPC (inter-process communication)

• IP : IP

IP ( IP

)

-

-

TidalScale HPC MOSIX,

(11)

그림 4 기존 단일 가상화 서비스 플랫폼 출처 위키. ( : -SSI 단일 이미지 클러스터링 플랫폼)

(TidalScale) - TidalScale

TidalScale•

TidalScale•

TidalScale• .

, , , GB

TB

• HyperKernel

.

(12)

. ,

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

(13)

SAP HANA/TPC-H•

그림 7. SAP HANA/TPC-H

R-Predictive Analytics •

그림 8. R-Predictive Analytics

(14)

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%

(15)

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

(16)

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 )

(17)

그림 12 웹 . webmon 모니터링

• VM non-VM VM guest OS

Windows

• , , ,

- MOSIX

그림 13. MOSIX (OpenMOSIX) 아키텍처

(18)

- 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

(19)

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) • –

(20)

그림 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) •

(21)

그림 17. OpenMP Parallelization (Home-Grown OpenMP Code vs.

SGI Altix UV)

Distributed Memory (MPI, HPC Challenge HPL) •

그림 18. MPI HPC Challenge HPL

(22)

- 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

(23)

그림 19. Kerrighed Architecture

- Kerrighed

kDFS (kernel/Kerrighed Distributed File System) •

그림 20. kDFS 아키텍처

(24)

- Kerrighed

• 75 Kerrighed

110 672 cores, RAM 4,096GB

그림 21. Kerrighed Clusters Map

그림 22. Kerrighed Clusters Status

(25)

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

(26)

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 ,

(27)

구분 테스트베드 구성 시 고려 사항

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

(28)

1GbE . Guest OS•

Lustre

• Guest OS TidalScale CentOS

Linuxe 7.4

(29)

-

• GUI, CLI, ,

-

• (IPMI, PXE,

, RESTful API ) -

• , , ,

-

Inter-connect • , InfiniBand , vCPU/Memory Page

, , HPC

Guest OS

-

• VM , 2

Inter-connection

-

• , , vCPU , Backplane (HCA VM

Bandwidth ) ․

(30)

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 테스트 유형

(31)

- 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

(32)

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 행렬 연산의 벤치마크 옵션

(33)

그림 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

(34)

Gaussian

- Gaussian( ) ,

. , , , ,

. , Gaussian Linda

- Gaussian Gaussian

( ) test1152.com) CPU

- Gaussian

GAUSS_PDEF GAUSS_MDEF Gaussian %NProcShared

%Mem , %NProcShared %Mem

그림 27. Gaussian을 사용하여 산출된 수소화물의 결합 엔탈피 및 정전기 전위 그래프

(35)

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 성능시험 스크립트 예제

(36)

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 성능시험 벤치마크 프로그램 및 테스트 방법

(37)

○ ,

/ HPC R

- MPI /

- /

-

HPC TidalScale vSMP

그림 29 단일 가상화 서비스 플랫폼 활용 사례 .

(38)

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 테스트베드 네트워크 구성

(39)

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 관리 서버 네트워크 포트 구성

(40)

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

(41)

⁕ 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 노드 네트워크 포트 구성

(42)

그림 35. TidalPod centos-master 구성

그림 36. TidalPod에서 Work 노드 구성

- TidalPod(SDS)

• TidalPod CPU Pod

三 SDS SETTINGS key Value

.

(43)

, . 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을 실행한 화면

(44)

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 테스트베드 구성도

(45)

ScaleMP• CSUM

vsmp installer ScaleMP

.

그림 40. vSMP installer 설치 화면

그림 41. vSMP 라이센스 서버 구성 화면

(46)

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 설정 구성 화면

(47)

- vSMP Guest OS

PXE boot• vSMP vSMP

• CentOS 7.4

그림 44. vSMP 가상머신 구동 및 Guest OS 부팅

vsmp • CentOS , ,

, , vsmppp(vSMP

Productivity Pack)

그림 45. GuestOS에서 vsmppp 설치 파일 및 설치 후 디렉터리 리스트

(48)

그림 46 가상머신 및 . GuestOS에서 프로세서 및 메모리 구성 현황

(49)

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

(50)

기능 항목 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 운영 용이성.

(51)

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 성능 최적화.

(52)

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 확장 가능성 .

(53)

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 기존 단일 가상화 서비스 플랫폼 성능 시험 환경.

(54)

대용량 공유메모리

물리서버 (Bigmem02)

56 CPU cores(Intel Xeon Broadwell E7-4830 V4 2.0GHZ), 768GB Mem

(55)

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 테스트 결과

(56)

그림 48. 4노드 단일가상서버에서 STREAM 테스트 결과

(57)

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. 벤치마크 테스트 케이스

(58)

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. 벤치마크 테스트 케이스

(59)

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

(60)

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 테스트 결과

(61)

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

(62)

그림 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 테스트 결과

(63)

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 테스트 결과

(64)

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 성능시험 스크립트 예제

(65)

(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)

(66)

그림 55. 2노드 단일가상서버 및 대용량공유메모리 물리서버에서 Gaussian 테스트 결과

- 4 (TidalScale/vSMP) Gaussian

( (MDEF) 200GB )

4• TidalScale 2

, 40

. TidalScale

, 20

• 4 vSMP 40

80 .

그림 56. 4노드 단일가상서버에서 Gaussian 테스트 결과

(67)

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노드 단일가상서버)

(68)

- 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노드 단일가상서버)

(69)

- 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 벤치마크 프로그램 실행 오버헤드

(70)

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)

(71)

-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

.

- ,

.

(72)

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을 통한 진화적 상관관계 분석 예시

(73)

- 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 .

(74)

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

(75)

[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

(76)

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).

(77)
(78)

이 문서의 내용을 임의로 전재 및 복사할 수 없으며 이 문서의 내용을 부분적으로라도 이용 또는 전재할 ,

경우 반드시 저자인 한국과학기술정보연구원의 서면 허락을 취득하여야 한다, .

수치

Updating...

참조

Updating...

관련 주제 :