Uso Filesystem Local
Introducción
El siguiente procedimiento indica los pasos necesarios para poder utilizar el filesystem local y ejecutar tareas mediante el uso de SLURM.
Este uso está pensado para aplicaciones como Siesta, Orca, Gaussian entre otras.
Pasos a seguir
Para considerar el uso del filesystem local, es necesario comprender qué debemos hacer:
- Copiar nuestros archivos desde nuestra carpeta personal a un directorio local
- Ejecutar nuestra simulación
- Copiar los resultados del directorio local a nuestra carpeta personal
Con esto en mente, se puede realizar un script similar a:
#!/bin/bash
#SBATCH -J ejemplo
#SBATCH -p main
#SBATCH -n 1
#SBATCH -c 1
#SBATCH --mem-per-cpu=2300
#SBATCH --mail-user=foo@example.com
#SBATCH --mail-type=ALL
#SBATCH -o ejemplo_%j.out
#SBATCH -e ejemplo_%j.err
# Carga de módulos necesarios
ml MODULO
# Creación de carpeta local
LOCAL_DIR="/tmp/${SLURM_JOB_ID}"
mkdir $LOCAL_DIR
# Copiamos nuestros archivos o carpeta al directorio creado 
cp -r $HOME/mis_archivos/ $LOCAL_DIR
cd $LOCAL_DIR/mis_archivos
# Ejecutamos nuestra simulación
srun aplicación mi_input > mi_output
# Copiamos los resultados obtenidos a nuestra carpeta de origen
cp -r mi_output $LOCAL_DIR/mis_archivos
En el ejemplo anterior, se ejecuta una tarea bajo la partición main.
El comando ml MODULO hace referencia a que debe cargar los módulos que usted necesite.
Posterior a eso, se creará una carpeta bajo /tmp que tendrá como nombre el Job ID de su tarea, y se copiará la carpeta mis_archivos a la nueva carpeta creada.
Y se finaliza accediendo a la carpeta copiada en el filesystem local.
Posterior a eso, se ejecutará la aplicación según el módulo cargado (en este ejemplo llamado srun aplicación), el cual almacenará el resultado obtenido en el archivo mi_output.
Una vez que haya finalizado la tarea, es importante que el usuario almacene en su carpeta personal los resultados obtenidos, para eso se copia el archivo obtenido a su carpeta personal.
Es de suma importancia el último paso, ya que de no copiar los resultados estos se perderán.
Una vez que la tarea haya finalizado, SLURM eliminará las carpetas y el contenido de /tmp.
Consideraciones
El lector debe considerar qué el script presentado en la sección anterior es un ejemplo y deberá realizar las modificaciones necesarias para:
- Crear una carpeta con la variable $SLURM_JOB_ID permite que no exista conflicto de nombres con otras posibles carpetas ya existentes
- Cargar los módulos y librerías específicas a su necesidad
- Puede copiar archivos y/o carpetas de manera particular y/o recursiva según corresponda
- Ejecutar la aplicación que requiera, indicando el/los comando/s necesarios según el módulo cargado anteriormente
- Deberá copiar de regreso los resultados obtenidos a su carpeta personal para evitar pérdida de datos obtenidos
Enlaces
Puede ver ejemplos del uso de este procedimiento en otras páginas de la wiki como por ejemplo:

