Introduction to Parallel Computing

Course Code: Ν2-5030
Weekly Dutry: 4 (2Th + 2L)
ECTS: 5
typical Semester: 5th
Course Category: Specialty Course
Prerequisites: Computer Programming

Learning Outcomes

The course aims to introducing students to the basic concepts of parallel processing, parallel architectures (shared-memory multiprocessors, distributed-memory multicomputers), interconnection networks, parallel computation models, design and implementation of parallel algorithms, and programming parallel machines. Upon successful completion of the theoretical and laboratory part of the course the student:

  • will be familiar with the concepts of parallel processing and understand the particular problems arising in programming of parallel machines;
  • will be familiar with the parallel computing models and the “parallel-way of thinking” required in the design of parallel algorithms;
  • will be able to apply the basic algorithmic techniques and design algorithms in a shared memory as well as a distributed memory environment;
  • will understand and be able to apply basic parallel programming principles in a shared/ distributed memory environment

Course Content
  • Parallel Computing Concepts.
  • Basics of Parallel Machine Architectures (Shared-memory Multiprocessors, Distributed-memory Multicomputers), Interconnection Networks.
  • Parallel Computation Models, Simulations among Models, Brent’s Scheduling Principle.
  • Basic parallel Algorithmic Techniques for Shared and Distributed Memory Machines.
  • Design of Parallel Algorithms for Shared and Distributed Memory Machines.
  • Introduction to Shared Memory Programming using OpenMP.
  • Introduction to Distributed Memory programming using MPI.

Literature
  1. Γρ. Πάντζιου, Β. Μάμαλης, Α. Τομαράς “Εισαγωγή στον Παράλληλο Υπολογισμό: Πρότυπα, Αλγόριθμοι, Προγραμματισμός”, Εκδόσεις Νέων Τεχνολογιών, 2013.
  2. F.T. Leighton, “Introduction to Parallel Algorithms and Architectures:Arrays, Trees, Hypercubes”, Morgan Kaufmann, San Mateo, CA, 1992.
  3. M. Quinn, “Parallel Programming in C with MPI and OpenMP”, Mc Graw Hill, 2003.
  4. S. Rajasekaran and J. Reif, “Handbook of Parallel Computing: Models,Algorithms and Applications”, Chapman and Hall/CRC, 2007.
  5. J. JáJá, “An Introduction to Parallel Algorithms”, Addison Wesley, 1992.
  6. TΑ. Gibbons and W. Rytter, “Efficient Parallel Algorithms”, CambridgeUniversity Press, Cambridge, 1990.
  7. Peter Pacheco, An Introduction to Parallel Programming , Morgan Kaufmann, 2011.
  8. ΠαπαδάκηςΣ., ΔιαμαντάραςΚ., Προγραμματισμός και Αρχιτεκτονική Συστημάτων Παράλληλης Επεξεργασίας, Εκδόσεις Κλειδάριθμος, 2012.
  9. KirkD.B., HwuW.M., Προγραμματισμός Μαζικά Παράλληλων Επεξεργαστών, Εκδόσεις Κλειδάριθμος, 2010.
  10. Lawrence Livermore National Laboratories MPI Tutorial, http://www.llnl.gov/computing/ tutorials/mpi/
  11. Lawrence Livermore National Laboratories openMP Tutorial, http://www.llnl.gov/computing/ tutorials/openMP/

Internationalisation I18n