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 2024/25 are being held in S9 from 14:00 to 15:30 every Monday and the labs take place right afterwards (from 15:40 to 17:10) in SU2 (please follow the schedule of lectures and labs for more details).
This is an advanced course. We assume you already have the necessary knowledge from the 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's thesis or even in a doctoral study program. Contact the teacher for more details.
The course is currently led by Martin Kruliš (krulis -at- d3s.mff.cuni.cz). In the past, it was co-lectured with Jakub Yaghob (jakub.yaghob -at- matfyz.cuni.cz).
The primary communication channel is Mattermost. Invitations will be sent to all enrolled students via email at the beginning of the semester.
For the purposes of this course, you will require access to the following head-node servers:
parlab.ms.mff.cuni.cz
- a frontend for CPU-only clustergpulab.ms.mff.cuni.cz
- a frontend for GPU-accelerated clusterAll servers have SSH running on port 42222. Parlab and gpulab are using slurm for job control. Details can be found here https://gitlab.mff.cuni.cz/mff/hpc/clusters.
You may log in using your LDAP (CAS) credentials (with the name-based login, not by UKCO). Your home folder will be created on the first login. The default SLURM account will grant you access to generic job queues that have the 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 to add --gres=gpu:V100:1
(or A100
, or L40
) to the srun
parameters to make sure that you can access the GPU (this is required even for tasks which do not directly require the GPU).
Moreover, always use the designated SLURM account by adding -A nprg058s
parameter. Otherwise, you may not be able to access the queues.