Introduction to Parallel Computing

Description

Parallel computing offers tremendous challenges and opportunities in today’s world. The ability to develop parallel applications on parallel computers (multicore, manycore and/or computer clusters) is an indispensable skill for computer scientists and engineers for now and coming years

In this course, you will learn about parallel architectures, models and algorithms, programming techniques for multiprocessors, and applications of parallel computing. We will study some basic techniques that are useful for designing algorithms suitable for implementation on parallel computers.

Topics

  1. Overview and motivation
  2. Concepts and terminology
  3. Parallel computer architectures
    • Memory hierarchy
    • Interconnection
  4. Parallel programing models
    • Parallel execution
    • Communication
    • Synchronization
    • Memory consistency
    • Run-time systems
    • Productivity
    • Performance
  5. Designing and analysis of parallel algorithms
    • Performance models (PRAM)
    • basic algorithms:
      • reduction
      • scatter-gather
      • prefix-sum
      • sorting algorithms
      • graph algorithms

References

  1. Introduction to Parallel Computing, Ananth Grama, George Karypis, Vipin Kumar and Anshul Gupta, Addison Wesley, 2 edition, 2003.
  2. Parallel Programming in C with MPI and OpenMP, Michael Quinn, McGraw-Hill, 2003.
  3. Computer Architecture, 4th Edition: A Quantitative Approach, John L. Hennessy and David A. Patterson, Morgan Kaufmann, 2006.
  4. An Introduction to Parallel Algorithms, Joseph JaJa, Addison-Wesley Publishing Company, 1992.
 
introparcomp.txt · Última modificación: 2011/01/24 15:30 (editor externo)
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki