Fast Flexible Function Dispatch in Julia
Technical computing is a challenging application area for programming languages to address. This is evinced by the unusually large number of specialized languages in the area (e.g. MATLAB, R), and the complexity of common software stacks, often involving multiple languages and custom code generators. We believe this is ultimately due to key characteristics of the domain: highly complex operators, a need for extensive code specialization for performance, and a desire for permissive high-level programming styles allowing productive experimentation. The Julia language attempts to provide a more effective structure for this kind of programming by allowing programmers to express complex polymorphic behaviors using dynamic multiple dispatch over parametric types. The forms of extension and reuse permitted by this paradigm have proven valuable for technical computing. We report 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.
Code (0)
등록된 구현이 없습니다.
Similar Papers 제목 키워드 기반
GaussianProcesses.jl: A Nonparametric Bayes package for the Julia Language
Gaussian processes are a class of flexible nonparametric Bayesian tools that are widely used across the sciences, and in industry, to model complex data sources. Key to applying Gaussian process models is the availabilit…
Binary ClassificationGaussian ProcessesConvex Optimization in Julia
This paper describes Convex, a convex optimization modeling framework in Julia. Convex translates problems from a user-friendly functional language into an abstract syntax tree describing the problem. This concise repres…
FormMultiple simultaneous solution representations in a population based evolutionary algorithm
The representation used for solutions in optimization can have a significant impact on the performance of the optimization method. Traditional population based evolutionary methods have homogeneous populations where all …
ensmallen: a flexible C++ library for efficient function optimization
We present ensmallen, a fast and flexible C++ library for mathematical optimization of arbitrary user-supplied functions, which can be applied to many machine learning problems. Several types of optimizations are support…
BIG-bench Machine LearningDynamicPPL: Stan-like Speed for Dynamic Probabilistic Models
We present the preliminary high-level design and features of DynamicPPL.jl, a modular library providing a lightning-fast infrastructure for probabilistic programming. Besides a computational performance that is often clo…
Probabilistic Programming