Software engineering for multicore systems: an experience report

  • Authors:
  • Victor Pankratius;Christoph Schaefer;Ali Jannesari;Walter F. Tichy

  • Affiliations:
  • University of Karlsruhe, Karlsruhe, Germany;University of Karlsruhe, Karlsruhe, Germany;University of Karlsruhe, Karlsruhe, Germany;University of Karlsruhe, Karlsruhe, Germany

  • Venue:
  • Proceedings of the 1st international workshop on Multicore software engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

The emergence of inexpensive parallel computers powered by multicore chips combined with stagnating clock rates raises new challenges for software engineering. As future performance improvements will not come "for free" from increased clock rates, performance critical applications will need to be parallelized. However, little is known about the engineering principles for parallel general-purpose applications. This paper presents an experience report with four diverse case studies on multicore software development for general-purpose applications. They were programmed in different languages and benchmarked on several multicore computers. Empirical findings include: 1) Multicore computers deliver: Real speedups are achievable, albeit with significant programming effort and speedups that are typically lower than the number of cores employed; 2) Massive refactoring of sequential programs is required, sometimes at several levels. Special tools for parallelization refactorings appear to be an important area of research; 3) Autotuning is indispensable, as manually tuning thread assignment, number of pipeline stages, size of data partitions and other parameters is difficult and error prone; 4) Architectures that encompass several parallel components are poorly understood. Tuneable architectural patterns with parallelism at several levels need to be discovered.