To satisfy the growing demands of their users, computer applications need more computational power. However, stagnating single-core performance imposes a limit on what a program running on a single microprocessor can achieve, which is not enough for many purposes. Examples include realistic simulations of many physical or biological processes, the real-time analysis of huge volumes of data, or artificial intelligence.
On the other hand, today even laptops and smartphones are already shipped with more than one processor core. Modern supercomputers provide even up to several millions. Unfortunately, developing programs that efficiently use several cores at once is still an art mastered only by experts. To harness this enormous reservoir of computational resources for individual applications in spite of these challenges, the Laboratory for Parallel Programming devises novel methods, tools, and algorithms to exploit massive parallelism on modern hardware architectures. Currently, we conduct research in the following areas:
Our research is carried out in a number of externally funded projects:
As part of our research, we design and implement parallel programming tools, which we make freely are available under an open-source license.
The development of our performance-modeling tool Extra-P is carried out in the framework of the Virtual Institute – High Productivity Supercomputing, a community organization for the development and promotion of programming tools designed for high-performance computing.