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 slims #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 slims.
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: