4. What’s the big deal about Julia ?
A high level language
with C-like speed
julialang.org/benchmarks
5. What’s the big deal about Julia ?
Normalized average lines of code (shortest = 0, longest = 1)
Execution time (C = 1)
https://groups.google.com/d/msg/julia-users/BYRAeQJuvTw/O7VK7-vp1EEJ
fast and expressive
7. It bridges the divide between computer science
and computational science
What’s the big deal about Julia ?
data abstraction
performance
What if you didn’t have to choose between
data abstraction and performance?
8. Take home message
Types helps users express scientific computations
and helps the compiler specialize code for performance
9. methods objects
Object-oriented programming with classes
What can I do with/to a thing?
top up
pay fare
lose
buy
classes are more
fundamental
than methods
top up
pay fare
lose
buy
pay fare
lose
buy
10. OOP with classes multi-methods
What can I do with/to a thing?
top up
pay fare
lose
buy
generic
function
objectsmethods
multimethods
relationships between
objects and functions
11. Multi-methods for linear algebra
What can I do with/to a thing?
compute spectral factorization
compute singular values
compute singular values and vectors
compute eigenvalues
generic
function
objectsmethods
Methods can take advantage of special matrix structures
eigvals
eigfact
svdvals
svdfact
Matrix
SymTridiagonal
Bidiagonal
12.
13.
14. easy to call external C
functions, e.g. CLAPACK
sstev, dstev…
15. So how does this help us with linear algebra?
Multi-method dispatch with generic fallbacks
Matrix operations on general rings textbook algorithm
16. So how does this help us with linear algebra?
Multi-method dispatch with generic fallbacks
Matrix operations on general rings
21. In summary,
Types helps users express scientific computations
and helps the compiler specialize code for performance
Other advanced features for performance: code generation,
native parallel computing, …
try it today! juliabox.org
JuliaCon - June 24-28 at MIT
juliacon.org