Runtime systems, thread programming, accelerators, hardware abstraction, performance portability.
This course will present the state of the art of runtime system support for programming heterogeneous platforms. Heterogeneous computing platforms—such as multicores equipped with accelerators—are notoriously difficult to program due to the strong differences in performance characteristics among the various available computing units and also to the discrete memory spaces of accelerating boards.The course will be based on two specific runtime systems developed at Inria: StarPU, developed by the Runtime Team in Bordeaux, and XKAAPI, from the Moais team in Grenoble. It will also present the hardware locality library hwloc for discovering hardware resources and the Ezperf framework for solving performance issues.
Participants will understand the benefit of the task-based programming model together with performance modeling, automatic data management and dynamic scheduling in speeding up application development on heterogeneous computing platforms and providing long term performance portability.
Basic knowledge of C programming language and accelerator programming languages (nVidia Cuda, OpenCL).
Starts 4 Jun 2015 09:30
Ends 5 Jun 2015 17:30