Diferencia entre revisiones de «Uso Filesystem Local»

De NLHPC
 
Línea 18: Línea 18:
#!/bin/bash
#!/bin/bash
#SBATCH -J ejemplo
#SBATCH -J ejemplo
#SBATCH -p slims
#SBATCH -p main
#SBATCH -n 1
#SBATCH -n 1
#SBATCH -c 1
#SBATCH -c 1
Línea 45: Línea 45:
</pre>
</pre>


En el ejemplo anterior, se ejecuta una tarea bajo la partición '''slims'''.
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'''''.
El comando '''ml MODULO''' hace referencia a que '''''debe cargar los módulos que usted necesite'''''.

Revisión actual - 13:50 3 may 2024

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