Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Goal: Demonstrate extending a Python related conda environment in to Juypter kernel.


What is Jupyter and What is a Kernel?

  • 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

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

  1. Activate you Python Conda Environment.

  2. Conda install the ipykernel package.

  3. Deactivate your Conda environment.

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

  5. Update the kernel.json.

The process creates a kernel for an individual user from the previously created shared Conda environment.

Each individual from the shared space will need to follow this process to create their own kernel.

If anyone updated the packages within this shared Conda environment, then the update will effect everyone. Be warned.


Install the ipykernel package

[]$ module purge
[]$ module load miniconda3/24.3.0
[]$ conda activate /cluster/medbow/project/<project-name>/software/tensorflow/2.16
(/cluster/medbow/project/<project-name>/software/tensorflow/2.16) []$ export PYTHONUSERBASE=$CONDA_PREFIX
(/cluster/medbow/project/<project-name>/software/tensorflow/2.16) []$ conda install ipykernel
...
(/cluster/medbow/project/<project-name>/software/tensorflow/2.16) []$ conda deactivate
[]$ 

Created kernel related folder

Installing the ipykernel package will create a kernel spec related folder that we can use.

This can be found under the Conda environment location, under: share/jupyter/kernels/ named python3

[]$ cd /project/<project-name>/software/tensorflow/2.16
[]$ cd share/jupyter/kernels/
[]$ ls
python3

[]$ ls python3
kernel.json  logo-32x32.png  logo-64x64.png  logo-svg.svg

Rename the folder to something more appropriate:

[]$ mv python3 TF2.16

Configure Your Jupyter Environment

If you haven’t used the Jupyter service, then you might not have, and thus will need to create the following folders:

~/.local/share/jupyter/kernels/

Copy the created TF2.16 folder into your home:

[]$ cp -r TF2.16/ ~/.local/share/jupyter/kernels/

Update the kernel.json file to:

  • give this kernel a unique display name.

[]$ ~/.local/share/jupyter/kernels/TF2.16/
[]$ cat kernel.json
{
 "argv": [
  "/cluster/medbow/project/<project-name>/software/tensorflow/2.16/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "TF2.16 (local)",
 "language": "python",
 "metadata": {
  "debugger": true
 }
}

Start Jupyter

From OnDemand start a Jupyter session.

Notice how the newly configured kernel is now available.

image-20240731-135133.png

Within a Notebook

Within a Jupyter notebook cell try:

import tensorflow as tf; 
print("TensorFlow Version: " + str( tf.__version__))
TensorFlow Version: 2.16.1

 

Add label

  • No labels