To use a Julia kernel on LC JupyterHub, you need to first:

  1. Install IJulia

You can install `IJulia` using the Julia package manager, `Pkg`, after starting the Julia REPL. (This example uses the TOSS-compatible Julia binary at `/usr/gapps/julia/bin/julia` on the RZ. See `/usr/gapps/julia/bin/julia-power` for Sierra systems.)

janeh@rzslic4:~$ /usr/gapps/julia/bin/julia

               _

   _       _ _(_)_     |  Documentation: https://docs.julialang.org

  (_)     | (_) (_)    |

   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.

  | | | | | | |/ _` |  |

  | | |_| | | | (_| |  |  Version 1.5.3 (2020-11-09)

 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release

|__/                   |


julia> using Pkg


julia> Pkg.add("IJulia")

 Installing known registries into `~/.julia`

######################################################################## 100.0%

      Added registry `General` to `~/.julia/registries/General`

  Resolving package versions...

  Installed VersionParsing ── v1.2.0

  Installed libsodium_jll ─── v1.0.19+0

  Installed SoftGlobalScope ─ v1.1.0

  Installed ZeroMQ_jll ────── v4.3.2+6

  Installed Conda ─────────── v1.5.1

  Installed Parsers ───────── v1.1.0

  Installed IJulia ────────── v1.23.2

  Installed JSON ──────────── v0.21.1

  Installed Artifacts ─────── v1.3.0

  Installed MbedTLS_jll ───── v2.16.8+1

  Installed ZMQ ───────────── v1.2.1

  Installed MbedTLS ───────── v1.0.3

  Installed JLLWrappers ───── v1.2.0

Downloading artifact: libsodium

Downloading artifact: ZeroMQ

Downloading artifact: MbedTLS

Updating `~/.julia/environments/v1.5/Project.toml`

  [7073ff75] + IJulia v1.23.2

Updating `~/.julia/environments/v1.5/Manifest.toml`

  [56f22d72] + Artifacts v1.3.0

  [8f4d0f93] + Conda v1.5.1

  [7073ff75] + IJulia v1.23.2

  [692b3bcd] + JLLWrappers v1.2.0

  [682c06a0] + JSON v0.21.1

  [739be429] + MbedTLS v1.0.3

  [c8ffd9c3] + MbedTLS_jll v2.16.8+1

  [69de0a69] + Parsers v1.1.0

  [b85f4697] + SoftGlobalScope v1.1.0

  [81def892] + VersionParsing v1.2.0

  [c2297ded] + ZMQ v1.2.1

  [8f1865be] + ZeroMQ_jll v4.3.2+6

  [a9144af2] + libsodium_jll v1.0.19+0

  [2a0f44e3] + Base64

  [ade2ca70] + Dates

  [8ba89e20] + Distributed

  [7b1f6079] + FileWatching

  [b77e0a4c] + InteractiveUtils

  [76f85450] + LibGit2

  [8f399da3] + Libdl

  [56ddb016] + Logging

  [d6f4376e] + Markdown

  [a63ad114] + Mmap

  [44cfe95a] + Pkg

  [de0858da] + Printf

  [3fa0cd96] + REPL

  [9a3f8284] + Random

  [ea8e919c] + SHA

  [9e88b42a] + Serialization

  [6462fe0b] + Sockets

  [8dfed614] + Test

  [cf7118a7] + UUIDs

  [4ec0a83e] + Unicode

   Building Conda ─→ `~/.julia/packages/Conda/tJJuN/deps/build.log`

   Building IJulia → `~/.julia/packages/IJulia/e8kqU/deps/build.log`

2. Find kernel on JupyterHub

Sign in to LC JupyterHub in the same zone where you installed IJulia (https://rzlc.llnl.gov/jupyter/ on the RZ and https://lc.llnl.gov/jupyter/ on the CZ). If you are already logged in, you will want to log out and log back in again.

After picking a machine on which to start a server, go to “New” to open a new notebook and you should see a “Julia” binary available for you. For example, having installed IJulia to a Julia v1.5.3 binary, I see “Julia 1.5.3” as a kernel option.

3. (Optional) Change the name of your Julia kernel

Installing IJulia created the file `~/.local/share/jupyter/kernels/julia-1.5/kernel.json` (though the name of the Julia subdirectory under `~/.local/share/jupyter/kernels/` will vary based on the binary to which you installed IJulia. When you open `kernel.json` you will see something like

{

  "display_name": "Julia 1.5.3",

  "argv": [

    "/collab/usr/gapps/julia/julia-1.5.3-x86-64/bin/julia",

    "-i",

    "--color=yes",

    "--project=@.",

    "/g/g0/janeh/.julia/packages/IJulia/e8kqU/src/kernel.jl",

    "{connection_file}"

  ],

  "language": "julia",

  "env": {},

  "interrupt_mode": "signal"

}

You can change the value bound to "display_name" to whatever you like. By changing it to `"display_name": "new Julia kernel"`, for example, logging out and back in to JupyterHub will allow you to create new notebooks with a "new Julia kernel" kernel.