Productive Programming of GPU Clusters with OmpSs

Clusters of GPUs are emerging as a new computational scenario. Programming them requires the use of hybrid models that increase the complexity of the applications, reducing the productivity of programmers. We present the implementation of OmpSs for clusters of GPUs, which supports asynchrony and het...

Full description

Saved in:
Bibliographic Details
Published in:2012 IEEE 26th International Parallel and Distributed Processing Symposium pp. 557 - 568
Main Authors: Bueno, J., Planas, J., Duran, A., Badia, R. M., Martorell, X., Ayguade, E., Labarta, J.
Format: Conference Proceeding Publication
Language:English
Published: IEEE 01.05.2012
Subjects:
ISBN:1467309753, 9781467309752
ISSN:1530-2075
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Clusters of GPUs are emerging as a new computational scenario. Programming them requires the use of hybrid models that increase the complexity of the applications, reducing the productivity of programmers. We present the implementation of OmpSs for clusters of GPUs, which supports asynchrony and heterogeneity for task parallelism. It is based on annotating a serial application with directives that are translated by the compiler. With it, the same program that runs sequentially in a node with a single GPU can run in parallel in multiple GPUs either local (single node) or remote (cluster of GPUs). Besides performing a task-based parallelization, the runtime system moves the data as needed between the different nodes and GPUs minimizing the impact of communication by using affinity scheduling, caching, and by overlapping communication with the computational task. We show several applications programmed with OmpSs and their performance with multiple GPUs in a local node and in remote nodes. The results show good tradeoff between performance and effort from the programmer.
ISBN:1467309753
9781467309752
ISSN:1530-2075
DOI:10.1109/IPDPS.2012.58