Saltar a contenido

Python y entornos

La vía rápida

module load python/3.11
python -V
Python 3.11.14

¿module load dice que el módulo es desconocido?

Activa primero las rutas del software del clúster, como se explica en el paso 3.

Este intérprete ya trae lo esencial para ciencia de datos y es la base de módulos como pytorch/2.2, jupyterlab/3.11 o python-gis/3.11.14 (pila geoespacial: geopandas y compañía).

¿Necesitas paquetes extra?

Instalar en el sistema no está permitido ni hace falta: crea tu entorno en /work con Miniconda. Como /work se monta en los nodos de cómputo, crea el entorno desde una sesión interactiva o desde un job:

module load miniconda3/3
conda create -y -p /work/$USER/entornos/mi_proyecto python=3.11
conda activate /work/$USER/entornos/mi_proyecto
pip install scikit-learn xarray

Actívalo dentro de tus scripts SLURM con la misma ruta (conda activate /work/$USER/entornos/mi_proyecto). Así tu $HOME queda liviana y puedes versionar el entorno con conda env export.

Jupyter

  • Sin instalar nada: JupyterLab desde el portal visual (recomendado para trabajar de forma interactiva).
  • Por línea de comandos: module load jupyterlab/3.11 para lanzar tu propio servidor dentro de un job o sesión interactiva.

IA generativa y descarga de modelos

Si usas Hugging Face (huggingface-cli/0.23.5, transformers), define la caché en tu espacio de trabajo antes de descargar:

export HF_HOME=/work/$USER/.cache/huggingface

Para el piloto de IA generativa del CEDIA (API compatible con OpenAI), contacta al NOC.

Problemas típicos con paquetes

Si un paquete de Python se instala pero falla al usarse, prueba ejecutarlo dentro de un trabajo SLURM en lugar del nodo de acceso: los nodos de cómputo tienen un sistema operativo más reciente que el nodo de acceso, y hay wheels que exigen librerías del sistema más nuevas.

module load pytorch/2.2
srun -p cpu-dev --mem=4G --time=00:10:00 python -c "import torch; print(torch.__version__)"
¿Por qué pasa esto?

Muchos paquetes de IA se empaquetan para distribuciones recientes. En el nodo de acceso (más antiguo) pueden fallar con errores de GLIBCXX o glibc; en los nodos de cómputo los mismos wheels funcionan. El flujo correcto en un clúster siempre es: instalar en tu entorno de /work, ejecutar en cómputo.