Thanks in part to the popularity of machine learning, general purpose GPU programming ( GPGPU ) is becoming more palatable for main-stream scientists. The massively parallel architecture of GPUs makes it possible to accelerate scientific software. However, many scientific research codes run on distributed computing environments comprised primarily of traditional CPUs. In these systems, distinct compute nodes are networked together and programmed to coordinate in the computation of numerical algorithms. Introducing a new piece of hardware in the mix, the GPU, brings with it the challenges of programming that hardware. To overcome these challenges, GPU Hackathons immerse domain and computational scientists in GPU accelerated computing and connect them with GPU programming experts.
GPU Hackathon Structure
The structure of our GPU Hackathons is focused on the success of each developer team. Each hackathon brings in 5-10 teams of developers with existing code and pairs them carefully with mentors that specialize high performance computing, appropriate software languages, and GPU programming APIs. Additionally, we aim to expose teams to state-of-the-art debuggers and profilers by bringing in vendors specializing in these tools. Developers are not required to have any GPU programming experience before attending. Over five days, each team works through a coding sprint with daily stand-ups. Daily stand-ups promote cross-team collaboration, enhance knowledge sharing, and ensure quick roadblock resolution. To further support communication among attendees, Slack is used at each GPU hackathon; this also allows programmers to communicate before and after the event.
Similar events have been put on by the Oak Ridge Leadership Class Facility with partnering host institutions. The 2017 “Brookathon” is a good example that illustrates what to expect at a GPU Hackathon. As another example, the video on the 2016 Oak Ridge GPU Hackathon illustrates, in part, the model of the GPU hackathon we want to bring to the high performance computing community.