Julia installations at NSC

Directory list:

0.3.12 Julia Programming Language
0.4.3 Julia Programming Language
0.4.4 Julia Programming Language
0.4.7 Julia Programming Language
0.4.8 Julia Programming Language
0.5.1 Julia Programming Language

Level of support

Tier 3 NSC will not be able to help you much with this program, either because we lack the in-house experience, or because it is a test installation. In general, these types of installations are untested, and will not be updated unless you send a request to NSC.

Please see the page describing our software support categories for more information.
You can also contact support@nsc.liu.se for further information.


According to the web page, “Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments [i.e. MATLAB].” Julia has support for parallel computations, even across nodes, but it is not based on MPI.

How to run

First load a Julia module. This brings the julia command into your PATH and sets up the libraries that you need to run Julia.

module load julia/0.3.12-i1501

You can then either start an interactive Julia session:

$ julia
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "help()" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.3.12-pre+5 (2015-08-20 17:19 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit 24138e7 (4 days old release-0.3)
|__/                   |  x86_64-redhat-linux


or run it on batch mode, for example inside a job script.

#SBATCH -t 0:30:00
#SBATCH -J jobname
#SBATCH --exclusive
#SBATCH -A SNIC-xxx-yyy

module load julia/0.3.12-i1501
julia myprogram.jl arg1  ...

The script above allocates a full node to the Julia program. Only do this if you are really doing a big (or parallel computation) with Julia.

Installing packages

At the moment, packages are installed by each user separately by default. It is recommended to use a newer version of git for Julia:

module load git/2.5.0

For some packages, it is necessary to have appropriate compiler settings. For instance, one can choose the same as for the corresponding module julia/0.3.12-i1501:

module load intel/ mkl/11.2.1

or in the case of the module julia/0.3.12:

module load gcc/5.1.0 mkl/11.2.3

Example how to install the package ODE

julia> Pkg.add("ODE")

For some Julia packages there might be appropriate modules already installed at NSC. For instance to install HDF5, one can load a module and set the LD_LIBRARY_PATH:

module add hdf5/1.8.13-i1214-AVX-off
export LD_LIBRARY_PATH=/software/apps/hdf5/1.8.13/i1214-AVX-off/lib/


We have not done much testing and optimization of Julia yet. Basic examples and linear algebra seems to work, and the performance is what you expect from a native library (10+ GFlops). There might be some warnings: “Possible conflict in library symbol xxx”, but it seems to work anyhow.

Running Julia program on multiple nodes have not been tested yet.