β οΈ DISCONTINUATION OF PROJECT - This project will no longer be maintained by Intel. Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project. Intel no longer accepts patches to this project. If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.
ParallelAccelerator
ParallelAccelerator is a Julia package for speeding up compute-intensive Julia programs. In particular, Julia code that makes heavy use of high-level array operations is a good candidate for speeding up with ParallelAccelerator.
With the @acc
macro that ParallelAccelerator provides, users may
specify parts of a program to accelerate. ParallelAccelerator
compiles these parts of the program to fast native code. It
automatically eliminates overheads such as array bounds checking when
it is safe to do so. It also parallelizes and vectorizes many
data-parallel operations.
ParallelAccelerator is part of the High Performance Scripting (HPS) project at Intel Labs.
Quick install (requires Julia 0.5.x or 0.4.x):
Pkg.add("ParallelAccelerator")
Resources
- Paper: Todd A. Anderson, Hai Liu, Lindsey Kuper, Ehsan Totoni, Jan Vitek, and Tatiana Shpeisman, "Parallelizing Julia with a Non-Invasive DSL" (ECOOP 2017)
- Documentation: http://parallelacceleratorjl.readthedocs.org/
- Blog post with usage examples, performance results, and discussion of package internals: http://julialang.org/blog/2016/03/parallelaccelerator
- Presentations:
- Video of a talk at JuliaCon 2016, June 24, 2016.
- Slides and audio of a talk at Bay Area Julia Users, December 17, 2015.
- Video of a talk at SPLASH-I, October 29, 2015.
- Mailing List: http://groups.google.com/group/julia-hps/
- Chat Room: https://gitter.im/IntelLabs/ParallelAccelerator.jl
- GitHub Issues: https://github.com/IntelLabs/ParallelAccelerator.jl/issues