Julia for Python Users¶

Are you a Python user? Do you think it's the Bee's Knees?

Well you should give Julia a try and be blown away by its features and speed.

This presentation gives a gentle introduction to Julia. We assume you've got a basic understanding of Python (but not required).

The contents of this presentation is based on my 6-ish years of experience using Julia for scientific data processing (and for fun!). For deeper reading (including more HPC aspects) I, recommend:

  1. carstenbauer/JuliaHLRS22
  2. ENCCS/Julia-for-HPC

Outline¶

This presentation gives a gentle introduction to Julia ith enough hands-on experience in Julia to start applying it to their own projects, or use Julia as a teaching tool in the classroom.

  1. Gentle introduction to the Julia language
  2. Working wiht array-based data
  3. Calling external codes (using the C-API, and PyCall)
  4. Working in Parrallel

A Gentle Introduction to Julia¶

  1. Getting Started: Slides Notebook
  2. The structure of a Julia Program (modules, control flow, and functions): Slides Notebook
  3. Methods, and Introspection: Slides Notebook
  4. Structured Data Types (Classes): Slides Notebook

Explore on GitHub

Array Data¶

  1. Working With Arrays: Slides Notebook

Explore on GitHub

Calling External Codes (C API + PyCall.jl)¶

  1. Calling Compiled Functions via the C-API: Slides Notebook
  2. Calling Python Code via PyCall.jl Slides Notebook

Explore on GitHub

Working In Parallel¶

  1. Distributed Computing: Slides Notebook
  2. Multi-Threaded Computing: Slides Notebook

Explore on GitHub

What About Numba ?¶

  1. A Numba Example: Slides Notebook
  2. The same again, but in Julia: Slides Notebook

Explore on GitHub

Working with MPI¶

  1. MPI.jl Basics: Slides Notebook
  2. Using Distributed Arrays: Slides Notebook
  3. One-sided MPI Communication: Slides Notebook
  4. MPIArrays.jl Basics: Slides Notebook

Explore on GitHub

Working with GPUS¶

  1. CUDA.jl Basics: Slides Notebook

Explore on GitHub