220 likes | 310 Views
기상연구소 응용 프로그램 (MM5/MPP) 시스템 별 성능 측정 결과 보고. 2004. 8. 4 ㈜ 클루닉스 기술부. 목 차. 테스트 요구 사항 테스트 시스템 환경 테스트 적용 환경 테스트 결과 테스트 진행자 결론 - 첨부 : 테스트 진행 과정 테스트 결과 측정 과정 테스트 진행 시 시스템 모니터링 자료 . 테스트 요구 사항. MM5-MPP 성능 테스트
E N D
기상연구소 응용 프로그램 (MM5/MPP) 시스템 별 성능 측정 결과 보고 2004. 8. 4 ㈜ 클루닉스 기술부
목 차 • 테스트 요구 사항 • 테스트 시스템 환경 • 테스트 적용 환경 • 테스트 결과 • 테스트 진행자 결론 - 첨부 : 테스트 진행 과정 테스트 결과 측정 과정 테스트 진행 시 시스템 모니터링 자료
테스트 요구 사항 • MM5-MPP 성능 테스트 • Linux 환경에서의 MM5/MPP 프로그램을 설치 하고 building하여 생성되는 mm5.mpp 를 실행 했을 경우 수행 시간 측정 • 64bit 시스템 환경에서 MM5/MPP 의 정상 수행 여부 • 테스트 진행 중 시스템 Resource (CPU/Disk/Mem/Net) 의 사용 현황 파악 및 병목 Resource 측정 • Process Architecture별로 테스트 진행 • Opteron AMD64 / Itenium2 / Xeon 시스템 별 테스트 성능 측정 • 각 시스템 환경에 최적한 구성 요소로 테스트 진행 함 ( OS, Compiler )
테스트 시스템 환경 • Opteron AMD 64 시스템 • Opteron AMD 64 Dual Processor • ECC registered Memory 2G • Ultra 320 SCSI 36G • PGI –AMD64 Compiler • Itenium2 IA 64 시스템 • Itenium2 IA 64 Dual Processor • ECC registered Memory 1G • Ultra 320 SCSI 36G • Intel Fortran Compiler ( Itenium2 전용 ) • P-IV (Xeon) IA 32 시스템 • Xeon 2.4G(Hyper Threading) IA 32 Dual Processor • ECC registered Memory 1G • Ultra 320 SCSI 36G • PGI –X86 Compiler
테스트 적용 환경 • MPI 프로그램 환경 • MPI 병렬 프로그램 환경은 LAM-MPI 와 MPICH 두가지 방식으로 테스트를 하였고, 동작 작업 진행 시 LAM-MPI 방식이 10% 정도의 성능향상이 있었음. 추후 테스트 진행은 LAM-MPI 방식으로 진행 • 네트워크 환경 • Gigabit 환경과 100M 환경에서 테스트를 진행함. • 테스트 DATA • MM5 테스트 DATA 는 기본 input2mm5.tar.gz으로 진행함.
테스트 결과 • 수행 프로세스 개수 별 수행 속도 ( 단위 : 분/ 초)
테스트 진행자 결론 -1 • Process 개수를 1개로 하여 mm5.mpp 를 실행했을 경우 opteron 이 가장 우수한 성능을 가지고 있음을 확인함. Process 개수를 늘려 나갈 경우에도 역시 opteron 이 가장 우수한 성능을 나타냄( 앞장의 측정 결과 참조 ) • 프로세스 통신 방식을 Ethernet 방식으로 했을 경우 실제 할당되는 네트워크 대역폭이 20M/b ~30M/b 임. 그러므로 100M Switch 환경이나 1000M Switch 환경의 차이는 크게 없어 보임. Myrinet 의 경우에는 Ethernet 방식과 다른 통신 방식임으로 노드 수가 늘어 날수록 성능 향상 요인이 있음. • 실제 프로세스의 수가 늘어남에 따라 CPU 사용률이 저하 되는것을 확인할 수 있음. 두 가지 요인으로 추측되는데, Cpu 이외의 다른 resource 의 병목으로 인한 경우와 실제 테스트에 사용된 테스트 Domain 의 size 가 작은 것임으로 작업량이 작은 경우일수 있는 가능성이 있다.
테스트 진행자 결론 -2 • Xeon 의 Hyper Threading 기능을 사용 했을 경우 Process 의 수가 작을 경우에만 10%~20% 정도의 성능향상이 있음 process 수가 4개 이상 일 경우에는 오히려 성능이 더 떨어짐. • Xeon 의 4개 프로세스를 사용하여 수행 했을 때가 8개 Hyper Threading 기능을 사용 했을 때 보다 더 성능이 좋은 것을 확인함. • 추측되는 원인으로 Memory sharing 에 의한 메모리 병목 유발과 Process 간 system bus 의 병목 유발을 들 수 있음. • Hyper Threading 기능을 사용할 경우 CPU 사용량이 현저하게 떨어짐. • Multi node 구성 시에는 Xeon Hyper Threading 기능을 사용하지 않는 것을 권장
테스트 진행 과정 -1 • MM5/MPP 설치 MM5/MPP download : http://www.mmm.ucar.edu/mm5/에서 MM5V3와 MPP 다운 # wget ftp://ftp.ucar.edu/mesouser/MM5V3/MM5.TAR.gz # wget ftp://ftp.ucar.edu/mesouser/MM5V3/MPP.TAR.gz # cd /home/clunix # tar xzvf MM5.TAR.gz # cd MM5 # tar xzvf MPP.TAR.gz Configure.user file 수정 , 시스템 환경과 Compile 환경에 맞게 Makefile Option 수정 # cd MPP/RSL/RSL # make linux # cd ../../.. # make mpp
테스트 진행 과정 -2 # make mm5.deck 무사히 컴파일이 되면 /home/clunix/MM5 디렉토리 밑에 mm5.deck 가 생긴다. 이것을 실행한다. # ./mm5.deck 그럼 /home/clunix/MM5/Run 밑에 mmlif 가 생성된다. # cd /home/clunix/MM5/Run MM5 사이트에서 테스트 INPUT DOMAIN DATA 를 다운 받아서 테스트 한다. # wget ftp://ftp.ucar.edu/mesouser/MM5V3/TESTDATA/input2mm5.tar.gz # tar xzvf input2mm5.tar.gz -rw-r--r-- bruyerec/users 1825164 2003-07-01 02:47:46 BDYOUT_DOMAIN1 -rw-r--r-- bruyerec/users 170936 2003-07-01 02:47:46 LOWBDY_DOMAIN1 -rw-r--r-- bruyerec/users 2889044 2003-07-01 02:47:46 MMINPUT_DOMAIN1 -rw-r--r-- bruyerec/users 210980 2003-07-01 07:15:27 TERRAIN_DOMAIN2
테스트 진행 과정 -3 • Mm5.mpp 프로그램 수행 이제 LAM-MPI 를 실행한다. LAM은 일반 계정에서 실행되어져야 한다. # lamboot -v /etc/lamhost ----------------------------------------------- LAM 6.5.9/MPI 2 C++/ROMIO - Indiana University Executing hboot on n0 (otn1 - 2 CPUs)... Executing hboot on n1 (otn2 - 2 CPUs)... Executing hboot on n2 (otn3 - 2 CPUs)... topology done ----------------------------------------------- # mpirun -np 1 mm5.mpp otn1 -- rsl_nproc_all 1, rsl_myproc 0 수행이 완료되면.. rsl.error.000x rsl.out.000x show_domain_000x 가 생성된다.
테스트 결과 측정 과정 – opteron 1 Process number : 1 [clunix@otn1 Run]$ time mpirun -np 1 mm5.mpp otn1 -- rsl_nproc_all 1, rsl_myproc 0 real 3m30.214s user 0m0.000s sys 0m0.000s Process number : 2 [clunix@otn1 Run]$ time mpirun -np 2 mm5.mpp otn1 -- rsl_nproc_all 2, rsl_myproc 0 otn1 -- rsl_nproc_all 2, rsl_myproc 1 real 2m0.184s user 0m0.000s sys 0m0.000s
테스트 결과 측정 과정 – opteron 2 Process number : 4 [clunix@otn1 Run]$ time mpirun -np 4 mm5.mpp otn1 -- rsl_nproc_all 4, rsl_myproc 0 otn1 -- rsl_nproc_all 4, rsl_myproc 1 otn2 -- rsl_nproc_all 4, rsl_myproc 2 otn2 -- rsl_nproc_all 4, rsl_myproc 3 real 1m51.920s user 0m0.000s sys 0m0.000s Process number : 6 [clunix@otn1 Run]$ time mpirun -np 6 mm5.mpp otn1 -- rsl_nproc_all 6, rsl_myproc 0 otn1 -- rsl_nproc_all 6, rsl_myproc 1 otn2 -- rsl_nproc_all 6, rsl_myproc 2 otn2 -- rsl_nproc_all 6, rsl_myproc 3 otn3 -- rsl_nproc_all 6, rsl_myproc 4 otn3 -- rsl_nproc_all 6, rsl_myproc 5 real 1m39.816s user 0m0.000s sys 0m0.000s
테스트 결과 측정 과정 – Itenium2 Process number : 1 [clunix@rx2600 Run]$ time mpirun -np 1 mm5.mpp rx2600 -- rsl_nproc_all 1, rsl_myproc 0 real 4m0.434s user 0m0.001s sys 0m0.001s Process number : 2 [clunix@rx2600 Run]$ time mpirun -np 2 mm5.mpp rx2600 -- rsl_nproc_all 2, rsl_myproc 0 rx2600 -- rsl_nproc_all 2, rsl_myproc 1 real 2m31.815s user 0m0.002s sys 0m0.003s
테스트 결과 측정 과정 – Xeon 1 Process number : 1 [clunix@www1 Run]$ time mpirun -np 1 mm5.mpp www1 -- rsl_nproc_all 1, rsl_myproc 0 real 7m6.661s user 0m0.000s sys 0m0.000s Process number : 2 [clunix@www3 Run]$ time mpirun -np 2 mm5.mpp www3 -- rsl_nproc_all 2, rsl_myproc 0 www3 -- rsl_nproc_all 2, rsl_myproc 1 real 4m16.842s user 0m0.000s sys 0m0.000s
테스트 결과 측정 과정 – xeon 2 Process number : 4 [clunix@www1 Run]$ time mpirun -np 4 mm5.mpp www1 -- rsl_nproc_all 4, rsl_myproc 0 www2 -- rsl_nproc_all 4, rsl_myproc 1 www3 -- rsl_nproc_all 4, rsl_myproc 2 www3 -- rsl_nproc_all 4, rsl_myproc 3 real 3m31.522s user 0m0.000s sys 0m0.010s Process number : 6 [clunix@www1 Run]$ time mpirun -np 6 mm5.mpp www1 -- rsl_nproc_all 6, rsl_myproc 4 www1 -- rsl_nproc_all 6, rsl_myproc 0 www3 -- rsl_nproc_all 6, rsl_myproc 2 www3 -- rsl_nproc_all 6, rsl_myproc 3 www2 -- rsl_nproc_all 6, rsl_myproc 1 www2 -- rsl_nproc_all 6, rsl_myproc 5 real 3m28.397s user 0m0.000s sys 0m0.010s
테스트 진행 시 시스템 모니터링 자료 • 프로세스 모니터링
테스트 진행 시 시스템 모니터링 자료 • 네트워크 모니터링 ( NFS 사용 시 20Mb~30Mb 사용 ) Opteron System ( 3node ) Itenium System ( 1node ) Xeon System ( 3node )
테스트 진행 시 시스템 모니터링 자료 • Disk I/0 모니터링 ( 노드 당 1MB 정도 사용 ) Opteron System ( 3node ) Itenium System ( 1node ) Xeon System ( 3node )
테스트 진행 시 시스템 모니터링 자료 • Memory 모니터링 ( 시스템 별 80% 정도 사용 ) Opteron System ( 3node ) Itenium System ( 1node ) Xeon System ( 3node )
테스트 진행 시 시스템 모니터링 자료 • 리소스 모니터링
Supercomputing for EveryoneClunix, Inc. ㈜클루닉스 152-766 서울특별시 구로구 구로3동 197-22 에이스테크노타워 5차 1007호 Tel : + 82 2 3486 5896 Fax : + 82 2 3486 3959 www.clunix.com