Basic Parallel and Distributed Computing Curriculum

With the advent of multi-core processors and their fast expansion, it is quite clear that {\em parallel computing} is now a genuine requirement in Computer Science and Engineering (and related) curriculum. In addition to the pervasiveness of parallel computing devices, we should take into account the fact that there are lot of existing softwares that are implemented in the sequential mode, and thus need to be adapted for a parallel execution. Therefore, it is required to the programmer to be able to design parallel programs and also to have some skills in moving from a given sequential code to the corresponding parallel code. In this paper, we present a basic educational scenario on how to give a consistent and efficient background in parallel computing to ordinary computer scientists and engineers.

[1]  Gerhard Wellein,et al.  Introduction to High Performance Computing for Scientists and Engineers , 2010, Chapman and Hall / CRC computational science series.

[2]  Claude Tadonki,et al.  A Fine-grained Approach for Power Consumption Analysis and Prediction , 2014, ICCS.

[3]  Leonie Kohl,et al.  Parallel Programming In C With Mpi And Open Mp , 2016 .

[4]  F. Leighton,et al.  Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes , 1991 .

[5]  Ronald H. Perrott,et al.  Parallel programming , 1988, International computer science series.

[6]  Claude Tadonki,et al.  An efficient CELL library for lattice quantum chromodynamics , 2010, CARN.

[7]  Claude Tadonki,et al.  High Performance Computing as a Combination of Machines and Methods and Programming , 2013 .

[8]  Ricardo C. Corrêa,et al.  Models for Parallel and Distributed Computation: Theory, Algorithmic Techniques, and Applications , 2002 .

[9]  Claude Tadonki,et al.  QIRAL: A High Level Language for Lattice QCD Code Generation , 2012, ArXiv.

[10]  Fayez Gebali,et al.  Algorithms and Parallel Computing , 2011 .

[11]  Robert Michael Kirby,et al.  Parallel Scientific Computing in C++ and MPI - A Seamless Approach to Parallel Algorithms and their Implementation , 2003 .

[12]  Michelle Pal,et al.  Communication Complexity and Parallel Computing , 1999, IEEE Concurrency.

[13]  Peter S. Pacheco Parallel programming with MPI , 1996 .

[14]  D. M. Hutton,et al.  The Art of Multiprocessor Programming , 2008 .

[15]  Ronald Fagin,et al.  The Theory of Data Dependencies - An Overview , 1984, ICALP.

[16]  Shivakant Mishra,et al.  Modeling CPU energy consumption for energy efficient scheduling , 2010, GCM '10.

[17]  Richard M. Karp,et al.  The Organization of Computations for Uniform Recurrence Equations , 1967, JACM.

[18]  Ivelin Ivanov,et al.  Parallel processing and parallel algorithms: theory and computation , 2002, SIGA.

[19]  L. Ridgway Scott,et al.  Scientific Parallel Computing , 2005 .

[20]  David Kaeli,et al.  Introduction to Parallel Programming , 2013 .

[21]  Jie Cheng,et al.  Programming Massively Parallel Processors. A Hands-on Approach , 2010, Scalable Comput. Pract. Exp..

[22]  Frank Thomson Leighton Introduction to parallel algorithms and architectures: arrays , 1992 .

[23]  Sanjay V. Rajopadhye,et al.  The Algebraic Path Problem Revisited , 1999, Euro-Par.

[24]  S. Sitharama Iyengar,et al.  Introduction to parallel algorithms , 1998, Wiley series on parallel and distributed computing.

[25]  H. James Hoover,et al.  Limits to Parallel Computation: P-Completeness Theory , 1995 .

[26]  Zbigniew J. Czech,et al.  Introduction to Parallel Computing , 2017 .

[27]  Jack Dongarra,et al.  Sourcebook of parallel computing , 2003 .

[28]  Thomas Rauber,et al.  Parallel Programming: for Multicore and Cluster Systems , 2010, Parallel Programming, 3rd Ed..

[29]  Barbara Chapman,et al.  Using OpenMP - portable shared memory parallel programming , 2007, Scientific and engineering computation.

[30]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[31]  Song Huang,et al.  On the energy efficiency of graphics processing units for scientific computing , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.