[comp.parallel] SIMD vs MIMD programming

sjl@myrias.com (Stuart Lomas) (07/11/90)

In article <9521@hubcap.clemson.edu> argosy!ian@decwrl.dec.com (Ian L. Kaplan) writes:
>  Perhaps the difference in the execution efficiency between the Intel
>cube (an MIMD machine) and the CM-2 (a SIMD machine) is due to the
>fact (not doubt hotly contested) that SIMD systems are easier to
>program. ...
>
>			...  SIMD systems can be programmed in
>_standard_ Fortran 90. MIMD systems can only be programmed in a
>language that contains extensions for synchronization.  The SIMD
>programmer need only consider machine architecture when it comes to
>making their program run more efficiently.  The MIMD programmer must
>consider the machine architecture or the program will not run
>deterministicly.  Full symbolic debugging can also be supported on a
>SIMD machine.  Has anyone done a symbolic debugger for a large scale
>MIMD system?
>
>  Of course I am biased.
>
>                       Ian Kaplan
>		       MasPar Computer Corp.
>		       ian@maspar.com
	
Most MIMD machines are indeed dificult to program. However, if the net
will forgive me an arguably commercial posting, I would like to
present a counter example. The machine in question is the SPS series
from Myrias Research Corporation, a large scale MIMD machine. Please
be warned that I work for Myrias Research.

Myrias machines are programmed in standard Fortran 77. To make a
program run in parallel, it is necessary to label the loops that can
be executed in parallel, by putting 'PAR' in front of the 'DO'. If you
don't do this, your program runs serially, but it still runs.

Programs on a Myrias machine run deterministicly, and the machine
architecture can be ignored except for efficiency considerations. (It
is possible to generate a race condition if you go through the I/O
system, but that is really stretching a point). If a program runs
correctly on N processors, it will run correctly on any other number
of processors provided there is enough memory.

All Myrias machines support full source-level symbolic debugging as a
standard feature.


Stuart Lomas				sjl@myrias.com or uunet!myrias!sjl
Myrias Research Corporation		phone: +1 403 428 1616
#900 10611 98 Ave, Edmonton, Alberta, Canada, T5K 2P7

dfk@grad13.cs.duke.edu (David F. Kotz) (07/13/90)

In article <9633@hubcap.clemson.edu>, sjl@myrias.com (Stuart Lomas) writes:
> Most MIMD machines are indeed dificult to program.
...
> Myrias machines are programmed in standard Fortran 77.
And hence it is also difficult to program  ;-)

...
> Programs on a Myrias machine run deterministicly, and the machine
> architecture can be ignored except for efficiency considerations. 
What is difficult about programming many MIMD (or SIMD) systems is to
make an *efficient* program (the original point of this thread of
discussion).  Just getting your program to run is not always that
hard, although of course some systems/languages are easier than others
in this respect. To make an efficient program, unfortunately, one must
usually pay attention to architectural details. 

[This is not to slight SPS, since it is possible your system provides
a very convenient interface for using simple parallelism, which may be
enough for many users/applications. This in itself is an important
feature. ]

> Stuart Lomas				sjl@myrias.com or uunet!myrias!sjl
> Myrias Research Corporation		phone: +1 403 428 1616
> #900 10611 98 Ave, Edmonton, Alberta, Canada, T5K 2P7

David Kotz

Department of Computer Science, Duke University, Durham, NC 27706 USA
ARPA:	dfk@cs.duke.edu
CSNET:	dfk@duke        
UUCP:	decvax!duke!dfk