====== 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 to parallel programming, environment setting | | {{ :courses:pag:introduction.pdf |}} | {{ :courses:pag:metacentrum_signup.pdf |}} {{ :courses:pag:metacentrum_tutorial.zip |}} | | 2 | National holiday | | | | | 3 | OpenMP, part 1 | | {{ :courses:pag:openmp_1.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]]| | 4 | OpenMP, part 2 | | {{ :courses:pag:openmp_2.pdf |}} | {{ :courses:pag:openmp_part2_skeletons.zip |}} {{ :courses:pag:openmp_part2_solutions.zip |}} | | 5 | MPI, part 1 | HW1 |{{ :courses:pag:hw1_omp.pdf |}} {{ :courses:pag:mpi_basics.pdf |}} | {{ :courses:pag:hw1_omp_public.zip |}} {{ :courses:pag:hw1_omp_skeletons.zip |}} {{ :courses:pag:mpi_basics_skeletons.zip |}} {{ :courses:pag:mpi_basics_solutions.zip |}} | | 6 | Extra on OpenMP + MPI | |{{ :courses:pag:openmp_mpi.pdf |}} | {{ :courses:pag:templates.zip |}} {{ :courses:pag:solutions.zip |}} {{ :courses:pag:instances_1.zip |}} {{ :courses:pag:instances_2.zip |}} | | 7 | Theoretical seminar | HW2 | {{ :courses:pag:hw2_mpi.pdf |}} | {{ :courses:pag:hw2_mpi_public.zip |}} {{ :courses:pag:hw2_mpi_skeletons.zip |}} Introduction to Parallel Computing textbook: problems 3.2, 3.21, 4.6, 5.1, 5.10 | | 8 | MPI, part 2 | | {{ :courses:pag:mpi_advanced.pdf |}} | {{ :courses:pag:mpi_advanced.zip |}} | | 9 | Consultation | | | | | 10 | Python numba, part 1 | HW3 | {{ :courses:pag:numba_basics.pdf |}} {{ :courses:pag:hw3_assignment_2022.pdf |}} | {{ :courses:pag:numba_basics_skeletons.zip |}} {{ :courses:pag:hw3_public_inst.zip |}} | | 11 | Python numba, part 2 | HW4 | {{ :courses:pag:hw4_numba_assignment.pdf |}} {{ :courses:pag:numba_advanced.pdf |}} | {{:courses:pag:maze_generator.zip |}} {{:courses:pag:numba_advanced_ipynb.zip |}} | | 12 | Theoretical seminar | | {{ :courses:pag:TheorSeminar2_assignments.pdf |}} | | | 13 | Consultation | | {{ :courses:pag:bonus_assignment.pdf |}} | | | 14 | Assessment + reserve | | | | ===== Classroom computers ===== **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).