기업조회

본문 바로가기 주메뉴 바로가기

동향 기본정보

OpenACC와 그래픽 컴퓨팅을 이용한 Nek5000 코드의 성능 개선 테스트

동향 개요

기관명, 작성자, 작성일자, 내용, 출처, 원문URL, 첨부파일 순으로 구성된 표입니다.
기관명 NDSL
작성자 KISTI 미리안 글로벌동향브리핑
작성일자 2016-04-25 00:00:00.000
내용 최근 몇년간 전세계 수퍼컴퓨터의 디자인은 GPU (Graphics Processing Unit)이나 Xeon Phi MIC (Many Integrated Core) 같은 Accelerator의 장착이 필수요소로 자리 잡은 상황이다. GPU 등 accelerator들은 Linpack benchmark 를 통한 최고성능 측정에 무척 중요한 역할을 하지만, 일반 사용자의 입장에서는 이 accelerator 의 충분한 활용이 그리 쉽지않은 상황이다. GPU 활용을 위해선 CUDA 프로그래밍을 배워야 해서 진입장벽이 높기 때문이다. OpenACC 는OpenMP 와 같이 컴파일러 derivative 를 사용하기 때문에 GPU 이용을 위한 프로그래밍을 훨씬 쉽게 해준다. 이 연구에서는 Nek5000라는 잘 알려진 열유체 해석 프로그램에 OpenACC를 적용, GPU 를 사용해 실행을 했을경우 얼마나 성능개선이 이루어 지는지 살펴보았다. Nek5000같은 열유체 해석 프로그램들은기존의 GPU application으로 잘 알려져있는 Lattice-Boltzman application들 보다 훨씬 더 강도높은 컴퓨팅을 요구하며, 각 프로세스간의 정보교환도 훨씬 더 잦은 편이라 병렬 프로그램밍을 통한 scale-up 이 쉽지않은 대표적인 프로그램이다. 이번 실험은 Oak Ridge National Lab 에서 보유하고 있는 Titan (Cray XK6) Supercomputer (2.1GHz AMD Interlago 16-core CPU Kepler K-20 GPU on node) 에서 이루어 졌으며, single node 에서 시작, 1024 core 까지 MPI (Message Passing Interface) 를 이용한 병렬 계산으로 이루어 졌다. 실질적인 benchmark test 는 NekBone 이라는 Nek5000의 scale-down version 으로 진행되었다. OpenACC를 사용하지 않은 CPU 만을 이용한 기존 코드 테스트에선 16.27 Gflops의 성능을 보인 반면, 간단한 OpenACC 사용에선 20.56Gflops, 여기에 CPU-GPU 사이의 data processing 을 최적화 시킨 optimized version 으로는 42.67Gflops 의 성능을 보여, OpenACC 가 고성능 컴퓨팅 환경에서 GPU 이용을 위한 도구로서 훌륭한 역할을 할 수 있음을 보여주었다. 또한 1024개의 GPU 를 이용한 테스트에서도 79.9%의 병렬 효율성 (parallel efficiency)을 보여 CUDA programming 못지않은 효용성을 보였다는 점도 상당히 고무적이다. 아직까진 OpenACC의 사용자 수가 그리 많지 않은 편 이지만, 배우기 쉽고 일반 코드에 쉽게 적용시킬 수 있다는 점 등 매력적인 부분이 많아 시간이 지날 수 록 더 많은 사용자를 끌어들일 것으로 기대된다.
출처
원문URL http://click.ndsl.kr/servlet/OpenAPIDetailView?keyValue=03553784&target=TREND&cn=GTB2016000131
첨부파일

추가정보

과학기술표준분류, ICT 기술분류, 주제어 순으로 구성된 표입니다.
과학기술표준분류
ICT 기술분류
주제어 (키워드) 1. 고성능 컴퓨팅, 그래픽 컴퓨팅, 오픈에이씨씨 포팅 2. OpenACC, Nek5000, porting NekBone to GPU, optimization of NekBone with OpenACC