NPRG058: Advanced Programming in Parallel Environment


This is an informational web page for the Advanced Programming in Parallel Environment course (NPRG058), which is being taught at the Faculty of Mathematics and Physics, Charles University in Prague. The lectures in 2022/23 are being held in S7 from 14:00 to 15:30 every Wednesday and the labs take place in SU2 from 17:20 to 18:50 on the same day (please follow the schedule of lectures and labs for more details).

The lectures were moved from S1 to S7! (effective from October 26)

This is an advanced course. We assume you already have the necessary knowledge from basic course NPRG042 Programming in parallel environment as well as decent coding skills in C++.

There is also an option to get yourselves involved in research directly connected to parallel programming in exchange for receiving a credit or replacing some of the course assignments with research-related assignments. It is also possible to pursue some of the research topics as master theses or even in doctoral study program. Contact the teachers for more details.


The course is currently led by Martin Kruliš (krulis -at- and Jakub Yaghob (jakub.yaghob -at-

The primary communication channel is Mattermost. Invitation will be sent to all enrolled students via email.

Hardware Info

For the purposes of this course, you will require access to following servers:

All servers have SSH running on port 42222. Parlab and gpulab are using slurm for job control. Details can be found here

You may log in using your LDAP (CAS) credentials (with the name-based login, not by UKCO). An account will be created on the first login. The default account will grant you access to generic job queues which have lowest priorities. You will be assigned access to better queues (slurm account nprg058s) before the first labs.

For running short jobs on the gpulab, use gpu-short task queue. Also do not forget add --gres=gpu:volta:1 to the srun parameters to make sure that you can access the GPU. Moreover, always use designated slurm account by adding -A nprg058s parameter. Otherwise you will not be able to access the queues.

Access to grafik standalone server is managed by explicit whitelist and is reserved for special assignments (e.g., students who wish to participate on research as well).