In March 2019, KAUST Supercomputing Core Laboratory (KSL) in collaboration with NVIDIA organized a GPU hackathon to help users of their systems port scientific code to GPUs.
In order to innovate and improve their training outcomes, the participants had the opportunity to use Appentra’s unique approach to GPU training: focusing on identifying patterns and then introducing the concepts and directives needed to parallelize the patterns. The participants used the Parallelware Trainer tool that allowed them to understand how to decompose their code, parallelize loop-by-loop, and finally optimise across multiple GPU-enabled regions of code.
5G wireless communications will be able to handle a thousand times more traffic than today’s networks and will be significantly faster than 4G networks. The “maxvol” algorithm has shown its superiority over traditional greedy search methods in the scope of massive multi-input multi-output MIMO communications, one of the technologies at the foundation of 5G networks. The KAUST team was highly motivated to learn how to make “maxvol” work efficiently on modern heterogeneous computers powered by GPUs, and to learn new tools to port scientific code to GPUs. The team hoped to explore the OpenACC technology using as a guide the Parallelware Trainer tool available in KAUST Ibex system. The GPU training organized by KSL in collaboration with Appentra in March 2019 was a great opportunity to address this challenge.
The experience with Parallelware Trainer
A participant used the hackathon to port his maxvol code to the GPUs available on KAUST’s Ibex service, a heterogeneous group of 864 nodes, including a mix of AMD, INTEL and NVIDIA GPUs with different architectures. The hackathon allowed him to achieve his goals and implement an OpenACC code doing “maxvol” on many matrices in parallel, which in addition is easy to run on GPU or on CPU, depending on compilation flags only.
Full details are available in the case study below.