[r6rs-discuss] Implicit parallel Scheme (was Re: Parallel-Scheme [was: Thoughts on Scheme's Future])
Aaron W. Hsu
arcfide at sacrideo.us
Tue Sep 15 20:05:20 EDT 2009
On Sun, 13 Sep 2009 23:21:44 -0400, Aubrey Jaffer <agj at alum.mit.edu> wrote:
> | Date: Sun, 13 Sep 2009 21:14:01 -0400
> | From: "Aaron W. Hsu" <arcfide at sacrideo.us>
> |
> | On Tue, 08 Sep 2009 14:18:29 -0400, Aubrey Jaffer <agj at alum.mit.edu>
> wrote:
> |
> | > That is why concurrency is entirely optional in
> | > Implicitly-Parallel-Scheme. At soon as compilers are smart enough,
> or
> | > threads are lightweight enough, IPS programs will reap the benefits.
> |
> | I'm not sure I understand something here. You seem to be
> | suggesting in this line of parallel Scheme thinking that somehow
> | the current Scheme standards explicitly exclude parallel
> | optimization of code, especially in areas where there is an
> | unspecified order of evaluation.
>
> The RnRSs explicitly require serial, if unspecified, order of
> evaluation. Scheme is thus a serial language.
It explicitly requires that the behavior of the code be consisten with
some sequential evaluation of that code.
> | However, it seems that you or someone else has also brought up the
> | point that the standards actually do permit such optmizations
> | provided the serializability of the parts.
>
> To parallelize a serial program is in general an undecidable problem.
Are you saying that it is impossible to effectively or usefully identify
when it is safe to parallelize Scheme code because it is impossible to
determine whether parallelizing code will not potentially result in an
incompatible behavior, or are you saying something else?
> | Are you saying that the standards now don't permit parallel
> | optimizations to take place? It appears to me that they do, and
> | that Scheme is, even now, welcome to lead the forefront in
> | parallelization.
>
> Without a change to the language, Scheme would be no more parallel
> than FORTRAN-77.
Outside of the issue of undecidability of determining the serializability
of parallel execution (if that's what you are asserting above) I can think
of no theoretical limitation on Scheme's semantics that prohibit parallel
execution in this area. Maybe I'm missing something? I'm not sure where
you are getting this requirement that Scheme be sequential by explicit
requirement.
Aaron W. Hsu
--
Of all tyrannies, a tyranny sincerely exercised for the good of its
victims may be the most oppressive. -- C. S. Lewis
More information about the r6rs-discuss
mailing list