Guia de Usuario

De WikiAbacus
Saltar a: navegación, buscar

Para ingresar al cluster Abacus-I, se cuenta con dos nodos de servicio disponibles descritos de acuerdo con la siguiente tabla:

Nodo Nombre de Dominio Dirección IP
service0 s0.edomex.cinvestav.mx 148.247.115.86
service1 s1.edomex.cinvestav.mx 148.247.115.87

De forma general utilizando SecureShell (SSH), tanto en en clientes Linux como MAC, puede ejecutarse en la terminal el siguiente comando:

   $ ssh usuario@s0.edomex.cinvestav.mx 

En este caso se utiliza el nombre de dominio del nodo de servicio "service0". De la misma forma, es posible utilizar la direccion ip, es decir:

   $ ssh usuario@148.247.115.86 

Finalemente, para el caso de clientes Windows es posible utilizar aplicaciones tales como PUTTY.

Administración de recursos


El scheduler utilizado en el cluster es SLURM. SLURM administra recursos tales como CPU, sockets, threads, RAM, tiempo, GPU's, etc.

Es importante mencionar que los nodos de CPU y GPU estan divididos en dos particiones: ICE y GPU, que pueden mostrarse mediante el comando sinfo. Este comando además, muestra los nodos en estado disponibles (idle), los nodos que estan siendo utilizados por otro trabajo (alloc) y los nodos que no estan disponibles para los usuarios (down).

   [root@service0 ~]# sinfo 
   PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
   abacus*      up   infinite    318   up   r1i0n[0-17],r1i1n[0-15],r1i2n[0-17],r1i3n[0-14],r1i4n[0-17],r1i5n[0-15],r1i6n[0-17],r1i7n[0-14],
                                            r2i0n[0-17],r2i1n[0-15],r2i2n[0-17],r2i3n[0-14],r2i4n[0-17],r2i5n[0-2,4-15],r2i6n[0-17],r2i7n[0-14],
                                            service[2-51]
   test         up   infinite      5   up   r1i0n[0-17],r1i1n[0-15],r1i2n[0-17],r1i3n[0-14],r1i4n[0-17],r1i5n[0-15],r1i6n[0-17],r1i7n[0-14],
                                            r2i0n[0-17],r2i1n[0-15],r2i2n[0-17],r2i3n[0-14],r2i4n[0-17],r2i5n[0-2,4-15],r2i6n[0-17],r2i7n[0-14],
                                            service[2-51]


Asimismo, este scheduler utiliza comandos tales como SBATCH, SRUN y SEXEC en favor de encolar trabajos en el cluster. Ejemplo:

   $ sbatch < example.slurm

Ademas, es importante mencionar que en el momomento que se crea la cuenta en el cluster, un script de slurm es presentado dentro del directorio home del usuario, este script contiene la siguiente informacion

   #!/bin/bash
   # DEFINE EL NUMERO DE NODOS
   #SBATCH -N 1
   # DEFINE EL NUMERO DE PROCESADORES "THREADS"
   #SBATCH -n 14
   # DEFINE LA PARTICION DONDE CORRERAN LOS TRABAJOS "ice PARA CPU" "gpu PARA GPU"
   #SBATCH --partition=ice
   # DEFINE EL DIRECTORIO DE TRABAJO
   #SBACTH -D /lustre/home/Cinvestav/Computacion/matrices/larivera/
   # DEFINE EL TIEMPO DE EJECUCION "INDISPENSABLE DEFINIR days-hours:minutes:seconds"
   #SBATCH --time=6-00:00:00
   # NOMBRE DEL ARCHIVO DE SALIDA DE ERROR
   #SBATCH –error=myjob%J.err
   # nOMBRE DEL ARCHIVO DE SALIDA ESTANDAR
   #SBATCH –output=myjob%J.out
## AQUI SE DEFINEN LOS COMANDOS NECESARIOS PARA LANZAR TU TRABAJO
mpicc job.c -o myjob mpirun -n 14 myjob

En favor de conocer el estado del trabajo enviado al cluster se utiliza el comando squeue; por ejemplo:

   $ squeue
   JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
   4220 ice sbatch larivera R 1:40:06 1 r1i0n0
   4221 ice sbatch larivera R 1:40:06 1 r1i0n0
   4222 ice sbatch larivera R 1:40:06 1 r1i0n0
   4223 ice sbatch larivera R 1:40:06 1 r1i0n0
   4224 ice sbatch larivera R 1:40:06 1 r1i0n1  
   4225 ice sbatch larivera R 1:40:06 1 r1i0n1

Como puede observarse, la salida del comando muestra el JOBID, la partición(cola de ejecucion), el usuario que envio el trabajo, el estado del trabajo(en este caso R, es decir, ejecutandose), el tiempo que lleva en ese estado y, el nodo en el que esta corriendo o la razon por la que se encuentra en un estado diferente a R.

Para detener un trabajo en ejecución o en estado de espera, se utiliza el comando scancel, seguido del JOBID; por ejemplo:

   $ scancel 4220

Ademas, cada usuario presenta diferentes requisitos de acuerdo con las aplicaciones y versiones. De esta manera, en favor de que puedan existir diferentes versiones de aplicaciones, se utiliza Environment Modules, el cual se describe en favor de administrar el tipo de compiladores,(ICC(intel) y GCC(gnu)), las versiones (CUDA 6.0,CUDA 6.5 y CUDA 7.0) y las aplicaciones y bibliotecas.

En caso de conocer las aplicaciones instaladas en Abacus-I puede ejecutarse el comando:

   $ module avail

La salida de esta comando, mostrara las aplicaciones disponibles dentro del cluster. Asimismo, en favor de conocer si esta presente un modulo en especifico, puede ser de utilidad el comando:

   $ module list

Finalmente, para cargar una aplicación puede ejecutarse el comando:

   $ module load NOMBRE DE LA APLICACION

En caso de nececitar soporte técnico, por favor visita la pagina de soporte de Abacus-I, en la cual es posible presentar la descripción del problema o duda que se presente. Es importante mencionar que, unicamente se revisarán casos de usuarios registrados en el sitio web; en caso de nececitar ayuda con el regsitro, puede consultarse la Guia de Soporte.