The design and implementation of concurrent or distributed systems is a notoriously difficult development process. This lab gives students the opportunity to gain experience by applying the theory learned in related lectures in practice (via programming). While the inherent goal of the lab is to find a scalable solution for the given task, students have the freedom to choose their favorite programming language, model, libraries and tools. Students will be given a set of 3 computational problems each with a sequential solution and have to design and implement a parallelized solution.
Problems are given from Marathon of Parallel Programming competition. You can find more on their website. (Unfortunately I don't have the access to the link any more.)
More details are available in reports.