Two Parallel Programming Styles


Shared Memory

Distributed Memory with Message Passing

Features

  • Threads or forked processes
  • Locks, semaphores
  • Shared data

Advantages

  • Familiar, lots of literature
  • Data transfer is often very fast
  • New threads or processes can be created during runtime

Disadvantages

  • Poor scalability
  • Data corruption is easy
  • Many different implementations (and even styles) with different features and interfaces

Features

  • Several independent processes
  • No shared data
  • Messages used for communication

Advantages

  • Highly scalable
  • Widely used
  • Standardized interface (MPI)
  • Distributed memory provides some protection against corruption

Disadvantages

  • Data transfer can be slow
  • In MPI-1, no new processes can be spawned during runtime
  • Not yet well-addressed formally in schools
Back (Parallel Programming)
Next (MPI)