The module aims to provide an introduction to High Performance Computing (HPC) and its role in data sciences. In this course you will learn how to write faster code that is optimized for modern multi-core processors and clusters, using modern software development tools, parallelization strategies, and advanced parallel programming constructs in OpenMP and MPI.
A. Demonstrate understanding of the concepts used in modern processors for increasing the performance.
B. Demonstrate optimization techniques for serial code
C. Understand and apply parallel computing paradigms
D. Write optimized programs designed for high-performance computing systems.
The teaching philosophy of the module follows very much the philosophy of Syntegrative Education. This has meant that the teaching delivery pattern, which follows more intensive block teaching, allows more meaningful contribution from industry partners. This philosophy is carried through also in terms of assessment, with reduction on the use of exams and increase in coursework, especially problem-based assessments that are project focused. The delivery pattern provides space in the semester for students to concentrate on completing the assessments.
Students will be expected to attend formal lectures, seminars, tutorials and labs . Students will be introduced to the academic content and have a understanding of lecture materials. In addition, students are expected to devote unsupervised time to private study. Private study will provide time for reflection and consideration of lecture material and background reading.