The Julia Programming Language

Julia is a high-level programming language designed for high-performance numerical analysis and computational science. Distinctive aspects of Julia’s design include a type system with parametric polymorphism and types in a fully dynamic programming language and multiple dispatch as its core programming paradigm. It allows concurrent, parallel and distributed computing, and direct calling of C and Fortran libraries without glue code. A just-in-time compiler that is referred to as “just-ahead-of-time” in the Julia community is used.

The code examples in this workshop are meant for running Julia on the Rivanna cluster. The Julia documentation page linked to below provides more detail on running these code examples. Attendees will be able to ask questions and receive feedback regarding workshop exercises during the Q&A session. Users will also have the opportunity to run MATLAB code on the Rivanna cluster if they have login accounts, otherwise they will be given training accounts on the cluster.

Julia Computing on Rivanna

Please see also the documentation for using Julia on Rivanna.

Recommendations

These notes are divided into four sections. The first section contains links to documentation and tutorials for the Julia programming language. Besides browsing through these links, I recommend the Julia Academy courses as well as listening to Alan Edelman’s talk “The Power of Language” (he is one of the authors of Julia). The next section is on integrated development environments for writing Julia code. Juno using the Atom editor is popular and the JuliaPro link includes Julia and Juno in one download. More recently, Visual Studio Code (VScode) is gaining adherents and I’ve included links to talks about it from the most recent Julia conference. The third section contains links for using Julia in data science and computational science. The “Introduction to Computational Thinking” is an ongoing course at MIT that uses Julia. The last section includes links to the Julia package repository and an extensive set of Julia code examples.

The Julia Language Tutorials

Julia Integrated Development Environments (IDE)

Julia and Data Science / Computational Science

Julia Examples