Julia¶
Julia is a high-level, high-performance dynamic programming language for technical computing. It has syntax that is familiar to users of many other technical computing environments. Designed at MIT to tackle large-scale partial-differential equation simulation and distributed linear algebra, Julia features a robust ecosystem of tools for optimization, statistics, parallel programming, and data visualization. Julia is actively developed by teams at MIT and in industry, along with hundreds of domain-expert scientists and programmers from around the world.
Using Julia at NERSC¶
Julia version 1.4.2
has is available at NERSC by loading the julia
module:
module load julia
This also configures the JULIA_DEPOT_PATH
and JULIA_LOAD_PATH
to give precedence to packages installed in the global environment. Packages such as MPI.jl, which need to be configured specifically for NERSC's systems have been installed in the global environment.
Any packages you install using Pkg.add
will be installed to the user's local julia package directory ~/.julia
.
Using Julia with MPI¶
The MPI.jl package has been configured to work with srun
. For convenience, we also include the mpiexecjl
wrapper. Therefore an MPI-enabled julia program prog.jl
can be excuted on N
ranks either using:
srun -n N julia prog.jl
or
mpiexecjl -n N julia prog.jl