The design of high-performance software for computation-intensive problems requires the integration of knowledge from several subject areas. Understanding the problem and its domain is crucial. Once we understand the domain we can identify or construct efficient algorithms and data structures that are capable of solving the problem quickly and reliably. We must then adapt and optimize these algorithms and data structures to the targeted type of computer system (multicore, heterogeneous, cluster, etc), which requires an understanding of computer architecture. Finally, we need an understanding of parallel programming in order to scale up the computation to multiple processors and/or accelerators.
These perspectives are relevant, to varying degrees, for all computation-intensive problems. When developing high-performance software, one central question is how to dynamically allocate time and effort to maximize the quality of the end product. Should more time be spent searching for more efficient algorithms or is it wiser to further optimize the current implementation to the targeted computer architecture?
In this course, the students practice and demonstrate their ability to design, implement and evaluate high-performance software for a compute-intensive problem in some domain. The main challenge throughout the course is to allocate (and re-allocate) time and resources wisely based on rational arguments supported by the literature and empirical data.
To be admitted you must have 60 ECTS in Computing Science or 2 years of completed studies (120 ECTS), in both cases includning the courses Efficient algorithms, 7.5hp, Computer Organization and Architecture, 7.5hp, and the course Parallel programming for multicore-based systems, 7.5hp or equivalent.
Proficiency in English equivalent to Swedish upper Secondary course English A/5. Where the language of instruction is Swedish, applicants must prove proficiency in Swedish to the level required for basic eligibility for higher studies.
Applicants in some programs at Umeå University have guaranteed admission to this course. The number of places for a single course may therefore be limited.
Application deadline was
15 October 2021.
Please note: This second application round is intended only for EU/EEA/Swiss citizens.