High-Performance Computing (HPC): ‣ Parallel programming ‣ Resource-aware computing ‣ Programming of Supercomputers
HPC concentrates on the development of applications of the "Supercomputers", which solve large-scale science & engineering problems that are either too large for standard computers or would take too long. With the ever advancing technologies and increasing computational power, parallelization and hardware/resource-awareness are THE KEYS to harness the power to achieve outstanding performance.
We target on various systems, ranging from Multiprocessor Systems-on-a-Chip (MPSoC) (shared memory) to clusters (distributed memory) and supercomputers (hybrid, comprising tens of thousands of processors). Load balancing, minimization of the inter-process communication, or software tuning are just some of the issues playing a decisive role in the development of efficient application software for HPC systems.
Students in these projects will typically adapt existing algorithms of practical interests to the requirements of concrete systems, such as MPSoCs or clusters. The applications in focus are mainly from (yet not restricted to) the field of computational science and engineering, such as flows and fluid - structure interaction, molecular dynamics or traffic simulation.
- Interest in the development of parallel programs for simulations, intended to be run on supercomputers
- Interest in numerical algorithms of practical value in computational applications
- MPI or thread programming basic skills
Some keywords: HPC, load balancing, optimization, MPI, OpenMP, X10, hardware-aware, resource-aware, invasive computing