====== 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 with exception of lab 14. However, the attendance 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 | Cpp11 threads, part 1 | | {{ :courses:pag:cpp_threads_1.pdf |}} | {{ :courses:pag:2_lab_codes_skeletons.zip |}} {{ :courses:pag:2_lab_codes_solutions.zip |}} | | 3 | Cpp11 threads, part 2 | | {{ :courses:pag:cpp_threads_2.pdf |}} | {{ :courses:pag:3_lab_codes_skeletons.zip |}} {{ :courses:pag:3_lab_codes_solutions.zip |}} | | 4 | Assignment of the semester project + HW1 | | {{ :courses:pag:hw1_assignment.pdf |}} {{ :courses:pag:semester_project.pdf |}} | {{ :courses:pag:lu.pdf |}} {{ :courses:pag:hw1_public_instances.zip |}} {{ :courses:pag:hw_1_code_skeletons.zip |}} {{ :courses:pag:semproj_code_skeleton.zip |}} {{ :courses:pag:semproj_public_test_cases.zip |}} | | 5 | OpenMP, part 1 | | {{ :courses:pag:openmp_1.pdf |}} | {{ :courses:pag:5_lab_codes_skeletons.zip |}} {{ :courses:pag:5_lab_codes_solutions.zip |}} [[https://www.openmp.org/wp-content/uploads/OpenMP-4.5-1115-CPP-web.pdf|OpenMP cheatsheet]]| | 6 | OpenMP, part 2 | | {{ :courses:pag:openmp_2.pdf |}} | {{ :courses:pag:6_lab_codes_skeletons.zip |}} {{ :courses:pag:6_lab_codes_solutions.zip |}} | | 7 | HW2 | | {{ :courses:pag:hw2_assignment.pdf |}} | {{ :courses:pag:hw_2_code_skeletons.zip |}} {{ :courses:pag:hw2_public_test_cases.zip |}} | | 8 | Semester project - consultation | | | | | 9 | MPI, part 1 | | {{ :courses:pag:mpi.pdf |}} | {{ :courses:pag:9_lab_codes_skeletons.zip |}} {{ :courses:pag:9_lab_codes_solutions.zip |}} | | 10 | HW3 | |{{ :courses:pag:hw3_assignment.pdf |}} | {{ :courses:pag:hw_3_code_skeletons.zip |}} {{ :courses:pag:hw3_public_test_cases.zip |}}| | 11 | Analysis of parallel algorithms | | | | | 12 | Semester project - consultation | | | | | 13 | Presentations of semester projects, student assessment | Attendance is mandatory | | | ===== 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).