arXiv (Cornell University)· 2012· Preprint
Julia: A Fast Dynamic Language for Technical Computing
- 670citations
- 2012year
Short summary
Julia's ParallelAccelerator library and compiler enable high-performance scientific computing with minimal code changes, exposing implicit parallelism in array-style programs to generate fast native code.
AI-generated from the title and abstract; the full text is not read.
Key points
- ParallelAccelerator is a library and compiler for high-performance scientific computing in Julia.
- It exposes implicit parallelism in high-level array-style programs.
- Programs are compiled to fast, parallel native code.
- Performance improvements are achieved with minimal source code changes and few additional type annotations.
AI-generated from the title and abstract; the full text is not read.
Abstract
Computational scientists often prototype software using productivity languages that offer high-level programming abstractions. When higher performance is needed, they are obliged to rewrite their code in a lower-level efficiency language. Different solutions have been proposed to address this trade-off between productivity and efficiency. One promising approach is to create embedded domain-specific languages that sacrifice generality for productivity and performance, but practical experience with DSLs points to some road blocks preventing widespread adoption. This paper proposes a non-invasive domain-specific language that makes as few visible changes to the host programming model as possible. We present ParallelAccelerator, a library and compiler for high-level, high-performance scientific computing in Julia. ParallelAccelerator's programming model is aligned with existing Julia programming idioms. Our compiler exposes the implicit parallelism in high-level array-style programs and compiles them to fast, parallel native code. Programs can also run in "library-only" mode, letting users benefit from the full Julia environment and libraries. Our results show encouraging performance improvements with very few changes to source code required. In particular, few to no additional type annotations are necessary.
The authors' abstract, as published at the source. arXiv (Cornell University), 2012 · DOI ↗
Continue with a free account
Ask the paper: 3 free questions a day about this paper; save it, get its citation, new summaries every day for your field. Takeaways are Premium.
Continue free on the webSign in with Google or Apple; no card needed. You come back to this paper.
On your phone:
Field: Hardware and Architecture
Hardware and ArchitectureComputer Science