HPC 기반 Generic Gas Simulation 성능분석보고서 본자료는 클루닉스에서자사시뮬레이션포털구성제품인 GridCenter-CAP 통합 CAE 해석환경을이용하여동국대공과대의시뮬레이션코드의성능을측정된자료입니다. 클루닉스와동국대공과대의동의없이본자료의무단배포를허가하지않습니다. 테스트환경 : GridCenter-CAP, GridCenter-HPC, CAE 어플리케이션 (ANSYS) 테스트주관 : 클루닉스기술부테스트일자 : 28년 11월 12일 ~28년 11월 14일시스템구축밑튜닝 : 클루닉스기술부 / 서진우 CAE 어플리케이션구축및튜닝 : 클루닉스기술부 / 서진우
BMT 기본환경정보 Simulation Code: sample_smoke.sim( 1 frame 해석 ), sample_smoke_using_mls.sim(1 frame 해석 ) 클러스터기반통합해석환경 : GridCenter-CAP 1.9 클러스터병렬 API 환경 : Lam-7.1.2 BMT 시스템사양정보 BMT1 BMT2 BMT3 Cpu Intel(R) Xeon(R) CPU 542 @2.5GHz (8core) Memory 16GByte Disk SATA2 25GB Network Intel Gigabit Node number 4 Cpu Intel(R) Core(TM)2 Quad CPU Q67 @2.66GHz (4core) Memory 4GByte Disk SATA2 25GB Network Intel Gigabit Node number 3 Cpu Intel(R) Core(TM)2 CPU 66 @ 2.4GHz (2core) Memory 4GByte Disk SATA2 25GB Network Intel Gigabit Node number 3 BMT 시나리오 1. 각 BMT 시스템환경별로 Generic_Gas_Example code에대한클러스터최적환경을구성한후계산수행 processor를증가시킬경우성능확장가능성을측정한다. 2. 각 BMT 시스템환경별성능을비교한다. - 해석예제별 scalability 성능측정 - BMT시스템간의성능비교측정 - 최적화전후성능비교측정 BMT 수행방법 1. 본 BMT 환경에맞게 Makefile(Makefile.common, Makefile.Physbam 등 ) 을수정함. 2. Object 파일명을결정하는 PLATFORM 변수값을클루닉스의슈퍼컴퓨터이름인 teragon으로정의함. 3. 각 BMT 시스템에 lam-7.1.2 와 gcc compiler를연동한 MPI 환경구성후요청받은코드를컴파일함. 4. mpirun np <processor_number>./main_teragon s simple_smoke.sim d 3 수행 5. mpirun np <processor_number>./main_teragon s simple_smoke_using_mls.sim d 3 수행
BMT 결과 측정단위 / 초 (sec) BMT1_HPC Simple_smoke.sim Simple_smoke_using_MLS.sim Np=1 152 169132 Np=4 5429 42389 Np=8 5335 2131 Np=16 2811 177 Np=24 1987 7155 Np=32 1548 5364 BMT2_HPC Simple_smoke.sim Simple_smoke_using_MLS.sim Np=1 14135? 1593 Np=4 858? 39825 Np=8 5714 1995 Np=12 2581 13275 BMT3_HPC Simple_smoke.sim Simple_smoke_using_MLS.sim Np=1 X(FP overflow) x Np=4 X(FP overflow) 5852(2+2) Np=6 X(FP overflow) 2639(2+2+2) 본격적인 BMT 전에 BMT1 시스템에서몇가지단위테스트를진행하여본해석의시스템자원사용현황을미리파악해보았음. Simple_smoke.sim 해석에이용되는시스템자원은 Total Memory가 8~9GByte, 결과데이터가 6.8~7Gbyte 정도생성되는것을확인함. CPU 사용률은매우좋은편 ( 평균96% 이상 ) 으로 CPU의대부분을 user processing에이용되는것을확인함. Simple_smoke_using_MLS.sim 해석의경우는 CPU 사용률은매우우수하며, 해석에필요한메모리는 3~4Gbyte 정도소요되는것을확인함. Simple_smoke.sim의경우 4대구성에 32core를이용하여테스트할경우네트워크최대사용량은 2Mbps 정도사용되는것을확인함. 반면 simple_smoke_using_mls.sim 의경우해석시네트워크자원은거의사용하지않음을확인함. Simple_smoke.sim의경우 BMT2와 BMT3 시스템의경우노드당 4Gbyte 용량의메모리를가지고있으므로 1노드테스트는진행할수없었음. ( 과도한 Swap memory 사용 ) 2노드로계산시 1.5Gbyte의 Swap이사용됨.
또한 BMT3 시스템환경인 Intel(R) Core(TM)2 CPU에서는 6frame 단계에서 Floating point overflow 에러가발생하며, 해석이더이상진행되지않는문제가발생함. 최소메모리용량인 9Gbyte 이상의메모리를이용하고, 다양한 CPU 코어수로계산을하더라도항상 6frame 단계에서같은에러가발생함. BMT3 시스템에서발생한에러콘솔메시지는아래와같음 ** ERROR: SIGNAL SIGFPE (8) ** Floating point exception: reason 4 = "FP overflow", from address xaf14ee 아래는단위테스트를통해확인된주요리소스사용현황을모니터링한화면임. 해석시프로세스모니터링화면 Simple_smoke.sim 해석시주요시스템자원사용현황
Simple_smoke_using_MLS.sim 해석시주요시스템자원사용현황 몇가지단위테스트를통해본해석의최적화요소및해석예제별자원사용패턴을분석하고, 분석된내용을토대로본격적인 BMT를진행함. BMT 결론은 Simple_smoke.sim 예제와 Simple_smoke_using_MLS.sim 예제의해석진행시시스템자원사용패턴은매우다르다는것이다. Simple_smoke.sim 예제는보편적인 MPP 클러스터시스템으로병렬처리해석시 BMT1 환경에서 32core 해석시 1core에비해 6.7배정도의성능향상이확인됨. BMT2의경우 12core로해석시 1core 대비 5.4 배의성능향상이확인됨 (BMT1에비해상대적으로높음 ). 하지만 BMT2 시스템의경우 1core~4core 해석시최소필요한 9GByte 이상의메인메모리확보가안되어, Swap이사용됨을가만하면실제확장성능은 BMT1과유사할것이라추측됨. (BMT2의경우 1core~4core 해석시 1.5Gbyte 정도의 swap 디스크사용으로인해평균 CPU 사용률이 88% 정도유지됨 )
simple_smoke.sim 성능결과 -BMT1 시스템 12 8 1 7 6 8 5 6 4 4 3 speedup speedup 2 2 1 Np=1 Np=4 Np=8 Np=16 Np=24 Np=32 core 수 (1 core 사용시 3 시간실행, 32core 사용시 25 분실행 ) Simple_smoke_using_MLS.sim 예제의경우 BMT1 과 BMT2 시스템모두매우이상적인병렬성이제공됨을확인할수있었음. BMT1 시스템의경우 32core 해석성능이 1core 대비 31배정도의성능이나오는것을확인하였고, BMT2의경우도 12core 해석이 1core 해석시간대비 11배이상의성능개선이되는것을확인할수있었음. simple_smoke_using_mls.sim 성능결과 -BMT1 시스템 18 35 16 14 12 3 25 1 8 2 15 speedup speedup 6 4 2 1 5 Np=1 Np=4 Np=8 Np=16 Np=24 Np=32 core 수 (1core 사용시 47 시간실행, 32core 사용시 1 시간 3 분실행 )
실제두예제해석시시스템리소스사용현황을살펴보면, 두예제모두 CPU 사용률은매우좋은효율을가지고있으나, 네트워크의경우 simple_smoke는 32core 해석의경우 2Mbps 이상의네트워크대역이사용되지만, simple_smoke_using_mls 예제의경우병렬해석시네트워크자원의사용이거의없음을확인할수있었음. 두예제의성능에직접적인영향을주는요소의차이가존재함으로두예제를모두사용하는환경의경우각예제별해석비중과요구수행시간등을고려하여적절한설계가필요할듯함. 본보고서에기록된테스트이외의몇가지입증테스트를통해 node 수, core수, 메모리성능, CPU Clock, disk I/O 처리방식, CPU balancing 방식, L2 Cache Memory 성능, Cache Memory shared 방식, Network 구성방식등에의해상당부분의성능에영향을줄수있음을확인함. 아래는 BMT 1 시스템의 CPU(Intel Xeon E542) 와 BMT2 시스템의 CPU(Intel Quad Q67) 간의성능비교측정결과이다. BMT1 vs BMT2 성능비교 16 14 12 1 8 6 4 2 BMT1 BMT2 np=1 np=4 np=8 core 수 위테스트결과로만보면 BMT1 시스템의 core 별처리성능이더우수한걸로평가된다. 하지만앞서언급한내용처럼 1core ~ 8core 까지 BMT2의경우 Swap 디스크를사용했다는것을고려해야할것이다. BMT2 시스템에서 simple_smoke.sim 해석시 swap의영향을받지않은테스트환경은 np=12에서의환경이다. 이때처리된속도는 2581초로 BMT1의 np=16에서의속도인 2811초보다더우수하다는것을확인할수있다. 하지만그렇다고 Intel Quad Core Q67(BMT2) 환경이 Intel Xeon E542 (BMT1) 환경보다우수하다고볼수는없다. 실제 simple_smoke.sim 의경우 L2 cache memory 성능과 cache memory shared 방식에따라매우큰성능차이를보인다. BMT1 시스템의 processor balancing 방식을실제예제에서요구하는구조로최적화하면, 똑같은 core수에서 BMT2에비해 2배에가까운성능이나오는것을확인하였다. ( 아래테스트결과참고 ) Simple_smoke.sim의경우 MLS를이용한예제에비해상대적으로프로세서의병렬처리효율이떨어지는것을확인되었다. 하지만해당해석에대해성능개선요소를파악한후몇가지최적화요소를적용함으로, 클러스터확장성능의개선을확인할수있었음. 아래는 BMT1 시스템에서 simple_smoke.sim 예
제를가지고클러스터환경을최적화한후동일한방법으로재측정한결과이다. Simple_smoke 예제최적화전후성능비교 12 1 8 6 4 최적화전최적화후 2 Np=1 Np=4 Np=8 Np=16 core 수 Simple_smoke.sim 예제의경우 32core에서 1core 대비 6.7배성능개선효과가본최적화환경에서는 16core에서 6.6 배정도의성능개선이일어났다. 앞서언급한성능주요요소들을최적화하여최적의 processor balanced 상태를유지하면, 3% ~8% 까지성능개선효과를확인할수있었음. 아래는본 BMT 에사용된클러스터시스템구축및운영미들웨어인그리드센터관리주요화면임. 클러스터시스템통합모니터링화면
클러스터시스템프로세스통합모니터링화면 클러스터시스템네트워크실시간모니터링화면