====== Labs ====== The aim of labs is to familiarize students with the design and implementation of parallel algorithms and to practice the theory from lectures. The tasks are proposed in a way that enables to test/debug/run them on conventional computers. For the purpose of computationally demanding experiments, we arranged the access to [[https://www.metacentrum.cz/|Metacentrum]]. Attendance at labs is not compulsory, however, it is strongly recommended. Our goal is to improve students' knowledge of parallel algorithms, not just to record presence. ===== Plan of the Labs ===== ^ n. ^ Topic ^ Notes ^ Handouts ^ Other materials ^ | 1 | Introduction | | {{ :courses:pag:introduction.pdf |}} | {{ :courses:pag:introduction_helloworlds.zip |}} {{ :courses:pag:msys2_trouble.txt |}} | | 2 | OpenMP part 1 | HW | {{ :courses:pag:openmp_1.pdf |}} {{ :courses:pag:hw1_omp.pdf |}} | {{ :courses:pag:openmp_part1_skeletons.zip |}} {{ :courses:pag:openmp_part1_solutions.zip |}} [[https://www.openmp.org/wp-content/uploads/OpenMP-4.5-1115-CPP-web.pdf|OpenMP cheatsheet ]] {{ :courses:pag:hw1_omp_skeleton.zip |}} {{ :courses:pag:hw1_omp_public.zip |}} | | 3 | OpenMP part 2 | | {{ :courses:pag:openmp_2.pdf |}} | {{ :courses:pag:openmp_part2_skeletons.zip |}} {{ :courses:pag:openmp_part2_solutions.zip |}} | | 4 | MPI part 1 | HW | {{ :courses:pag:mpi_basics.pdf |}} {{ :courses:pag:hw2_mpi.pdf |}} | {{ :courses:pag:mpi_basics_skeletons.zip |}} {{ :courses:pag:mpi_basics_solutions.zip |}} {{ :courses:pag:hw2_mpi_skeletons.zip |}} {{ :courses:pag:hw2_mpi_public.zip |}} | | 5 | Metacentrum, Consultations HW1, HW2 & others | Report | /*{{ :courses:pag:bonus_assignment.pdf |}}* | /*{{ :courses:pag:metacentrum_signup.pdf |}} {{ :courses:pag:metacentrum_tutorial.zip |}} [[https://wiki.metacentrum.cz/w/images/9/9f/Quickstart-pbspro-small.pdf|PBS cheatsheet]] [[https://wiki.metacentrum.cz/wiki/Pruvodce_pro_zacatecniky|Wiki Beginners (CZ)]] [[https://wiki.metacentrum.cz/wiki/Paralelizace|Wiki Parallelization (CZ)]]* | | 6 | No lab | | | | | 7 | Matrix algorithms in OpenMP & MPI | | /*{{ :courses:pag:matrix_algorithms.pdf |}}* | /*{{ :courses:pag:matrix_alg_skeletons.zip |}} {{ :courses:pag:matrix_alg_solutions.zip |}}* | | 8 | Theoretical seminar I (TEST preparation) | | /*{{ :courses:pag:theoretical_seminar_1.pdf |}}* | /*{{ :courses:pag:prefix_sums.pdf |}}* | | 9 | Python numba part 1 | HW | /*{{ :courses:pag:numba_1.pdf |}} {{ :courses:pag:hw3_gpu.pdf |}}* | /*{{ :courses:pag:numba_1_skeletons.zip |}} {{ :courses:pag:numba_1_solutions.zip |}} {{ :courses:pag:hw3_gpu_skeleton.zip |}} {{ :courses:pag:hw3_gpu_public.zip |}}* | | 10 | Python numba part 2 | | /*{{ :courses:pag:numba_2.pdf |}}* | /*{{ :courses:pag:numba_2_skeletons.zip |}} {{ :courses:pag:numba_2_solutions.zip |}}* | | 11 | MPI part 2 | HW | /*{{ :courses:pag:mpi_advanced.pdf |}} {{ :courses:pag:hw4_bratley.pdf |}}* | /*{{ :courses:pag:mpi_advanced_skeletons.zip |}} {{ :courses:pag:mpi_advanced_solutions.zip |}} {{ :courses:pag:hw4_bratley_public.zip |}}* | | 12 | Theoretical seminar II | | /*{{ :courses:pag:theoretical_seminar_2.pdf |}}* | /* {{ :courses:pag:mpi_master_slave_skeletons.zip |}} {{ :courses:pag:mpi_master_slave_solutions.zip |}}* | | 13 | Theoretical seminar II, Consultations | | | | | 14 | Exam preparation | | | | ===== Classroom computers ===== (information under review due to classroom change) **OS**: Debian Linux 64b, select “DCE PXE” (without number) during booting **Login**: username + main CTU password (the one you use for KOS) **Development environments**: CLion (C++), Visual Studio Code, GVim, Eclipse, Geany are installed. CLion is installed in ''/opt'' and its license have to be activated (use your JetBrains account).