====== TRABAJO CON PYTHON USANDO LOS MÓDULOS INSTALADOS POR EASYBUILD ======
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 --user
Ejemplo:
python -m pip install keras --user
- Para instalar varios módulos al mismo tiempo:
python -m pip install ... --user
Ejemplo:
python -m pip install matplotlib scikit-learn --user
- Para instalar un módulo especificando la versión:
python -m pip install == --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
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