Multi-core J -- Parallelisation
Asked Answered
E

1

7

Is there a way to get J to use multiple cores ? I thought part of the benefit of APL/J was that the language constructs lent themselves well to parallel solutions.

Looking at my CPU usage (I'm on OSX) there's clearly only a single processor in use.

I've got a heavy-ish function f acting on a list, and I don't see why it couldn't divide the list into 4 pieces, and re-assemble the results ?

Evelynneven answered 29/3, 2015 at 18:48 Comment(4)
Unfortunately no, but if you've written your solution in array-oriented way, you can run multiple instances of your program for different segments of your arrays.Briny
That's a pity. Does any dialect of APL run multi-core ?Evelynneven
I ran into basically the same problem, so I took a bit more of a radical approach, I decided to write a compiler for a language that is basically J. The goals include multi-core support, GPGPU (CUDA/OpenCL) support, and the distribution of task over LAN. It is not finished yet, but you can keep up with the progress at github.com/Synthetica9/HyperJCaren
@Caren that's awesome. Will keep an eye on that.Thanatos
R
1

ArrayFire may be worth looking into. Its OpenCL with support for AMD/nvidia and backward fallback to CPU. Its array processing. It should bind easily to J, as it does in matlab.

Rhodes answered 20/9, 2015 at 6:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.