Procedimientos básicos en Agustina

Información acerca de los procedimientos de gestión en Agustina (English version at the end).

Solicitud de acceso al sistema

Para obtener un usuario del sistema Agustina es necesario llevar a cabo una serie de pasos que comprenden la creación de un proyecto, sus cuentas asociadas, activación de las mismas y vinculación al proyecto creado.

Los formularios a cumplimentar se encuentran en : https://soporte.bifi.unizar.es/forms/form.php

Ingreso en el sistema

El comando para acceder a Agustina por ssh es:

ssh id_usuario@agustina.bifi.unizar.es

Ejemplo:

ssh john.diaz@agustina.bifi.unizar.es

El usuario podrá acceder de este modo siempre y cuando tenga una dirección IP fija abierta en el firewall. En caso contrario, el acceso podrá hacerse a través de Bridge:

ssh id_usuario@bridge.bifi.unizar.es

y una vez hecho el login:

ssh id_usuario@agustina.bifi.unizar.es

Ejemplo:

ssh jdiazlag@bridge.bifi.unizar.es

ssh john.diaz@agustina.bifi.unizar.es

Editores de texto

El editor establecido por defecto es Vi, aunque pueden cargarse Emacs (module load emacs) o Vim (module load vim).

Uso del almacenamiento

Una vez hecho login en el sistema Agustina, el usuario dispondrá de un pequeño espacio (limitado por cuota) bajo su directorio home. Dicho espacio no está pensado para almacenar datos, ya que es muy reducido; su uso está orientado a guardar scripts, notas y elementos ligeros.

Cada usuario podrá acceder a espacio de almacenamiento scratch bajo sistema LUSTRE, con mayor capacidad y orientado a uso de trabajo más intensivo, ubicado en /fs/agustina/id_usuario

Ejemplo:

/fs/agustina/john.diaz/

Gestión de trabajos

IMPORTANTE Cualquier trabajo que se lance de forma local en los nodos de login será cancelado. Los jobs deben lanzarse contra el cluster.

Agustina se basa en un sistema Slurm de gestión de colas. El procedimiento normal para ejecutar trabajos se basa en la creación de un script indicando las características de la tarea y el uso del comando sbatch.

El sistema dispone de varias particiones:

	PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
	agustina_fat        up 7-00:00:00      3   idle afat[01-03]
	agustina_thin*      up 7-00:00:00     93   idle athin[01-93]
	rasmia_hopper       up 7-00:00:00      2   idle agpuh[01-03]
	rasmia_ada          up 7-00:00:00      9   idle agpul[01-09]
	cierzo_thin         up 7-00:00:00     78   idle czthin[01-79]
	cierzo_fat 	        up 7-00:00:00      1   idle czfat01
	cierzo_kepler       up 7-00:00:00      4   idle czgpuk[01-04]
	full                up 7-00:00:00     96   idle afat[01-03],athin[01-93],agpuh[01-03],agpul[01-09],czthin[01-79],czfat01, czgpuk[01-04]
	RES                 up 7-00:00:00      9   idle afat01,athin[01-02,04-06,09,11-12,14-16,18-23,25-30]

Siendo agustina_thin la que comprende los nodos estándar de computación, agustina_fat la de nodos con el doble de memoria y full la totalidad de los nodos de cómputo. Por otra parte tenemos las particiones de GPU, las cuales corresponden a rasmia_hopper con GPUs H100 y rasmia_ada con GPUs L40S. Podremos comprobar su estado con el comando sinfo.

También se disponen de colas para ejecutar sobre la infraestructura cierzo (cierzo_thin y cierzo_fat), así como una cola de GPUs llamada cierzo_kepler, para más información consultar: https://cesar.unizar.es/hpc/.

Agustina está basado en procesadores AMD mientras que RasmIA y cierzo están basados en procesadores Intel.

IMPORTANTE: Los usuarios que usen horas de cálculo provenientes de la RES (Red Española de Supercomputación), deberán usar la partición RES.

Ejemplo helloWorld.sh para enviar a la cola de trabajo:

#!/bin/env bash

#SBATCH -J helloTest # job name
#SBATCH -o helloTest.o%j # output and error file name (%j expands to jobID)
#SBATCH -N 3 # total number of nodes
#SBATCH --ntasks-per-node=12 # number of cores per node (maximum 24)
#SBATCH -p agustina_thin # partition

echo "Hello world, I am running on node $HOSTNAME"
sleep 10
date

Para lanzar la tarea es imprescindible hacerlo asociándola a su proyecto correspondiente:

sbatch --account id_proyecto helloWorld.sh

De lo contrario, obtendremos un mensaje de error:

