University of Pannonia, Faculty of Information Technology
Department of Electrical Engineering and Information Systems

The aim of this course is to provide an introduction to the fundamental issues, theory and practice of parallel programming. Modern software development is impossible without a thourough understanding of parallel and distributed computing technology. The multi-core revolution requires every computer scientist to understand how parallel acrhitecture works and how programs are developed that can make use of the increased computing performance of these platforms.

Key topics

  • Theoretical foundations of parallel program execution
  • Synchronisation of paralell processes
  • Parallel computer architecture
  • Multi-core processors
  • Multi-threaded progrmaming in Java
  • Multi-threaded programmin in OpenMP
  • Performance analysis of parallel programs, performance tuning
  • Message-passing paralellism and MPI
  • Fundamental parallel algorithms (matrix operations, sorting, graph algorithms, etc.)
  • GPU programming in CUDA
  • Application Case Studies

Teaching materials

Sequential Benchmarks

ParallelDraw application (1.41 kB)

MPICH2

matrixSumSimple.tar (14.34 kB)