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 writing a parallel program be challenging? |
Duration: 00h 25m | 2. Benchmarking |
How do we know whether our program ran faster in parallel? How do we appraise 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 |
Which abstractions does Dask offer? Which programming patterns exist in the parallel universe? ::: |
Duration: 06h 07m | 7. Exercise with Fractals |
Can we tackle a real problem now? ::: |
Duration: 07h 07m | 8. Asyncio |
What is Asyncio? When is Asyncio useful? ::: |
Duration: 07h 47m | 9. Calling External C and C++ Libraries from Python |
Which options are available to call from Python C and C++
libraries? 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.