Uso Filesystem Local

De NLHPC

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:

  1. Copiar nuestros archivos desde nuestra carpeta personal a un directorio local
  2. Ejecutar nuestra simulación
  3. 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.

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: