[comp.parallel] Religious Wars

berryman-harry@CS.YALE.EDU (Harry Berryman) (07/13/90)

>>_standard_ Fortran 90. MIMD systems can only be programmed in a
>>language that contains extensions for synchronization.  The SIMD
>>                       Ian Kaplan
>>		       MasPar Computer Corp.
>>		       ian@maspar.com
SIMD is a style of programming, as well as machine orginization.
You can write SIMD code for MIMD machines, just ask Q. Stoute.

>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
>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

Programs on the Myrias DO NOT run deterministicly. This by the admission
of several of your technical staff. The Myrias creates a page
for each iteration of a PARDO loop. To deal with reduction vars,
the pages are "merged", and the order of the merge is not deterministic.
Thus floating point operations may get done in different orders.
Also, since when is PARDO a standard Fortran 77 construct?
Get your story straight.

Religious wars may be entertaing, but seldom are useful. May I suggest
that those who have not programed in both SIMD and MIMD think before
they speak?

Scott Berryman 
Dogma Catcher
ICASE/NASA Langley Research Center
or 
Yale University CS Dept.

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

In article <9654@hubcap.clemson.edu> berryman-harry@CS.YALE.EDU (Harry Berryman) writes:
>Programs on the Myrias DO NOT run deterministicly. This by the admission
>of several of your technical staff. The Myrias creates a page
>for each iteration of a PARDO loop. To deal with reduction vars,
>the pages are "merged", and the order of the merge is not deterministic.
>Thus floating point operations may get done in different orders.
>Also, since when is PARDO a standard Fortran 77 construct?
>Get your story straight.
>
>Religious wars may be entertaing, but seldom are useful. May I suggest
>that those who have not programed in both SIMD and MIMD think before
>they speak?
>
>Scott Berryman 
>Dogma Catcher
>ICASE/NASA Langley Research Center
>or 
>Yale University CS Dept.

Regarding "reduction operators":

Humble apologies. You are correct that use of floating point addition
reduction operators will generally result in rounding differences in
the designated floating point variables between otherwise identical
runs of the same program. I didn't mention this because Myrias has not
yet shipped the reduction operators support; however, reduction
operators will be supported in our next software release.

Here are some other ways to generate non-deterministic programs on a
Myrias machine:
	- rely on the pointer values returned by malloc()
	- almost anything that involves the real-time clock
	- use of undefined variables generated by parallel merging
	  (the debugger will catch this for you if you ask it to)
	- perform I/O in parallel without using the provided
	  seekread and seekwrite indivisible intrinsics.
	- ... I suspect there may be more

Despite these exceptions (some of which are familiar from
multi-tasking serial machines), the basic model of parallelism is
entirely deterministic. In the context of the discussion that prompted
my original response, it is not necessary to be concerned with any of
the synchronization issues that are normally associated with MIMD
machines. Nevertheless, I apologize if my original statement was
misleading; it is certainly possible to create a non-deterministic
program on a Myrias machine.

Regarding "standard Fortran 77":

To quote the Fortran 77 standard, "A processor conforms to this
standard if it executes standard-conforming programs in a manner that
fulfills the interpretations described herein. A standard-conforming
processor may allow additional forms and relationships provided that
such additions do not conflict with the standard forms and
relationships" (ANSI X3.9-1978 page 1-2 lines 25 to 30).

If you take a standard-conforming Fortran 77 program and run it on an
SPS-2 or SPS-3, it will run as the Standard says it should (if it
doesn't, you have found a bug). So, the SPS machines run "standard
Fortran 77". PARDO is an extension, but the Standard explicitly allows
that.


I understand that NASA Langley has just acquired a Myrias SPS-2 for
evaluation. I hope you will have an opportunity to try it yourself,
and comment on your experiences.


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