OCCA: A unified approach to multi-threading languages
Computational and Applied Mathematics at Rice University
arXiv:1403.0968 [cs.DC], (4 Mar 2014)
@article{2014arXiv1403.0968M,
author={Medina}, D.~S and {St-Cyr}, A. and {Warburton}, T.},
title={"{OCCA: A unified approach to multi-threading languages}"},
journal={ArXiv e-prints},
archivePrefix={"arXiv"},
eprint={1403.0968},
primaryClass={"cs.DC"},
keywords={Computer Science – Distributed, Parallel, and Cluster Computing},
year={2014},
month={mar},
adsurl={http://adsabs.harvard.edu/abs/2014arXiv1403.0968M},
adsnote={Provided by the SAO/NASA Astrophysics Data System}
}
The inability to predict lasting languages and architectures led us to develop OCCA, a C++ library focused on host-device interaction. Using run-time compilation and macro expansions, the result is a novel single kernel language that expands to multiple threading languages. Currently, OCCA supports device kernel expansions for the OpenMP, OpenCL, and CUDA platforms. Computational results using finite difference, spectral element and discontinuous Galerkin methods show OCCA delivers portable high performance in different architectures and platforms.
March 6, 2014 by hgpu