Particle Physics Seminar

Physics with Julia

by Oliver Schulz (MPI Munich)

Nußallee 12/1.049 (PI) - Conference Room II (PI)

Nußallee 12/1.049 (PI) - Conference Room II


Show room on map


Julia is a modern programming language designed for scientific computing. In addition to achieving high performance by compiling to machine code code on-the-fly, Julia is easy to learn, supports GPU- und parallel-/cluster-computing, automatic differentiation, metaprogramming and a package manager with built-in good scientific practice.

We'll talk about how Julia works and look at examples as well as real-life physics use cases.

There will also be a hands-on tutorial session in the afternoon for anyone who wants to try out Julia for themselves.



Join Zoom Meeting

Meeting ID: 662 5356 7797
Passcode: 599591


Instructions/Preparations for the Julia Tutorial today at 14.30-16.00 in Confrence Room II (PI 1.049)

To save time, it would be helpful if participants install Julia on their laptops beforehand. Linux, OS-X and modern Windows systems should all work fine (except for the Julia ROOT and Geant4 interfaces, they don't work on Windows).

(Instead of a laptop, you may of course also use a Linux compute system accessed via SSH, ideally via VS-Code Remote-SSH).

Follow these instructions, they also include some initials setup steps after Julia installation:

Afterwards, start a Julia "REPL" (console/shell), press "]" to enter the Julia package management console and install a few more packages:

(@v1.10) pkg> add Pluto BenchmarkTools Cthulhu

Non-windows users can also install install the Julia Geant4 and ROOT interface packages (you can also follow the tutorial without them, we'll just do a short example with each):

(@v1.10) pkg> add Geant4

Note: You do not need to install Geant4 beforehand, Julia will get it's own Geant4 binaries, including all Geant4 data files. Prepare for a large download.

(@v1.10) pkg> add ROOT

Note: You do not need to install ROOT beforehand. But installing the Julia ROOT interface will take a bit, it downloads ROOT binaries and then compiles some additional stuff. It is also brand new and ROOT is a complex beast, so installation may fail on some systems.
In addition, feel free to try out Julia on our (remote) desktops or (interactive) jobs: 

bechtle@theo199:~/> module load Julia/1.9.4

bechtle@theo199:~/> julia 


   _       _ _(_)_     |  Documentation:

  (_)     | (_) (_)    |

   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.

  | | | | | | |/ _` |  |

  | | |_| | | | (_| |  |  Version 1.9.4 (2023-11-14)

 _/ |\__'_|_|_|\__'_|  |  Official release

|__/                   |


(@v1.9) pkg> add Pluto BenchmarkTools Cthulhu


  Installing known registries into `~/.julia`


 For Julia



Organized by

Maike Hansen, Tatjana Lenz, Saime Gürbüz