Lecture Concepts and Models of Parallel and Data-centric Programming

The traditional simulation is increasingly enhanced by modeling based on (large) data sets. Methods and tools of parallel programming foster the setup, evaluation and adoption of compute-intensive and complex models. In parallel processing of large amounts of data, novel programming models offer additional functionality and performance improvements by adopting data-centric approaches instead of focusing on computations. In this lecture, corresponding programming models, selected algorithms and tools are presented which are used in high-performance computing and data sciences.

The objectives of the lecture are the classification of parallel systems in high-performance computing, as well as the processing of large data sets (big data) and the understanding of optimization and parallelization concepts to exploit these systems. This includes the knowledge and comprehension of the implementation of various programming models, of selected parallel algorithms and respective complexity characteristics and scalability limits.

Content

  • Architecture of parallel computers (clusters) for the application in high-performance computing and in the processing of large amounts of data (big data)
  • Parallel programming models: instruction level, accelerators, shared memory, distributed memory, MapReduce concept
  • Parallel processing of I/O
  • Synchronization concepts used by parallel programming models
  • Realization of commonly used (abstract) data types in parallel programming models
  • Selected parallel algorithms from different application areas
  • Modeling of parallelism (speedup, efficiency, scalability limits) and performance
  • Further selected topics

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