Is there a way to make J target the GPU? I feel like APL stuff is more limiting because it invariably results in paying Dyalog for a toolkit (which severely limits my ability to use it at work).
Also, please change the title on this thread to have it reflect the same.
"APL on GPUs - A TAIL from the Past, Scribbled in Futhark
A paper describing an APL compiler (apltail) that operates by translating APL into a typed array intermediate language (TAIL), and from there into Futhark. While the Futhark details are light, the paper demonstrates a simple use of Futhark as a target language for a compiler. We succeed in achieving decent speedup on several (small) APL programs."
The introduction of the paper says it only "compiles a subset of APL into TAIL" though.
Only APL is APL. Notation is as much a part of APL as is it's linear algebra/array orientation. One can't remove the notation and call it APL just like one can't take C and convert it to icons to drag around the screen and still call it C.
*
This is NOT APL.
Futhark is a functional language, we will start with the obligatory factorial program:
fun fact (n: i32): i32 = reduce () 1 (map (1+) (iota n))
This has nothing to do with APL.
Perhaps a more apt title would be "Python for the GPU".j
*
There is a paper on this subject, where an APL interpreter is written in FUTARK, but then most compilers are written in C. In reality the technology in question is Futark on GPU.
(Submitted title was "Futhark: APL on the GPU".)
Why Python? Futhark is a purely functional language and looks a lot like Haskell, so I think "Haskell for the GPU" would be a better title
OCaml would be an even more apt comparison.
I find it a bit ironic that of all the related submissions I (and others) have made, it's the one with the bizarre title that hits the front page!