Hi David,
I think your ideas are correct. I have planned multicore support for GNU
APL 1.4 and
every help is welcome.
Actually parallel processing was one of the main reasons for me to write
GNU APL.
I published a Ph.D thesis "A parallel APL computer" (in German) back in
1990. We had
built a prototype based on multiple MC68020 processors and demonstrated
that most
APL primitive functions and operators can benefit from parallel
execution. The only
thing missing at that time was the interpreter (which is now GNU APL).
My thoughts so far were going in the direction of OpenMP which uses a
similar approach
as the one you describe. But I haven't worked with it yet and there are
other solutions around.
The most important step is to find the best approach for GNU APL. That
probably means a lot
of benchmarking and experimenting.
In GNU APL every primitive function is a separate object so we can
decide on a per-function
basis at what length we go multi-core.
/// Jürgen
On 03/10/2014 06:33 AM, David B. Lamkins wrote:
This weekend I spent a few hours poking around in the GNU APL source
code while thinking about what it might take to exploit a multicore CPU.
I've collected my thoughts on what it might take to do an initial
implementation (see attached).
Juergen (and anyone else who has worked in the code base), I'd
appreciate some feedback regarding the feasibility of my proposal, as
well as your comments about things I've overlooked.
This is something I'd be willing to work on in my spare time.