Lecture Performance and Correctness Analysis of Parallel Programs

Increasingly-complex scientific and industrial simulations need an increasing degree of parallelism to efficiently exploit the power of today’s and future high-performance computers. This increase in parallelism also introduces new complexity to application programming. With that, errors such as deadlocks and data races are likely to occur more often. They can be detected by correctness analysis methods that are part of this lecture. The (resulting) correct parallel program can then be analyzed with respect to its optimization in performance.

The objectives of the lecture are the understanding and detection of performance problems and sources of programming errors in parallel applications, as well as the understanding of methods and tools for (semi)-automatic performance and correctness analysis.

Content

  • Scalability of parallel applications
  • Performance monitoring (profiling, tracing, event-driven, sample-driven)
  • Instrumentation
  • Methods of performance analysis
  • Error classes (deadlocks, race conditions)
  • Traditional debugging technology - methods for error detection (static program analysis, runtime, formal methods)
  • Errors in programming with MPI
  • Deadlock detection
  • Design methods for error prevention and detection (assertions, correctness-by-construction)

The list of current courses can be found at Teaching – Chair for Computer Science 12.