Particle Physics Seminar

Physics with Julia

by Oliver Schulz (MPI Munich)

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

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

PI

42
Show room on map
Description

 

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
https://uni-bonn.zoom-x.de/j/66253567797?pwd=R2MrNmNCQnl4K1hSejd6VnBEYXJ2QT09

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:

https://github.com/oschulz/julia-setup

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: https://docs.julialang.org

  (_)     | (_) (_)    |

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

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

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

 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release

|__/                   |


 

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

 

  Installing known registries into `~/.julia`


 
…..
 
(See 
 

 For Julia

)
==========================================================



 

Organized by

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