Julia: A Fast Dynamic Language for Technical Computing
By Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman. arXiv.org, 2012
839 citations recorded by the source corpus.
Dynamic languages have become popular for scientic computing. They are generally considered highly productive, but lacking in performance. This paper presents Julia, a new dynamic language for technical computing, designed for performance from the beginning by adapting and extending modern programming language techniques. A design based on generic functions and a rich type system simultaneously enables an expressive programming model and successful type inference, leading to good performance for a wide range of programs. This makes it possible for much of Julia’s library to be written in Julia itself, while also incorporating best-of-breed C and Fortran libraries.
View Paper: https://www.semanticscholar.org/paper/b808233eb1256d492af437a6c9fe99ffe141df47
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
- Sergey Levine
- Aravind Rajeswaran
- Dahua Lin
- Kendall Lowrey
- Pieter Abbeel
- Yoshua Bengio
- Bo Dai
- Chelsea Finn
Citations in the corpus
- Fast formation and assembly of finite element matrices with application to isogeometric linear elasticity (2019, methodology): “The ideas in this paper have been implemented in the Julia language [12].”
- The type I half-logistic family of distributions (2016, methodology): “Equation (35) can be maximized either directly by using the R (optim function),[13] SAS (PROC NLMIXED), Ox program (sub-routine MaxBFGS) (see [14]) or Julia language through the optimize function of the NLopt package [15] or by solving the nonlinear likelihood equations obtained by differentiating E”
- Value function approximation via low-rank models (2015, methodology): “The value iteration algorithm and simulation program were implemented in Julia [28].”
- Fast Marching Tree: a Fast Marching Sampling-Based Method for Optimal Motion Planning in Many Dimensions (2013, unknown): “We chose the Julia programming language (Bezanson et al., 2012) for the implementation of additional simulations because of its ease in accommodating the FMT* extensions studied in Section 6.”
- A review and comparison of solvers for convex MINLP (2018, methodology): “Pajarito is currently accessible through Julia using problem inputs in both JuMP and DCP [119].”
- Julia: A Fresh Approach to Numerical Computing (2014, methodology): “JIT compilation [2, 4] using the LLVM compiler framework [18], which is also used by a number of other compilers such as Clang [6] and Apple’s Swift [32].”
- Online Learning of Nonparametric Mixture Models via Sequential Variational Approximation (2013, methodology): “All algorithms are implemented using Julia [2], a new language for high performance technical computing.”
- Reinforcement learning for non-prehensile manipulation: Transfer from simulation to physical system (2018, methodology): “We implemented our RL code and interfaced with the MuJoCo simulator with the Julia programming language [42].”
- Makie.jl: Flexible high-performance data visualization for Julia (2021, background): “jl is a cross-platform plotting ecosystem for the Julia programming language (Bezanson et al., 2012), which enables researchers to create high-performance, GPU-powered, interactive visualizations, as well as publication-quality vector graphics with one unified interface.”
- Generalized Low Rank Models (2014, methodology): “Through examples, we explore this idea here, fitting two GLRMs using the serial Julia implementation (presented in §8) of the alternating proximal gradient updates method.”
- PhyloNetworks: A Package for Phylogenetic Networks (2017, background): “Julia (Bezanson et al. 2012) is an interactive programming language whose performance often matches that of C, with over 1500 registered packages.”
- Optimization of Tree Ensembles (2017, methodology): “All linear and mixed-integer optimization models are formulated in the Julia programming language (Bezanson et al. 2012), using the JuMP package (Julia for Mathematical Programming; see Lubin and Dunning 2015), and solved using Gurobi 6.5 (Gurobi Optimization, Inc. 2015).”
- Inferring Phylogenetic Networks with Maximum Pseudolikelihood under Incomplete Lineage Sorting (2015, background): “[48] Bezanson J, Karpinski S, Shah VB, Edelman A.”
- Automated Machine Learning on Big Data using Stochastic Algorithm Tuning (2014, background): “Thanks to the authors, packager and maintainers involved with the Julia language [28].”
- Optimal errors and phase transitions in high-dimensional generalized linear models (2017, methodology): “Appendix F: Details on numerics Most of our experiments and codes are provided on the associated GitHub repository [62], with codes in the Julia programming language [103] (with a Jupyter notebook interface) and in matlab.”
- The tensor algebra compiler (2017, background): “More recently MATLAB (2014), Julia (Bezanson et al. 2012), Eigen (Guennebaud et al.”
- PowerModels.J1: An Open-Source Framework for Exploring Power Flow Formulations (2017, background): “The Advent of Julia & JuMP: Recently, Julia [27] has emerged as an open-source, high-level, high-performance programming language for numerical computing.”
- JuMP: A Modeling Language for Mathematical Optimization (2015, methodology): “In-deed, the implementation of macros in Julia draws its inspiration from Lisp [12].”