•Shared
memory is difficult to use (races, synch); not efficiently implemented; not
realistic
•Message
passing with sequential language (C | Fortran) + (MPI | PVM) is current
standard
–Least
common denominator -- runs everywhere
–A huge
amount of work (6x code explosion)
–Only the API is standard; semantics vary, making any program
implementation-specific; limit porta’ty
–Message
passing is costly on architectures with “good” communication, e.g. 1-sided, SMP