New open source HandsOnOpenCL course now available; examples in C, C++ and PyOpenCL

I’m delighted to announce the availability of the HandsOnOpenCL online resource. This is a new, open source training course developed by Simon McIntosh-Smith and Tom Deakin at the University of Bristol in the UK.

HandsOnOpenCL comes with a complete set of lecture slides, exercises and solutions, and has been developed with financial support from the Khronos Initiative for Training and Education (KITE). HandsOnOpenCL is available now via Github:

GitHub - HandsOnOpenCL/Lecture-Slides: Lecture Slide Issue Tracking

GitHub - HandsOnOpenCL/Exercises-Solutions: C, C++ and Python Code for Exercises and Solutions

This material is made available via the “attribution CC BY” creative commons license. In other words, you can use the material in any way you see fit, including modifying it and also using it commercially, but you must always retain an attribution for the original authors, Simon McIntosh-Smith and Tom Deakin.

The exercises and solutions are all available in three flavours: C, C++ (with a new, improved version of the OpenCL C++ wrapper), and Python via Andreas Kloeckner’s PyOpenCL.

This material is based on training that has been developed and tested by Simon McIntosh-Smith over the last four years. Previous versions of this material have been used to run OpenCL tutorials and workshops at IEEE/ACM SuperComputing, have been run as two-day courses for the UK’s national supercomputer service HECToR, and also used to run an undergraduate computer science HPC course for four years. So far over 400 people have been trained in OpenCL using this material, and so it should now be fairly robust and well polished.

Please do give HandsOnOpenCL a try, and send us any bug reports of enhancement requests as issues on the appropriate Github repo. Our hope is that this will promote and enable a faster uptake of OpenCL within the heterogeneous many-core computing community, so have at it!

With best wishes,

Simon McIntosh-Smith and Tom Deakin
University of Bristol, Department of Computer Science