Summary and Schedule
This is a new lesson built with The Carpentries Workbench.
Setup Instructions | Download files required for the lesson | |
Duration: 00h 00m | 1. introduction |
What problems are we solving, and what are we not
discussing? Why do we use Python? What is parallel programming? Why can it be hard to write a parallel program? |
Duration: 00h 25m | 2. Benchmarking |
How do we know our program ran faster? How do we learn about efficiency? ::: |
Duration: 01h 25m | 3. Computing \(\pi\) |
How do I parallelize a Python application? What is data parallelism? What is task parallelism? ::: |
Duration: 02h 55m | 4. Threads and processes |
What is the Global Interpreter Lock (GIL)? How do I use multiple threads in Python? ::: |
Duration: 04h 25m | 5. Delayed evaluation |
What abstractions does Dask offer? How can I paralellize existing Python code? ::: |
Duration: 04h 37m | 6. Map and reduce |
What abstractions does Dask offer? What programming patterns exist in the parallel universe? ::: |
Duration: 06h 07m | 7. Exercise with Fractals |
Can we try a real problem now? ::: |
Duration: 07h 07m | 8. Asyncio |
What is Asyncio? When is asyncio usefull? ::: |
Duration: 07h 47m | 9. Calling external C and C++ libraries from Python |
What are some of my options in calling C and C++ libraries from Python
code? How does this work together with Numpy arrays? How do I use this in multiple threads while lifting the GIL? ::: |
Duration: 09h 17m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
Setup instructions live in this document. Please specify the tools and the data sets the Learner needs to have installed.
Data Sets
Clone the repository at esciencecenter-digital-skills/parallel-python-workshop. Follow software setup instructions there to setup the environment, and run the unit tests to see if your setup is working.
Software Setup
Details
This is an intermediate level Python course. We expect familiarity with the command-line, and that you are comfortable working with a coding text editor (like for instance, VS Code). We provide two choices for working environment: conda or poetry. If you are on Windows the prefered method is conda. On Linux or MacOS you should be fine with either.
From within the cloned repository root directory, run the following commands to create a conda environment from the environment.yml file and activate it
Next, run pytest and see if it completes all tests without errors.