MPtostream: an OpenMP compiler for CPU-GPU heterogeneous parallel systems
In light of GPUs’ powerful floating-point operation capacity, heterogeneous parallel systems incorporating general purpose CPUs and GPUs have become a highlight in the research field of high performance computing(HPC). However, due to the complexity of programming on GPUs, porting a large number of existing scientific computing applications to the heterogeneous parallel systems remains a big challenge. The OpenMP programming interface is widely adopted on multi-core CPUs in the field of scientific computing. To effectively inherit existing OpenMP applications and reduce the transplant cost, we extend OpenMP with a group of compiler directives, which explicitly divide tasks among the CPU and the GPU, and map time-consuming computing fragments to run on the GPU, thus dramatically simplifying the transplantation. We have designed and implemented MPtoStream, a compiler of the extended OpenMP for AMD’s stream processing GPUs. Our experimental results show that programming with the extended directives deviates from programming with OpenMP by less than 11% modification and achieves significant speedup ranging from 3.1 to 17.3 on a heterogeneous system, incorporating an Intel Xeon E5405 CPU and an AMD FireStream 9250 GPU, over the execution on the Xeon CPU alone.
KeywordsGPGPU stream OpenMP compiler
Unable to display preview. Download preview PDF.
- 2.Luebke D, Harris M, Krüger J, et al. GPGPU: general purpose computation on graphics hardware. In: ACM SIGGRAPH 2004 Course Notes. New York: ACM, 2004. 33Google Scholar
- 3.Fan Z, Qiu F, Kaufman A, et al. GPU cluster for high performance computing. In: SC04: Proceedings of the 2004 ACM/IEEE Conference on Supercomputing. Washington DC: IEEE Computer Society, 2004. 47Google Scholar
- 5.Buck I. Brook Spec v0.2. Technical Report. Stanford University, 2003Google Scholar
- 8.Han T D, Abdelrahman T S. hiCUDA: a high-level directive-based language for GPU programming. In: Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units. New York: ACM, 2009. 52–61Google Scholar