Supporting Heterogenous Computing Environments in SaC
University of Amsterdam, Institute of Informatics, Science Park 904, 1098XH Amsterdam, Netherlands
13th International Symposium Trends in Functional Programming (TFP’12), 2012
@article{diogo2012supporting,
title={Supporting Heterogenous Computing Environments in SaC},
author={Diogo, M. and Grelck, C.},
year={2012}
}
From laptops to supercomputer nodes hardware architectures become increasingly heterogeneous, combining at least multiple general-purpose cores with one or even multiple GPGPU accelerators. Taking effective advantage of such systems’ capabilities becomes increasingly challenging. SaC is a functional array programming language with support for fully automatic parallelization following a data-parallel approach. As such many SaC programs are good matches for both conventional multi-core processors as well as many-core accelerators. Consequently, SaC supports both architectures, but so far a choice must be made at compile time: either the compiled code utilizes multiple cores and ignores a potentially available accelerator or it uses a single GPGPU while ignoring all but one core of the host system. We present a preliminary compilation scheme and corresponding runtime system support that combines both code generation alternatives to join the computational forces of multiple general-purpose cores and multiple GPGPU accelerators to collaboratively execute SaC programs without any programmer or user support.
September 8, 2012 by hgpu