Slides for a 20 minute presentation about Julia, with a brief introduction to multiple dispatch/multimethods and how it is used for numerical linear algebra
4. What’s the big deal about Julia ?
A high level language
with C-like speed
julialang.org/benchmarks
5. It bridges the divide between computer science
and computational science
What’s the big deal about Julia ?
6. It bridges the divide between computer science
and computational science
What’s the big deal about Julia ?
data abstraction
performance
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?
15. 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
16. 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
17. 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
18.
19.
20.
21.
22.
23.
24. easy to call external C
functions, e.g. CLAPACK
sstev, dstev…
25. So how does this help us with linear algebra?
Multi-method dispatch with generic fallbacks
Matrix operations on general rings
26. So how does this help us with linear algebra?
Multi-method dispatch with generic fallbacks
Matrix operations on general rings textbook algorithm
27. So how does this help us with linear algebra?
Multi-method dispatch with generic fallbacks
Matrix operations on general rings
33. Summary
Types allow users to express scientific computations
and the compiler to specialize code for performance
Other advanced features for performance: code generation,
native parallel computing, …
MS246: High-level Technical Computing with Julia
4:25 PM - 6:05 PM in Room 254 B