====== 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 + beginning of OpenMP part 1 | | {{ :courses:pag:introduction.pdf |}} | {{ :courses:pag:introduction_helloworlds.zip |}} | | 2 | OpenMP part 1 | HW1 | {{ :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_skeletons.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 | HW2 | {{ :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 | Consultation HW1, HW2 & others | | | | | 6 | Matrix algorithms in OpenMP & MPI | | {{ :courses:pag:matrix_algorithms.pdf |}} | {{ :courses:pag:matrix_alg_skeletons.zip |}} {{ :courses:pag:matrix_alg_solutions.zip |}} | | 7 | TEST preparation (Theoretical seminar) | HW3 | {{ :courses:pag:theoretical_seminar_1.pdf |}} {{ :courses:pag:hw3.pdf |}} | {{ :courses:pag:hw3_public.zip |}} | | 8 | MPI part 2 | | {{ :courses:pag:mpi_advanced.pdf |}} | {{ :courses:pag:mpi_advanced_skeletons.zip |}} {{ :courses:pag:mpi_advanced_solutions.zip |}} {{ :courses:pag:mpi_master_slave_skeletons.zip |}} | | 9 | Python numba part 1 | HW4 | {{ :courses:pag:numba_1.pdf |}} {{ :courses:pag:hw4_numba.pdf |}} {{ :courses:pag:hw4_numba_ver2.pdf |}} | {{ :courses:pag:numba_1_skeletons.zip |}} {{ :courses:pag:numba_1_solutions.zip |}} {{ :courses:pag:hw4_numba_skeletons.zip |}} {{ :courses:pag:hw4_numba_public.zip |}} | | 10 | Python numba part 2 | | {{ :courses:pag:numba_2.pdf |}} | {{ :courses:pag:numba_2_examples.zip |}} {{ :courses:pag:numba_2_skeletons.zip |}} {{ :courses:pag:numba_2_solutions.zip |}} {{ :courses:pag:mpi_master_slave_solutions.zip |}} | | 11 | Guidelines for homeworks HW3, HW4 | * | {{ :courses:pag:bonus_assignment.pdf |}} | {{ :courses:pag:metacentrum_signup.pdf |}} {{ :courses:pag:metacentrum_tutorial.zip |}} | | 12 | Theoretical seminar | | {{ :courses:pag:theoretical_seminar_2.pdf |}} | | | 13 | Consultations | | | | | 14 | 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).