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.11para 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.