Juliacon 2024

Seamless transition from single-core Python to Julia Multi-GPU
2024-07-12 , Function (4.1)

We present a new approach to transition seamlessly and with unprecedented effectiveness from a single-CPU-core Python prototype to a Julia application that is deployable on distributed GPUs. During porting of the Python prototype to Julia, the approach enables concurrent interactive stepwise execution of both codes and systematic verification almost line by line.


Check points for correctness can be straightforwardly defined for ported and verified code blocks in order to later automatically signal potential issues that manifest due to refactoring work or consideration of new input classes. We have demonstrated the approach's effectiveness in a real-world use case, a collaboration between domain scientists and HPC experts in the scope of Europe's Human Brain Project (HBP). Based on a single-CPU-core Python prototype developed by the domain scientists, we have jointly created a Julia application for Bayesian optimization of hyper-parameters of a neurological network that is deployable on the world's largest GPU supercomputers and achieves near optimal performance and scaling. Furthermore, as a result of the automatic correctness verification, the domain scientists - with no previous Julia experience - could quickly gain confidence in the ported Julia application, which is an important aspect in HPC collaboration projects as the presented one. The Julia application serves the domain scientists now also for further prototyping: leveraging ParallelStencil.jl has made it feasible to fully unify prototyping and production in a single code that is deployable on a single CPU core or thousands of GPUs.

Computational Scientist | Responsible for Julia computing
Swiss National Supercomputing Centre (CSCS), ETH Zurich

This speaker also appears in: