When

Apr 03, 2023 09:00 AM to Apr 06, 2023 01:00 PM
(Europe/Berlin / UTC200)

Where

Online

Attendees

The workshop is open and free to all researchers in the Netherlands at PhD candidate level and higher. We do not accept registrations by Master students. The workshop is aimed at PhD candidates and other researchers or research software engineers.

Add event to calendar

iCal

Intermediate level course teaching the basics of Parallel Programming in Python using Numba, Dask and asyncio.

Python is one of most widely used languages to write code for scientific data analysis, visualization, and even modelling and simulation. The popularity of Python is mainly due to its friendly syntax, together with the availability of many high-quality libraries. The flexibility that Python offers comes with a few downsides though: code typically doesn’t perform as fast as lower-level implementations in C/C++ or Fortran, and it is not trivial to parallelize Python code to work efficiently on many-core architectures. This workshop addresses both these issues, with an emphasis on running Python code efficiently (in parallel) on multiple cores.

We’ll start with learning to recognize problems that are suitable for parallel processing, looking at dependency diagrams and kitchen recipes. From then on, the workshop is highly interactive, diving straight into the first parallel programs. This workshop teaches the principles of parallel programming in Python using Dask, Numba and asyncio. More importantly, we try to give insight in how these different methods perform and when they should be used.

The workshop is based on the teaching style of the Carpentries, and learners will follow along while the instructors write the code on screen. More information can be found on the workshop website.

Audience

The workshop is open and free to all researchers in the Netherlands at PhD candidate level and higher. We do not accept registrations by Master students. The workshop is aimed at PhD candidates and other researchers or research software engineers.

Prerequisite knowledge

The participant should be:

  • familiar with basic Python: control flow, functions, NumPy
  • comfortable working in Jupyter

Recommended

  • understand how NumPy and/or Pandas work

Syllabus

  • Recognizing potential for parallelism
  • Dependency diagrams
  • Measuring performance
  • Working with Dask arrays
  • Working with Numba
  • Parallel design patterns
  • Delayed evaluation
  • Parallel programming using asyncio

Where

This training will take place online. The instructors will provide you with the information you will need to connect to this meeting.

When

  • Monday 3 April – 9 am-1pm
  • Tuesday 4 April – 9am-1pm
  • Wednesday 5 April – 9am-1pm
  • Thursday 6 April – 9am-1pm