Reconfigure.io lets you program FPGAs with Go. It offers a powerful, easy to use service that provides access to the hardware acceleration power of FPGAs combined with the convenience of cloud-based management. Low-latency and concurrency are necessary to handle the massive data-sets associated with many industries and we enable you to build and deploy your project-specific applications, coded entirely in Go, to cloud-based FPGAs (from the Reconfigure.io site).
OpenCL™ (Open Computing Language) is the open, royalty-free standard for cross-platform, parallel programming of diverse processors found in personal computers, servers, mobile devices and embedded platforms. OpenCL greatly improves the speed and responsiveness of a wide spectrum of applications in numerous market categories including gaming and entertainment titles, scientific and medical software, professional creative tools, vision processing, and neural network training and inferencing (from the Khronos site).
This project consists in going through the tutorial examples provided by Reconfigure.io and then in creating applications specific to mathematical algorithms which are useful in High Energy Physics, anywhere in the landscape from linear algebra to machine learning.
Getting familiarized with the possibilities opened by the Go and the OpenCL languages in concurent and parallel computing and in particular with using a Field Programmable Array (FPGA) as an accelerator device. The student is free to choose the HEP computing application upon which he will conclude his work.