Multicore processors with several processors on a single chip are standard in servers, PCs, and mobile phones. A double-digit number of cores is not unusual for general-purpose processors; for graphics cards, it's even thousands. All aspects of software development are now challenged to take advantage of these new hardware capabilities. Parallel programming is difficult, so in order to scale, we need better software engineering techniques, increased robustness, and a smarter exploitation of hardware resources.
These goals are in the main focus of our research group. We aim to make parallel programming easier for the average programmer and explore new application areas for parallel computing by collaborating with industry partners. Among others, our spectrum of research areas includes:
Automatic performance tuning (auto-tuning) of multicore applications
Programming language extensions and language usability for multicore
Testing and debugging of parallel programs
Tools and development environments for multicore software