|
From: | Juergen Sauermann |
Subject: | [Bug-apl] first shot at parallel APL |
Date: | Mon, 22 Sep 2014 17:50:51 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
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] |