The High Performance Scripting team at Intel Labs is pleased to announce the release of version 0.1 of ParallelAccelerator.jl, a package for high-performance parallel computing in Julia.
ParallelAccelerator provides an @acc (short for "accelerate") macro for annotating Julia functions. Together with a system C compiler (ICC or GCC), it compiles @acc-annotated functions to optimized native code.
Under the hood, ParallelAccelerator is essentially a domain-specific compiler written in Julia. It performs additional analysis and optimization on top of the Julia compiler. ParallelAccelerator discovers and exploits the implicit parallelism in source programs that use parallel programming patterns such as map, reduce, comprehension, and stencil. For example, Julia array operators such as .+, .-, .*, ./ are translated by ParallelAccelerator internally into data-parallel map operations over all elements of input arrays. For the most part, these patterns are already present in standard Julia, so programmers can use ParallelAccelerator to run the same Julia program without (significantly) modifying the source code.
Version 0.1 should be considered an alpha release, suitable for early adopters and Julia enthusiasts. Please file bugs at
https://travis-ci.org/IntelLabs/ParallelAccelerator.jl/issues .
ParallelAccelerator requires Julia v0.4.0. See our GitHub repository at
https://github.com/IntelLabs/ParallelAccelerator.jl for a complete list of prerequisites, supported platforms, example programs, and documentation.
Thanks to our colleagues at Intel and Intel Labs, the Julia team, and the broader Julia community for their support of our efforts!
Best regards,
The High Performance Scripting team
(Programming Systems Lab, Intel Labs)