Julia: A Fresh Approach to Numerical Computing
arXiv:1411.1607
Abstract
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. Julia questions notions generally held as "laws of nature" by practitioners of numerical computing: 1. High-level dynamic programs have to be slow. 2. One must prototype in one language and then rewrite in another language for speed or deployment, and 3. There are parts of a system for the programmer, and other parts best left untouched as they are built by the experts. We introduce the Julia programming language and its design --- a dance between specialization and abstraction. Specialization allows for custom treatment. Multiple dispatch, a technique from computer science, picks the right algorithm for the right circumstance. Abstraction, what good computation is really about, recognizes what remains the same after differences are stripped away. Abstractions in mathematics are captured as code through another technique from computer science, generic programming. Julia shows that one can have machine performance without sacrificing human convenience.
37 pages
References in corpus (3)
Cited by in corpus (27)
- Architectures of Exoplanetary Systems. I: A Clustered Forward Model for Exoplanetary Systems around Kepler's FGK Stars
- Measuring Sample Quality with Kernels
- Improving the Accuracy of Planet Occurrence Rates from Kepler using Approximate Bayesian Computation
- Shallow water equations: Split-form, entropy stable, well-balanced, and positivity preserving numerical methods
- Frequency Modulation of Directly Imaged Exoplanets: Geometric Effect as a Probe of Planetary Obliquity
- A new light on the darkest corner of the landscape
- Efficient evaluation of scaled proximal operators
- Julia Implementation of the Dynamic Distributed Dimensional Data Model
- MDF: Magnetic Particle Imaging Data Format
- Large-Scale Distributed Bayesian Matrix Factorization using Stochastic Gradient MCMC
- Stochastic Stein Discrepancies
- Pixel Arrays: A fast and elementary method for solving nonlinear systems
- Numerical study of the Landau--Ginzburg model
- Discrete Wasserstein Barycenters: Optimal Transport for Discrete Data
- High-level GPU programming in Julia
- Efficient algorithms for general periodic Lorentz gases in two and three dimensions
- Evidence for a Non-Dichotomous Solution to the Kepler Dichotomy: Mutual Inclinations of Kepler Planetary Systems from Transit Duration Variations
- DataDeps.jl: Repeatable Data Setup for Replicable Data Science
- Using a template engine as a computer algebra tool
- DistributedFBA.jl: High-level, high-performance flux balance analysis in Julia
- A nonuniform fast Fourier transform based on low rank approximation
- Robust and stochastic compliance-based topology optimization with finitely many loading scenarios
- Fast Flexible Function Dispatch in Julia
- Investigations of the effects of random sampling patterns on the stability of generalized sampling
- MatlabCompat.jl: helping Julia understand Your Matlab/Octave Code
- Ratio of counts vs ratio of rates in Poisson processes
- Merly.jl: Web Framework in Julia