Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
stylenone

...

What is Jupyter and What is a Kernel?

Note
  • Jupyter is a large umbrella project that covers many different software offerings and tools, including the popular Jupyter Notebook and JupyterLab web-based notebook authoring and editing applications.

  • Kernels are programming language specific processes that run independently and interact with the Jupyter Applications and their user interfaces.

    • They can be considered as the computational engine for notebooks.

    • The kernel process is a standalone process that runs in the background and executes the code that you write in your notebooks. The kernel process is responsible for running the code and returning the results to the frontend.

  • ARCC provides the Jupyter with OnDemand workshop.

...

General Process

Info

The general process involves updating the conda Conda environment to include kernel related packages, and then configuring the kernel spec to allow it to be picked up by the Jupyter service.

Info
  1. Activate you R Conda Environment.

  2. Start R.

  3. Install the IRkernel package.

  4. Exit R.

  5. Deactivate your Conda environment.

  6. Copy the created kernelspec into your home ~/.local/share/jupyter/kernels/ folder.

  7. Update the kernel.json.

...

Install the IRkernel package

Info

Activate you R Conda Environment and start R.

Code Block
[salexan5@mblog2 ~]$ module load miniconda3/24.3.0
[salexan5@mblog2 ~]$ conda activate /project/arcc<project-name>/software/conda-envs/r_4.3.3_env/
(/project/arcc<project-name>/software/conda-envs/r_4.3.3_env) [salexan5@mblog2 ~]$ R
> install.packages('IRkernel')
...
also installing the dependencies ‘fastmap’, ‘fansi’, ‘utf8’, ‘htmltools’, ‘pillar’, ‘base64enc’, ‘repr’, ‘evaluate’, ‘IRdisplay’, ‘pbdZMQ’, ‘crayon’, ‘jsonlite’, ‘uuid’, ‘digest’
...
* DONE (IRkernel)

...

Info

Installing the IRkernel package will create a kernel spec that we can use.

This can be found under the Conda environment location, under: lib/R/library/IRkernel/kernelspec/

Code Block
[salexan5@mblog2 ~]$ ls /project/arcc<project-name>/software/conda-envs/r_4.3.3_env/lib/R/library/IRkernel/kernelspec/
kernel.js  kernel.json  logo-64x64.png  logo-svg.svg
Code Block
[salexan5@mblog2 ~]$ cat /project/arcc<project-name>/software/conda-envs/r_4.3.3_env/lib/R/library/IRkernel/kernelspec/kernel.json
{"argv": ["R", "--slave", "-e", "IRkernel::main()", "--args", "{connection_file}"],
 "display_name":"R",
 "language":"R"
}

...

Info

Copy the created kernelspec into your home:

Code Block
[salexan5@mblog2 ~]$ cd .local/share/jupyter/kernels/
[salexan5@mblog2 kernel]$ mkdir r_4.3.3
[salexan5@mblog2 kernel]$ cd r_4.3.3
[salexan5@mblog2 r_4.3.3]$ cp /project/arcc<project-name>/software/conda-envs/r_4.3.3_env/lib/R/library/IRkernel/kernelspec/* .
Info

Update the kernel.json file to:

  • point to the Conda environment’s version of R.

  • give this kernel a unique display name.

Code Block
[salexan5@mblog2 r_4.3.3]$ cat kernel.json
{"argv": ["/project/arcc<project-name>/software/conda-envs/r_4.3.3_env/bin/R", "--slave", "-e", "IRkernel::main()", "--args", "{connection_file}"],
 "display_name":"R_4.3.3 (local)",
 "language":"R"
}

...

Start Jupyter

...

Code Block
# Cell Output:
'/cluster/medbow/project/arcc<project-name>/software/conda-envs/r_4.3.3_env/lib/R/library'

...

Code Block
# Cell Output:
"Package" "LibPath" "Version" "Priority"
"base" "base" "/cluster/medbow/project/arcc<project-name>/software/conda-envs/r_4.3.3_env/lib/R/library" "4.3.3" "base"
...
"vctrs" "vctrs" "/cluster/medbow/project/arcc<project-name>/software/conda-envs/r_4.3.3_env/lib/R/library" "0.6.5" NA
Info

Note the library path is that of the Conda environment: /project/arcc/software/conda-envs/r_4.3.3_env/lib/R/library

...