Julia: A Fresh Approach to Numerical Computing
@article{Bezanson2014JuliaAF, title={Julia: A Fresh Approach to Numerical Computing}, author={Jeff Bezanson and Alan Edelman and Stefan Karpinski and Viral B. Shah}, journal={SIAM Rev.}, year={2014}, volume={59}, pages={65-98} }
Bridging cultures that have often been distant, Julia combines expertise from the diverse fields of computer science and computational science to create a new approach to numerical computing. Julia is designed to be easy and fast and questions notions generally held to be “laws of nature" by practitioners of numerical computing: \beginlist \item High-level dynamic programs have to be slow. \item One must prototype in one language and then rewrite in another language for speed or deployment…
3,469 Citations
Julia Language in Computational Mechanics: A New Competitor
- Computer ScienceArchives of Computational Methods in Engineering
- 2021
A comprehensive survey on the use of the Julia language in computational mechanics is presented and the existing numerical computing packages developed in the Julialanguage and their relevant applications are introduced.
Julia for Biologists
- Computer Science
- 2021
An analogy to a more standard tool of a biologist – a pipettor – is used to develop some intuition for the important role of abstraction in an abstract programming language.
Fast Flexible Function Dispatch in Julia
- Computer ScienceArXiv
- 2018
The Julia language attempts to provide a more effective structure for technical computing by allowing programmers to express complex polymorphic behaviors using dynamic multiple dispatch over parametric types, and is reported on how this approach has allowed domain experts to express useful abstractions while simultaneously providing a natural path to better performance for high-level technical code.
Bridging HPC Communities through the Julia Programming Language
- Computer ScienceArXiv
- 2022
This work examines the current practice and role of Julia as a common, end-to-end programming model to address major challenges in scientific reproducibility, data-driven AI/machine learning, co-design and workflows, scalability and performance portability in heterogeneous computing, network communication, data management, and community education.
Efficient Stochastic Programming in Julia
- Computer ScienceINFORMS J. Comput.
- 2022
The StochasticPrograms.jl framework can reduce the barrier to entry for incoming practitioners of stochastic programming by providing both an intuitive interface for new users and an extensive development environment for expert users by providing strong scaling properties of the distributed algorithms on numerical benchmarks in a multinode setup.
Computer Algebra in JULIA
- Computer ScienceProgramming and Computer Software
- 2021
The aim of this paper is to combine the usage of Julia framework for numerical computations and for symbolic computations in mathematical modeling problems and to conclude that it is possible (and even convenient) to use computer algebra systems within the Julia ecosystem.
Interval Computations in Julia programming language
- Computer Science
- 2019
It is very important for researchers, working in a field of interval analysis, to have fast, efficient and robust publicly available software packages for performing computations with interval arithmetic written in Julia.
LazySets.jl: Scalable Symbolic-Numeric Set Computations
- Computer ScienceJuliaCon Proceedings
- 2021
The basic functionality of LazySets is showcased, highlighting some of the key design choices and its scope goes beyond reachability and formal verification to include computations that mix symbolics and numerics.
High-performance symbolic-numerics via multiple dispatch
- Computer ScienceACM Commun. Comput. Algebra
- 2021
This work details an underlying abstract term interface which allows for speed without sacrificing generality, and shows that by formalizing a generic API on actions independent of implementation, it can retroactively add optimized data structures to the system without changing the pre-existing term rewriters.
Probabilistic Programming in Julia New Inference Algorithms
- Computer Science
- 2016
The main novel contributions of this thesis are a workable H MC sampler in Turing with acceptable performance as well as an updated version of the compiler which supports this HMC sampler and the further development of a Gibbs sampler combining HMC and PG.
References
SHOWING 1-10 OF 45 REFERENCES
Julia: A Fast Dynamic Language for Technical Computing
- Computer ScienceArXiv
- 2012
Julia is presented, a new dynamic language for technical computing, designed for performance from the beginning by adapting and extending modern programming language techniques, which enables an expressive programming model and successful type inference, leading to good performance for a wide range of programs.
Array Operators Using Multiple Dispatch: A design methodology for array implementations in dynamic languages
- Computer ScienceARRAY@PLDI
- 2014
This work has come to believe that while multiple dispatch has not been especially popular in most kinds of programming, technical computing is its killer application, and has developed an approach that yields a novel trade-off between flexibility and compile-time analysis.
Star-P: High Productivity Parallel Computing
- Computer Science
- 2004
The focus of Star-P is to improve user productivity in parallel programming, and it is believed that it can dramatically reduce the difficulty of programming parallel computers by reducing the time needed for development and debugging.
Parallel programming and code selection in fortress
- Computer SciencePPoPP '06
- 2006
This work discusses ideas for using a rich parameterized polymorphic type system to organize multithreading and data distribution on large parallel machines.
Parallel MATLAB: Doing it Right
- Computer ScienceProceedings of the IEEE
- 2005
This work discusses the approaches the projects have taken to parallelize MATLAB, and describes innovative features in some of the parallel MATLAB projects, and gives an example of what it thinks is a "right" parallel MATLab.
Convex Optimization in Julia
- Computer Science2014 First Workshop for High Performance Technical Computing in Dynamic Languages
- 2014
Convex translates problems from a user-friendly functional language into an abstract syntax tree describing the problem, which allows Convex to infer whether the problem complies with the rules of disciplined convex programming (DCP), and to pass the problem to a suitable solver.
Engineering and Scientific Computing with Scilab
- Computer Science
- 1998
This book gives a thorough description of SciLab's use, including how to master its environment and programming language, the use of Sci Lab's integrated graphics, the integration of use provided functions, and a tour of its numerous applications toolboxes.
Interactive Supercomputing with PPMatlab
- Computer Science
- 1998
MITMatlab is a system that enables users of supercomputers or networked PCs to work on large data sets within Matlab transparently, which has implications not only in supercomputing, but for Artificial Intelligence applicatons such as Machine Learning, Information Retrieval and Image Processing.
LLVM: a compilation framework for lifelong program analysis & transformation
- Computer ScienceInternational Symposium on Code Generation and Optimization, 2004. CGO 2004.
- 2004
The design of the LLVM representation and compiler framework is evaluated in three ways: the size and effectiveness of the representation, including the type information it provides; compiler performance for several interprocedural problems; and illustrative examples of the benefits LLVM provides for several challenging compiler problems.
Parallel Programmability and the Chapel Language
- Computer ScienceInt. J. High Perform. Comput. Appl.
- 2007
A candidate list of desirable qualities for a parallel programming language is offered, and how these qualities are addressed in the design of the Chapel language is described, providing an overview of Chapel's features and how they help address parallel productivity.