Blog

Blog from June, 2020

Julia on Maxwell

we've added the julia programming language to the maxwell software repository

Julia is a high-level, high-performance, dynamic programming language. While it is a general purpose language and can be used to write any application, many of its features are well-suited for numerical analysis and computational science. (Wikipedia)

To use it "module load maxwell julia" or append "/software/julia/default/bin/" to your path.

Further documentation:
https://julialang.org/


Julia in the Jupyter Notebook:

In order to use julia as a Kernel in the Jupyter Notebook
one has to first load julia (see above) and then start the julia interpreter
by entering the command "julia" in the command line.

Then one has to enter the following commands to install iJulia and make 
the Kernel available for jupyter:

julia> using Pkg
julia> Pkg.add("IJulia")

Then one just has to refresh the main jupyter notebook page and
Julia should become available as a choice for a Kernel in the Notebook
along side various Anaconda Python variants that are installed on Maxwell.

OpenMPI problems

With the new OS version comes a small problem with the standard openmpi
implementation. With "module load mpi/openmpi-x86_64" you use the standard openmpi
from centos. If your job is crashing with "SEGVAULT" you have to add a
parameter for your mpirun.  If possible use "ucx" as this is the new standard protokoll in MPI.

There are two ways to achieve  this:

  1. You can  create a file in your homedirectory with one line "pml=ob1"
    or "pml=ucx"

    # mkdir ~/.openmpi
    # vi ~/.openmpi/mca-params.conf
    # cat ~/.openmpi/mca-params.conf
    pml=ob1
    
  2. You can add the parameter to your mpirun commando for example "mpirun --mca pml ob1 foo"
    or "mpirun --mca pml ucx foo"
    (foo := name of your programm)