To use a Julia kernel on LC JupyterHub, you need to first:
- 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.
