| Date: Sun, 06 Sep 2009 19:21:58 -0400
 | From: "Aaron W. Hsu" <[email protected]>
 | 
 | ...
 | On the other hand, we should also keep in mind that while
 | parallelizing in Scheme is a very nice idea and can yield
 | theoretical benefits, at the moment, automated parallelization is
 | nowhere near ready for use.

Automated parallelization is about converting a serial program (with
side effects, eg. FORTRAN) to a parallel one; because of the halting
problem, it is undecidable.

On the other hand, a functional program, or the purely functional
parts of a program, can be parallelized very simply: argument
expressions can be evaluated concurrently or in any order.  With no
side-effects, there is no way for the evaluation of one argument
expression to affect the evaluation of another.

Implicitly-Parallel-Scheme exploits the small difference between "The
order in which the subexpressions of an application are evaluated is
unspecified" and concurrent evaluation.  The program specification is
then no longer serial.  This removes the "automated parallelization"
burden from a concurrent compiler.

 | Since it appears that industrial needs are the first on the list of
 | things to address with Scheme, I'd say that more work on developing
 | higher-level abstractions on concurrent programming processes,
 | based on a thread model, should see a lot of attention, simply from
 | the fact that automatic parallelization isn't going to be ready for
 | a while.  I am in favor of improving the ability of Schemes to do
 | research in this area, of course, but I'd like to know how Scheme
 | implementations right now take advantage of the sequential order
 | mandate first.

Any single-threaded (and non-preemptive) Scheme implementation is
already an Implicitly-Parallel-Scheme, which is the great majority of
implementations.  Implicitly-Parallel-Scheme does not require an
implementation to use concurrent execution; but it enables
implementations to employ concurrent execution (perhaps only for
functional expressions) at their option.

Other posts have given links for functional-parallelization; these are
well understood techniques.

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to