====== 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]]. In order to show new trends in parallel programming, the semester project is focused on Xeon Phi coprocessor. 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:b4m35pag:introduction.pdf |}} | {{ :courses:b4m35pag:metacentrum.pdf | MetaCentrum tutorial}} {{ :courses:b4m35pag:metacentrumexample.zip | Metacentrum example code}} | | 2 | Cpp11 threads, part 1 | | {{ :courses:b4m35pag:cpp_threads_1.pdf |}}| {{ :courses:b4m35pag:02_lab_codes.zip |}} | | 3 | Cpp11 threads, part 2 | | {{ :courses:b4m35pag:cpp_threads_2.pdf |}}|{{ :courses:b4m35pag:03_lab_codes.zip |}} | | 4 | Assignment of the semester project + HW1 | | {{ :courses:b4m35pag:hw1_assignment.pdf |}} {{ :courses:b4m35pag:semester_project.pdf |}}|{{ :courses:b4m35pag:hw1_skeleton.zip |}} {{ :courses:b4m35pag:hw1_public_test_cases.zip |}} {{ :courses:b4m35pag:hw1_instance_generator.zip |}} {{ :courses:b4m35pag:semester_project_codes.zip |}} [[https://rein.utsc.utoronto.ca/teaching/PSCB57_notes_lecture09.pdf|NBody tutorial part 1]] [[https://rein.utsc.utoronto.ca/teaching/PSCB57_notes_lecture10.pdf|NBody tutorial part 2]] | | 5 | OpenMP, part 1 | |{{ :courses:b4m35pag:openmp_1.pdf |}} |{{ :courses:b4m35pag:05_lab_codes.zip |}} [[https://www.openmp.org/wp-content/uploads/OpenMP-4.5-1115-CPP-web.pdf|OpenMP cheatsheet]] | | 6 | OpenMP, part 2 | |{{ :courses:b4m35pag:openmp_2.pdf |}} |{{ :courses:b4m35pag:06_lab_codes.zip |}} | | 7 | HW2 | | {{ :courses:b4m35pag:hw2_assignment.pdf |}} | {{ :courses:b4m35pag:hw2.zip |}} {{ :courses:b4m35pag:hw2_public_test_cases.zip |}}| | 8 | Semester project - consultation | | | | | 9 | MPI, part 1 | | {{ :courses:b4m35pag:mpi.pdf |}}| {{ :courses:b4m35pag:09_lab_codes.zip |}} | | 10 | MPI, part 2 and HW3 | | {{ :courses:b4m35pag:hw3_assignment.pdf |}} | {{ :courses:b4m35pag:hw3.zip |}} {{ :courses:b4m35pag:hw3_public_test_cases.zip |}}| | 11 | Semester project - consultation | | | | | 12 | Semester project - consultation | | | | | 13 | Semester project - consultation | | | | | 14 | Presentations of semester projects, student assessment | Attendance is mandatory | | | ===== Classroom computers ===== **OS**: Debian Linux 64b, select "DCE PXE -> DCE 4.9 stretch app" 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 (this is done by setting the license server that will be provided to you during the first lab).