Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!usc!samsung!emory!hubcap!sjl From: sjl@myrias.com (Stuart Lomas) Newsgroups: comp.parallel Subject: Re: Religious Wars(was SIMD vs MIMD programming) Message-ID: <9767@hubcap.clemson.edu> Date: 20 Jul 90 11:39:06 GMT Sender: fpst@hubcap.clemson.edu Followup-To: comp.parallel Lines: 71 Approved: parallel@hubcap.clemson.edu 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