|
From: | Elias Mårtenson |
Subject: | Re: [Bug-apl] first shot at parallel APL |
Date: | Fri, 26 Sep 2014 13:22:12 +0800 |
Thanks, I have merged the necessary changes.Regards,EliasOn 22 September 2014 23:50, Juergen Sauermann <address@hidden> wrote:Hi,
I have finished a first shot at parallel (i.e. multicore) GNU APL: SVN 480.
This version computes all scalar functions in parallel if the ravel length of the result exceeds 100.
This can make the computation of small (but still > 100) vectors slower than if they were computed sequentially.
Therefore parallel execution is not yet the default. To enable it:
./configure
make parallel
make
sudo make install
The current version uses some linux-specific features, which will be ported to other platforms later on (if possible).
./configure is supposed to detect this.
Some simple benchmarks are promising:
X←1000000⍴2J2 ⍝ 1 Mio complex numbers
⎕SYL[26;2]←1 ⍝ 1 core
T←⎕TS ◊ ⊣X⋆X ◊ 1 1 1 24 60 60 1000⊥⎕TS - T
246
⎕SYL[26;2]←2 ⍝ 2 cores
T←⎕TS ◊ ⊣X⋆X ◊ 1 1 1 24 60 60 1000⊥⎕TS - T
136
⎕SYL[26;2]←3 ⍝ 3 cores
T←⎕TS ◊ ⊣X⋆X ◊ 1 1 1 24 60 60 1000⊥⎕TS - T
102
⎕SYL[26;2]←4 ⍝ 4 cores
T←⎕TS ◊ ⊣X⋆X ◊ 1 1 1 24 60 60 1000⊥⎕TS - T
91
The next step will be to find the break-even points of all scalar functions, so that parallel execution is
only done when it promises some speedup.
Elias, the PointerCell constructor has got one more argument . I have updated emacs-mode and sql accordingly.
- you may want to sync back.
/// Jürgen
[Prev in Thread] | Current Thread | [Next in Thread] |