On the Programmability and Performance of Heterogeneous Platforms
Department of Computer Science, Virginia Tech
19th IEEE International Conference on Parallel and Distributed Systems (ICPADS 2013), 2013
@article{krommydas2013programmability,
title={On the Programmability and Performance of Heterogeneous Platforms},
author={Krommydas, Konstantinos and Scogland, Thomas RW and Feng, Wu-chun},
year={2013}
}
General-purpose computing on an ever-broadening array of parallel devices has led to an increasingly complex and multi-dimensional landscape with respect to programmability and performance optimization. The growing diversity of parallel architectures presents many challenges to the domain scientist, including device selection, programming model, and level of investment in optimization. All of these choices influence the balance between programmability and performance. In this paper, we characterize the performance achievable across a range of optimizations, along with their programmability, for multi- and many-core platforms – specifically, an Intel Sandy Bridge CPU, Intel Xeon Phi co-processor, and NVIDIA Kepler K20 GPU – in the context of an n-body, molecular-modeling application called GEM. Our systematic approach to optimization delivers implementations with speedups of 194.98x, 885.18x, and 1020.88x on the CPU, Xeon Phi, and GPU, respectively, over the naive serial version. Beyond the speed-ups, we characterize the incremental optimization of the code from naive serial to fully hand-tuned on each platform through four distinct phases of increasing complexity to expose the strengths and weaknesses of the programming models offered by each platform.
January 29, 2014 by hgpu