1 / 13

Julia

Julia. A fast dynamic language for technical computing. Tim Besard 2013-06-18. Scientific programming is done inefficiently. Over 40 domain-specific computing environments Low program interoperability High programmer learning effort A general-purpose language could subsume these projects

zandra
Download Presentation

Julia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Julia A fast dynamic languagefor technical computing Tim Besard 2013-06-18

  2. Scientific programmingis done inefficiently • Over 40 domain-specific computing environments • Low program interoperability • High programmer learning effort • A general-purpose languagecould subsume these projects • Has happened before

  3. Julia is a fresh approachto technical computing • Free and Open-Source • Code at GitHub • MIT licensed • Actively developed • 147 core contributors • 141 accepted packages • > 1000 mailing list-subscribers

  4. Vision behind Juliamakes it stand out • Familiar yet flexible • Performance without compromises • Easily extensible • High interoperability

  5. Familiar yet flexible • Resembles other technicalcomputing environments function randmatstat(t) n = 5 v = zeros(t) w = zeros(t) for i = 1:t a = randn(n,n); b = randn(n,n) c = randn(n,n); d = randn(n,n) P = [a b c d] Q = [a b; c d] v[i] = trace((P'*P)^4) w[i] = trace((Q'*Q)^4) end std(v)/mean(v), std(w)/mean(w) end

  6. Familiar yet flexible • Resembles other technicalcomputing environments • Most functionality isolatedin the standard library • Unobtrusive • General-purpose core

  7. Performance without compromises • Typical compromise:use of low-level languages • Creates development barriers • Julia offers high code-efficiency • Design decisions • LLVM JIT-compiler

  8. Performance without compromises Execution timerelative to C MATLAB Python Fortran Julia Take this with a grain of salt:real-life performance can still let down

  9. Julia is extensible • Standard library written in Julia • Dynamic environment • Integrated package manager

  10. High interoperability • No boilerplate philosophy t = ccall( (:clock, “libc”), Int32, () )

  11. High interoperability • No boilerplate philosophy • Reuse is easy • BLAS, LAPACK, SuiteSparse, … • Built-in: C, Fortran • Contributed: Python, MATLAB

  12. Try it out! • Binaries available athttp://julialang.org • Source available athttp://github.com/JuliaLang

  13. Julia A step towardsgeneral-purpose scientific computing Tim Besard 2013-06-18

More Related