Load and run Julia

Note

At the Swedish HPC centers we call the applications available via the module system modules:

Objectives

  • Learn to load Julia

  • Get started with the Julia command line

  • Learn to run Julia scripts

Instructor note

  • Lecture and demo 15 min

  • Exercise 15 min

  • Total time 30 min

Julia can be started after a Julia module is loaded. The module activates paths to a specific version of the julia interpreter and its libraries and packages.

Warning

Note that the module systems at UPPMAX and HPC2N are slightly different. All modules at UPPMAX not directly related to bio-informatics are shown by ml avail.

Modules at HPC2N are only available when one has loaded all prerequisites, for instance the compilers (GNU, Intel, etc.).

Check for Julia versions

Check all available Julia versions with:

$ module avail julia

Load a Julia module

For reproducibility, we recommend ALWAYS loading a specific module for the Julia version instead of using the default one.

For this course, we recommend using the following Julia versions, because the exercises are developed with them:

Type-Along

Go back and check which Julia modules were available. To load version 1.8.5, do:

$ module load julia/1.8.5

Note: Lowercase j.

For short, you can also use:

$ ml julia/1.8.5

Workflow in Julia (DEMO)

Demo

The teacher will do this as a demo. You will have the opportunity to test soon!

After loading the appropriate modules for Julia, you will have access to the read-eval-print-loop (REPL) command line by typing julia:

$ ml julia/1.8.5
$ julia

   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.8.5 (2023-01-08)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia>

Julia has different modes, the one mentioned above is the so-called Julian mode where one can execute commands. The description for accessing these modes will be given in the following paragraphs. Once you are done with your work in any of the modes, you can return to the Julian mode by pressing the backspace key.

While being on the Julian mode you can enter the shell mode by typing ;:

julia>;
shell>pwd
/current-folder-path

this will allow you to use Linux commands. Notice that the availability of these commands depend on the OS, for instance, on Windows it will depend on the terminal that you have installed and if it is visible to the Julia installation.

Another mode available in Julia is the package manager mode, it can be accessed by typing ] in the Julian mode:

julia>]
(v1.8) pkg>

this will make your interaction with the package manager Pkg easier, for instance, instead of typing the complete name of Pkg commands such as Pkg.status() in the Julian mode, you can just type status in the package mode.

The last mode is the help mode, you can enter this mode from the Julian one by typing ?, then you may type some string from which you need more information:

julia>?

help?> ans
search: ans transpose transcode contains expanduser instances MathConstants readlines
LinearIndices leading_ones leading_zeros

ans

A variable referring to the last computed value, automatically set at the interactive prompt.

More detailed information about the modes in Julia can be found here.

Run

Run Julia script

You can run a Julia script on the Linux shell as follows:

$ julia example.jl

Run Julia as a session

Type-Along

$ julia

The Julia prompt (julian mode) looks like this:

julia>

Exit with

julia> <Ctrl-D>

or

julia> exit()

Exercises

1. Getting familiar with Julia REPL

  • It is important in this course that you know how to navigate on the Julia command line. Here is where you install packages.

  • This exercise will help you to become more familiar with the REPL. Do the following steps:

    • Start a Julia session. In the Julian mode, compute the sum the numbers 5 and 6

    • Change to the shell mode and display the current directory

    • Now, go to the package mode and list the currently installed packages

    • Finally, display help information of the function println in help mode.

2. Loading modules and running scripts

Load the Julia version 1.8.5 and run the following serial script (serial-sum.jl) which accepts two integer arguments as input:

x = parse( Int32, ARGS[1] )
y = parse( Int32, ARGS[2] )
summ = x + y
println("The sum of the two numbers is ", summ)

3. Check your understanding

  • Check your understanding and answer in the shared document

  • Can you start Julia without loading a Julia module?
    • Yes?

    • No?

  • How do you toggle to the package mode?
    • Which character?

  • How do you toggle back to the Julia mode?
    • Which character?

  • How do you toggle to the help mode?
    • Which character?

  • How do you toggle to the shell mode?
    • Which character?

Keypoints

  • Before you can run Julia scripts or work in a Julia shell, first load a Julia module

  • Start a Julia shell session with julia

  • It offers several modes that can make your workflow easier, i.e.

    • Julian

    • shell

    • package manager

    • help

  • Run scripts with julia <script.jl>