At 7:02 -0600 3/20/98, Thorsten Ohl wrote:
>Currently, the standard says that elemental implies pure. From the
>parallel point of view, this makes a lot of sense, but is it really
>required?
Are you suggesting that elemental be allowed to be impure only if it is not
used in a parallel context? Or are you suggesting that the requirements of
parallelism are trumped by something else (I guess user convenience)?
>
>As I see it, elemental is syntactic sugar for ``broadcast the
>arguments and call the procedure in a `forall' assignment''.
>Impure elemental would be syntactic sugar for ``broadcast the
>arguments and call the procedure in array element order''.
>
>This extension would allow to use the expressive power of elemental
>for procedures which do I/O or perform the stop statement. A
>particular application would be the debugging of complicates
>elemental procedures.
>--
>Thorsten Ohl, Physics Department, TU Darmstadt -- [log in to unmask]
>http://crunch.ikp.physik.tu-darmstadt.de/~ohl/ [<=== PGP public key here]
This seems to be the same discussion as we had last week.
If you are suggesting that the impure elemental can be used in a FORALL or
array assignment context, then your interpretation amounts to serializing
those parallel constructs. Depending on details of how this is declared,
that serialization might be for all array assignments, for array
assignments that call elemental functions, or for array assignments that
call impure elementals. This seems to defeat the purpose of array
constructs; I'd advise against it.
Is there something wrong with debugging the elemental function as a
"normal" function?
Chuck Koelbel
----------------------------------------------------------------------
Charles Koelbel CRPC, MS 132
Center for Research on Parallel Computation Rice University
Rice University 6100 Main Street
[log in to unmask] Houston, TX 77005
phone: 713-285-5304 fax: 713-285-5136
----------------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|