Julia is a modern high-level programming language that is fast (on par with traditional HPC languages like Fortran and C) and relatively easy to write like Python or Matlab. It thus solves the “two-language problem”, i.e. when prototype code in a high-level language needs to be combined with or rewritten in a lower-level language to improve performance.
Although Julia is a general-purpose language, many of its features are particularly useful for numerical scientific computation, and a wide range of both domain-specific and general libraries are available for numerical modelling and simulation.
The language supports parallelization for both shared-memory and distributed HPC architectures, and native Julia libraries are available for running on GPUs from different vendors.
This online workshop will start by briefly covering the basics of Julia’s syntax and features, and then introduce methods and libraries which are useful for writing high-performance code for modern HPC systems. After attending the workshop you will:
The workshop is intended for researchers who are familiar with one or more other languages like Python, R, Matlab, C/C++ or Fortran but would like to learn an exciting modern high-performance language.
Basic experience with working in a terminal is also beneficial. Participants are expected to install Julia, VSCode and Zoom before the workshop starts.
Day 1
Time (CEST) | Time (EEST) | Section |
---|---|---|
9:30-10:30 | 10:30-11:30 | Welcome and Motivation |
10:30-11:00 | 11:30-12:00 | Julia syntax |
11:00-11:30 | 12:00-12:30 | Special Julia features |
11:30-12:30 | 12:30-13:30 | Break |
12:30-13:00 | 13:30-14:00 | Special Julia features |
13:00-14:00 | 14:00-15:00 | Developing in Julia |
14:00-14:10 | 15:00-15:10 | Package ecosystem |
14:10-14:30 | 15:10-15:30 | Buffer time, Q&A |
Day 2
Time (CEST) | Time (EEST) | Section |
---|---|---|
9:30-10:00 | 10:30-11:00 | Welcome and Motivation |
10:00-11:30 | 11:00-12:30 | Writing performant Julia code |
11:30-12:30 | 12:30-13:30 | Break |
12:30-13:30 | 13:30-14:30 | Multithreading |
13:30-14:30 | 14:30-15:30 | Distributed |
Day 3
Time (CEST) | Time (EEST) | Section |
---|---|---|
9:30-10:30 | 10:30-11:30 | Dagger |
10:30-11:30 | 11:30-12:30 | Running on HPC |
11:30-12:30 | 12:30-13:30 | Break |
12:30-13:30 | 13:30-14:30 | MPI |
13:30-14:30 | 14:30-15:30 | Buffer time |
Day 4
Time (CEST) | Time (EEST) | Section |
---|---|---|
9:30-11:00 | 10:30-12:30 | GPU computing |
11:30-12:30 | 12:30-13:30 | Break |
12:30-13:30 | 13:30-14:30 | Interfacing to C, Fortran and Python |
13:30-14:15 | 14:30-15:15 | Advanced exercises |
14:15-14:30 | 15:15-15:30 | Conclusions and outlook |
Please register by following the link https://events.prace-ri.eu/event/1512/registrations/1104/.
This training is intended for users established in the European Union or a country associated with Horizon 2020. You can read more about the countries associated with Horizon2020 here https://ec.europa.eu/info/research-and-innovation/statistics/framework-programme-facts-and-figures/horizon-2020-country-profiles_e