The loosely synchronous programming model leads to programs that are
easily developed, debugged, and modelled, and perform extremely well on
parallel machines.
Using high-level and collective communication routines simplifies
coding for the user and allows implementors the flexibility to generate high
performance on arbitrary architectures.
A good parallel model of I/O and graphics leads to programs that are
portable, efficient, and easily understood. They also adapt well to
special-purpose hardware.
You don't need a ``real operating system'' to get high performance from
parallel computers. This is not surprising; a critical ``reality''
for generally useable systems is the ``ease of use'' and flexibility of
``real'' operating systems. They are not designed just for performance,
and, indeed, sacrifice it for the other design features.
Portability, programmability, and performance are the most important
message-passing system qualities, and are not mutually exclusive.