[r6rs-discuss] Implicit parallel Scheme (was Re: Parallel-Scheme [was: Thoughts on Scheme's Future])
Aaron W. Hsu
arcfide at sacrideo.us
Tue Sep 8 11:42:01 EDT 2009
On Tue, 08 Sep 2009 04:20:43 -0400, Antonio Vieiro
<antonio.vieiro at gmail.com> wrote:
> For more insight on concurrent evaluation of arguments in Scheme, I've
> found
> this explanation illustrative:
>
> http://okmij.org/ftp/Computation/serialization.html
>
> Oleg explains *what* "serializable concurrency" means in R5RS/R6RS. He
> does
> not explain the reasons *why* this constraint remains in R5RS/R6RS,
> though.
To restate what is in the article, serializable concurrency means that
R5RS and R6RS do not actually prevent parallelizing optimizations on
procedure application: the sequential restriction prevents
non-serializable concurrency from occuring, but allows for any form of
serializable concurrency. It appears to me then, that this isn't as big an
issue as people seem to make it. The impression I have seen on this list
is that the current standards do not allow you to parallelize evaluations
because of the restriction on sequential order. However, it *is* legal
when the concurrency will be serializable, because there is no
recognizable difference in the results.
Oleg touches on the reasons for the restriction when he discusses that
non-serializable concurrency is considered a *very* bad thing in the
context of database transactions. I imagine that this argument extends to
evaluation order in this case because if a program performs one of these
"bad" parallel operations, you will get an answer that doesn't seem to
make any sense at all, unless you really know that the code is getting
this kind of concurrent treatment. This has the benefit of ensuring that
whether or not a Scheme performs this optimization on the code, you can't
get a result that a non-concurrent system couldn't also get.
Thus, I'm inclined, at the moment, to agree with the wording in the
standards as is: it allows for as much optimization as is reasonable,
while still ensuring reasonable behavior of the programs; for some
definition of reasonable. Overall, it seems like the standards writers may
have known what they were about after all. :-) Of course, I could be
wrong, but I have yet to hear the authorities from the time explain their
decision any more clearly than the above article.
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