Feature request (was "parallel cell executing and wxmaxima")
Subject: Feature request (was "parallel cell executing and wxmaxima")
From: Rupert Swarbrick
Date: Sun, 10 Jun 2012 16:16:44 +0100
Oliver Kullmann <O.Kullmann at swansea.ac.uk> writes:
> Hello,
>
> it seems to me that whenever some kind of parallelism is discussed then
> only the highly complicated form of automated parallelism is considered.
> While just providing some thread-primitives seems to me much simpler and
> much more useful.
>
> If I would implement something (but I don't :-(), then I would start with
> something like implementing
>
> evaluate_parallel(L),
>
> where L is a list of expressions, to be evaluated independently,
> while the return value is the list of evaluation results.
> The variable
> max_cores
> with default value 1 governs the number of threads to be created.
> If max_cores=inf, then for every expression in L a thread is created.
>
> This just assumes that there is no interaction between the different
> computations. It is up to the user to make sure that this is the case.
This is almost impossible at the moment in Maxima because there is so
much shared state (for example, %o<n>, dummy indices, the assume
database, ...)
I think that people trying to experiment with parallelism in Emacs lisp
have the same problem.
There's probably more hope of doing things at the lisp level: if there
is an algorithm that one knows how to make faster with parallelism then
one can presumably write a version that calls out via Bordeaux threads
or whatever but appears to the calling code as a single thread of
execution. Then (I *think*) you can make more assumptions about shared
state etc.
Rupert
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 315 bytes
Desc: not available
URL: <http://www.math.utexas.edu/pipermail/maxima/attachments/20120610/ae40b35e/attachment.pgp>