Fast and flexible linear algebra in Julia

Andreas Noack, MIT CSAIL, noack@mit.edu

Applied scientists often develop computer programs exploratively,

where data examination, manipulation, visualization and code

development are tightly coupled. Traditionally, the programming

languages used are slow, with performance critical computations

relegated to library code written in languages on the other side of

Ousterhout’s dichotomy, e.g. LAPACK. I will introduce the Julia

programming language and argue that it is well suited for computational

linear algebra. Julia provides features for exploratory program

development, but the language itself can be almost as fast as C and

Fortran. Furthermore, Julia’s rich type system makes it possible to

extend linear algebra functions with user defined element types, such

as finite fields or strings with algebraic structured attached. I

will show examples of Julia programs that are relatively simple, yet

fast and flexible at the same time. Finally, the potential and

challenges for parallel linear algebra in Julia will be discussed.