====== 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