NPRG042 Programming in Parallel Environment
Lab Test
The final test will be held during the exam period of the semester in the PC labs, and students will enroll for the terms in SIS. The test is worth 8 points (i.e., two home assignments). There will be 3 regular attempts for the test; however, you may retake the test only if you failed it (your solution is not worth any points) or your total sum of points is still in the range of mark 4 (failed).
The main goal is to assess students' parallelization skills on the premises without the benefit of AI, external help, or undesired internet sources. Students may be required to explain (personally) their solutions (with particular focus on the parallelization and the parallel technologies used) in the case of any irregularities.
Prerequisites
- Students need at least 1 point from each home assignment before attending the test.
- Make sure you can log in to the lab PCs and are familiar with their software tools (IDE, SSH client, ...).
- Make sure you can log in to ReCodEx; it is recommended that you have a local account since CAS is not under our control.
Test assignments
There will be two assignments (4 points each) presented at the test:
- CPU-related assignment (in C++): The CPU-related assignment can be parallelized using any of the presented technologies (TBB, OpenMP, or parallel constructs present in the C++ standard library) and evaluated on parlab. C# .NET solutions will not be required or accepted.
- GPU-related assignment: The GPU-related assignment must be parallelized in SYCL using the Intel DPC++ compiler and evaluated on hpc.troja cluster (volta02 worker).
You may expect assignments similar to those you solved in the home assignments and lab tutorials, or those discussed during the lectures. Serial solutions will be provided as a reference implementation for correctness and as a baseline for performance evaluation. It is expected that simpler solutions will require only a few lines of code to be written by the students.
Technical details and security
Students are not allowed to use any external help from other people or AI tools. However, access to the accepted solutions in ReCodEx will be provided, and the lecture materials on the website will be available during the test. In particular, the following sites will be accessible from the labs (all other sites will be blocked):
- ReCodEx
- Course website including all materials
- C++ reference
- Intel oneTBB developer guide
- OpenMP reference
- Khronos SYCL reference
Furthermore, you will be granted access to the parlab and hpc.troja clusters (where the home assignments were evaluated).
Beware that your actions in the labs (and on the HPC clusters) will be monitored. Any attempt to breach security will result in immediate forfeiture of the test, and a record in the PlagUE system will be created (which may lead to subsequent disciplinary and legal actions). Let us emphasize that even though some actions are not technically prevented (e.g., using parlab to access unauthorized materials on the internet), they are still forbidden. Furthermore, students may be required to explain their solutions in person, especially when any irregularities are detected.
Grading
Similarly to the home assignments, speedup will be the primary criterion for grading. Grading tables will be provided separately for the individual assignments. Additionally, a student must receive at least 1 point from each assignment; otherwise, the result of the whole test is 0 points.
The solutions will be submitted to ReCodEx, where smoke tests are conducted (similarly to the home assignments), and then evaluated on the cluster to measure performance (after the test). Finally, the solutions will be reviewed by the teacher (please note that the review process may take some time, possibly a few days).
Unlike the home assignments, passing the test cases may not be sufficient. If a serious flaw (e.g., a race condition) is revealed in the manual testing, the solution will be treated as incorrect (i.e., 0 points awarded). The accepted flag in ReCodEx will indicate which solution was evaluated on the cluster, and the reviewed flag will indicate that the solution was reviewed (and graded) by the teacher (possibly with comments, if any problems are revealed). Unlike the home assignments, the points will be assigned in ReCodEx, so only the authors of the solutions will be able to see their points.