Servicio de Jupyter¶
El servicio de Jupyter nos permite crear, compartir y gestionar notebooks.
Está diponible en: https://jupyterhub.lst.tfo.upm.es/ accediendo con las credenciales de dominio (con o sin @lst.tfo.upm.es), siempre que el usuario tenga habilitado éste servicio. Contactar con IT si quiere activar éste servicio.
Kernels disponibles para los usuarios¶
Un kernel es un Notebook con versiones y paquetes instalados, de tal modo que al abrir un nuevo Notebook en un kernel ya definido, se accede a unas funcionalidades ya preparadas.
Están disponibles los siguientes kernels:
- Python 3.7
- Python 2.7
- Matlab
- Apache Toree - Scala
- TensorFlow 2.4 (Instalado sobre Python 3.8)
Compartir notebooks y archivos entre usuarios¶
Todos los usuarios tienen acceso a una carpeta compartida. Esta carpeta se llama "scratch", y se encuentra disponible para todos desde el inicio. Se pueden copiar, mover o crear notebooks en esa carpeta, y los notebooks ahí presentes serán de sólo lectura para el resto de usuarios (aun así es posible borrar los ficheros, así que cuidad de esa carpeta y sus contenidos)
Esta carpeta es un symlink situado en /home/jupyter-USUARIO/ (la carpeta compartida está en /srv/scratch/). Un usuario A que quiera compartir un notebook con el resto, puede mover su notebook a la carpeta compartida en la propia web de jupyter seleccionando el notebook, dando al botón move, y escribiendo en el cuadro de texto "/scratch".
También puede hacerse en terminal: se abre una terminal en Jupyter y ejecuta, en el directorio HOME inicial de la terminal:
cp NOTEBOOK\_PARA\_COMPARTIR scratch
Abrir una terminal¶
Todos los usuarios de JupyterHub pueden abrir una terminal pulsando en New y seleccionando Terminal. Esto abre una terminal Bash en el propio servidor, para poder ejecutar los comandos que necesitemos.
¿Qué podemos hacer en la terminal?
- Gestionar entornos virtuales y kernels
- Instalar paquetes python
- Instalar paquetes apt
Gestionar entornos virtuales y kernels¶
Entornos virtuales (Virtual Environment - venv)¶
Todos los usuarios, por defecto, están funcionando en un mismo entorno virtual llamado base. Este entorno virtual puede ser cambiado por cualquiera, así que no es recomendable utilizarlo ya que las versiones de los paquetes que estén un día instaladas, pueden no estarlo al día siguiente, y habrá colisiones entre los usuarios.
Siempre hay que crear, como mínimo, 1 entorno virtual para trabajar en él.
| Función | Comando | Argumentos | Ejemplo |
|---|---|---|---|
| Crear un venv | conda create -n nombre_venv |
python=PYTHON_VERSION | conda create -n py3.8 python=3.8 |
| Activar un venv | conda activate nombre_venv |
conda activate py3.8 |
|
| Desactivar un venv | conda deactivate |
||
| Listar venvs | conda env list |
||
| Eliminar venv | conda env remove -n ENV_NAME |
conda env remove -n py3.8 |
Los venvs creados por el usuario se encuentran en ~/.conda/envs
Crear kernels personalizados¶
Abrimos una terminal y seguimos los siguientes pasos:
- Creamos el venv (podemos especificar la versión de python opcionalmente) y lo activamos
conda create -n MY\_OWN\_NOTEBOOK python=PYTHON\_VERSION conda activate MY\_OWN\_NOTEBOOK - Instalamos los paquetes (pip, apt) que queramos
python -m pip install PACKAGE\_TO\_INSTALL - Instalamos el kernel
conda install ipykernel python -m ipykernel install --user --name=MY\_OWN\_NOTEBOOK
Ahora, en la interfaz de jupyter, se puede abrir un nuevo notebook con el kernel creado
Eliminar kernel personalizado¶
Si ya no queremos seguir usando un kernel, podemos eliminarlo. Abrimos una terminal y seguimos los siguientes pasos:
conda env remove -n NOMBRE_DEL_VENV
jupyter kernelspec uninstall NOMBRE_DEL_KERNEL
Dependencias de NVIDIA: CUDA y cuDNN¶
Para los paquetes que tengan dependencias de NVIDIA (e. g. Tensorflow, PyTorch, Detectron), los usuarios no pueden utilizar esas dependencias. Estas dependencias son muy delicadas, y para solicitarlas, estudiad bien las que sean necesarias y contactad con IT.
Ahora mismo están instaladas las siguientes parejas de versiones de CUDA y cuDNN:
| CUDA | cuDNN |
|---|---|
| 10.1 | 7.6.5 |
| 11.0 | 8.0.5 |