Material

Nov 8, 2025

⚠️ Take notice: This tutorial requires a working container environment using Docker or Podman .

⚠️ Prior to the start of the tutorial session, to avoid overwhelming the venue’s wifi, you may download the docker/podman container image using the following command: docker pull ghcr.io/thomas-bouvier/numpex-pdi-tutorial:latest

Container environment

Using an embedded text editor (vim/nano)

docker run -it ghcr.io/thomas-bouvier/numpex-pdi-tutorial:latest
vim

Using your own IDE (eg: vscode)

If you want to use your own IDE, you may bind-mount a local folder to the container:

# move to a folder in which to git clone (eg: cd /tmp).
git clone git@github.com:pdidev/tutorial.git -b tutorial_HPCAsia
podman run -it -u root -v tutorial:/opt/tutorial ghcr.io/thomas-bouvier/numpex-pdi-tutorial:latest

You may now open the cloned tutorial folder with your favorite IDE.

Checking your environment

From within the container environment, you may test that your setup is working using the dedicated script from the tutorial folder:

./environment_check_script
[...]
[0] SUCCESS 
[1] SUCCESS
[2] SUCCESS
[3] SUCCESS

Deisa

docker run -it -u root -p 8787:8787 -v <TUTORIAL_FOLDER>:/tutorial ghcr.io/thomas-bouvier/numpex-pdi-tutorial:latest
pip install deisa-dask matplotlib

The container image, by default, runs rootless. A pdi user is created and used within the container. When using podman, and to avoid access rights on bind-mounted volumes, you may set the running user as root by specifying -u root. This will run as root inside the container and as the current user (id -u) from the host. You may check this using: podman top -l user huser

The docker/podman command will map local port 8787 to the container’s port 8787 that is used by the Dask dashboard. You may change the local port to another port.