Python 3.7 tiene instalado un total de 380 módulos, los cuales pueden satisfacer las necesidades de los usuarios.
Para ver los módulos instalados se ejecuta:
module load Python/3.7.0-foss-2018b python >>> help ("modules")
o también:
module load Python/3.7.0-foss-2018b pip list
En el caso de que sea necesario usar algún módulo que no esté instalado, cada usuario tiene que instalarlo de la forma que se describe a continuación.
Adición de módulos nuevos de python por los usuarios
Los módulos nuevos se instalan con pip usando la opción --user. Con esta opción, los módulos se instalan en el directorio $HOME/.local y solamente el usuario correspondiente puede utilizarlos. Con ello, también se pueden usar los módulos de Python 3.6 sin tener que hacer ninguna instalación.
Para adicionar módulos nuevos:
1. Cargar el módulo de Python:
module load Python/3.7.0-foss-2018b
2. Actualizar pip para trabajar con la última versión disponible. Se recomienda ejecutar este comando cada vez que se vaya a instalar un módulo nuevo:
python -m pip install --upgrade pip --user
3. Verificar que el fichero $HOME/.bash_profile contenga la siguiente línea:
PATH=$PATH:$HOME/.local/bin:$HOME/bin
4. Instalar o desinstalar nuevos módulos:
- Para instalar un módulo nuevo:
python -m pip install <nombre_módulo> --user
Ejemplo:
python -m pip install keras --user
- Para instalar varios módulos al mismo tiempo:
python -m pip install <nombre_módulo1> <nombre_módulo2> ... --user
Ejemplo:
python -m pip install matplotlib scikit-learn --user
- Para instalar un módulo especificando la versión:
python -m pip install <nombre_módulo>==<número de versión> --user
Por ejemplo para instalar theano con la versión 1.0.4:
python -m pip install theano==1.0.4 --user
- En el caso que quiera desinstalar un módulo:
python -m pip uninstall <nombre_módulo>
Ejemplo:
python -m pip uninstall matplotlib
Aclaraciones sobre TensorFlow usando CPU y Pytorch
Actualmente, la última versión de TensorFlow es la 2.0 pero los procesadores AMD del HPC UO no soportan la opción AVX, lo cual es un requisito para utilizar TensorFlow a partir de la versión 1.6. Esto significa que para trabajar con TensorFlow usando CPU, los usuarios del HPC tienen que utilizar la versión 1.5.0 y deben instalarla con el comando siguiente:
python -m pip install tensorflow==1.5.0 --user
En el caso de PyTorch, hay que instalar torch (y no pytorch), de la forma siguiente:
python -m pip install torch --user
Envío de trabajos con programas escritos en Python
En los scripts de Slurm que siguen se muestran las directivas indispensables, otras directivas las debe incluir el usuario.
1. Cálculo en serie
Para ejecutar un programa secuencial escrito en python, por ejemplo python_serie.py, en el script de envío python_serie.sl hay que especificar:
#!/bin/bash ... #SBATCH --nodes=1 #SBATCH --ntasks-per-node=1 ... module load Python/3.7.0-foss-2018b ... python python_serie.py
Se envía el trabajo con:
sbatch python_serie.sl
2. Cálculo en memoria distribuida
Para ejecutar un programa en paralelo python_paralelo.py en el script de envío python_paralelo.sl, hay que especificar:
#!/bin/bash ... #SBATCH --nodes=2 # 2, 3, ... #SBATCH --ntasks-per-node=2 # 2, 3, ... ... module load Python/3.7.0-foss-2018b ... python python_paralelo.py
Se envía el trabajo con:
sbatch python_paralelo.sl
3. Cálculo en memoria compartida
Para ejecutar un programa multihilo python_multihilo.py en el script de envío python_multihilo.sl, hay que especificar:
#!/bin/bash ... #SBATCH --nodes=1 #SBATCH --cpus-per-task=2 # 2,3… ... module load Python/3.7.0-foss-2018b export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK ... python python_multhilo.py
Se envía el trabajo con:
sbatch python_multihilo.sl