sbatch: error: QOSMaxSubmitJobPerUserLimit
sbatch: error: Batch job submission failed: Job violates accounting/QOS policy (job submit limit, user\'s size and/or time limits)

Podemos comprobar el estado de ejecución del script con el comando squeue.

Ejemplo:

[john.diaz@alogin02 slurmTest]$ sbatch --account proyecto_prueba helloWorld.sh
Submitted batch job 1707

[john.diaz@alogin02 slurmTest]$ squeue
	     JOBID     PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
	      1707 agustina_thin helloTes john.dia  R       0:01      3 athin[49-51]

Existen otros comandos útiles para la gestión de trabajos:

Cancelación

scancel job_id

Información detallada

scontrol show job identificadorJob

IMPORTANTE: Los trabajos tienen una duración máxima en el sistema de una semana (7 días desde el lanzamiento del trabajo), por lo tanto, si el trabajo dura más de una semana el sistema de colas lo cancelará. Para evitar este hecho, el usuario deberá dividir los datos de entrada para lanzar trabajos con menos carga de procesado o paralelizar su software.

Información sobre códigos de estado: https://confluence.cscs.ch/display/KB/Meaning+of+Slurm+job+state+codes

Guía de usuario Slurm: https://slurm.schedmd.com/quickstart.html


Basic procedures on Agustina

Information about management procedures on Agustina.

Requesting access to the system

To obtain a user account on the Agustina system you must follow a series of steps that include creating a project, its associated accounts, activating them and linking them to the created project.

The forms to complete are available at: https://soporte.bifi.unizar.es/forms/form.php

Logging in to the system

The command to access Agustina by SSH is:

ssh user_id@agustina.bifi.unizar.es

Example:

ssh john.diaz@agustina.bifi.unizar.es

A user can access this way provided they have a fixed IP address allowed through the firewall. Otherwise, access can be done via the Bridge:

ssh user_id@bridge.bifi.unizar.es

and once logged in:

ssh user_id@agustina.bifi.unizar.es

Example:

ssh jdiazlag@bridge.bifi.unizar.es

ssh john.diaz@agustina.bifi.unizar.es

Text editors

The default editor is Vi, although Emacs (module load emacs) or Vim (module load vim) modules can be loaded.

Storage usage

After logging into Agustina, the user will have a small quota-limited home directory. This space is not intended for data storage, as it is very limited; it is meant to store scripts, notes and small items.

Each user can access larger scratch storage on a LUSTRE filesystem for more intensive work, located at /fs/agustina/user_id

Example:

/fs/agustina/john.diaz/

Job management

IMPORTANT Any job launched directly on the login nodes will be cancelled. Jobs must be submitted to the cluster.

Agustina uses Slurm as the queuing system. The normal procedure to run jobs is to create a script specifying the job characteristics and submit it with sbatch.

The system provides several partitions:

    PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
    agustina_fat        up 7-00:00:00      3   idle afat[01-03]
    agustina_thin*      up 7-00:00:00     93   idle athin[01-93]
    rasmia_hopper       up 7-00:00:00      2   idle agpuh[01-03]
    rasmia_ada          up 7-00:00:00      9   idle agpul[01-09]
    cierzo_thin         up 7-00:00:00     78   idle czthin[01-79]
    cierzo_fat 	        up 7-00:00:00      1   idle czfat01
    cierzo_kepler       up 7-00:00:00      4   idle czgpuk[01-04]
    full                up 7-00:00:00     96   idle afat[01-03],athin[01-93],agpuh[01-03],agpul[01-09],czthin[01-79],czfat01, czgpuk[01-04]
    RES                 up 7-00:00:00      9   idle afat01,athin[01-02,04-06,09,11-12,14-16,18-23,25-30]

agustina_thin contains the standard compute nodes, agustina_fat contains nodes with double memory, and full includes all compute nodes. GPU partitions are rasmia_hopper (H100 GPUs) and rasmia_ada (L40S GPUs). Check their status with sinfo.

There are also queues for the Cierzo infrastructure (cierzo_thin and cierzo_fat) and a GPU queue cierzo_kepler. For more information see: https://cesar.unizar.es/hpc/

Agustina nodes use AMD processors, while RasmIA and Cierzo use Intel processors.

IMPORTANT: Users using computing hours from the Spanish Supercomputing Network (RES) must use the RES partition.

Example helloWorld.sh to submit a job:

#!/bin/env bash

#SBATCH -J helloTest             # job name
#SBATCH -o helloTest.o%j         # output and error file name (%j expands to jobID)
#SBATCH -N 3                     # total number of nodes
#SBATCH --ntasks-per-node=12     # number of cores per node (maximum 24)
#SBATCH -p agustina_thin         # partition

echo "Hello world, I am running on node $HOSTNAME"
sleep 10
date

When submitting the job it is mandatory to associate it with the corresponding project account:

sbatch --account project_id helloWorld.sh

Otherwise you will get an error:

sbatch: error: QOSMaxSubmitJobPerUserLimit
sbatch: error: Batch job submission failed: Job violates accounting/QOS policy (job submit limit, user's size and/or time limits)

You can check the job status with squeue.

Example:

[john.diaz@alogin02 slurmTest]$ sbatch --account proyecto_prueba helloWorld.sh
Submitted batch job 1707

[john.diaz@alogin02 slurmTest]$ squeue
         JOBID     PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
          1707 agustina_thin helloTes john.dia  R       0:01      3 athin[49-51]

Other useful job management commands:

Cancel a job:

scancel job_id

Detailed job information:

scontrol show job jobID

IMPORTANT: Jobs have a maximum duration of one week (7 days) in the system; if a job runs longer it will be cancelled. To avoid this, split input data to run shorter jobs or parallelize your software.

Information about Slurm job state codes: https://confluence.cscs.ch/display/KB/Meaning+of+Slurm+job+state+codes

Slurm user guide: https://slurm.schedmd.com/quickstart.html