Guia de Usuario

De WikiAbacus
Saltar a: navegación, buscar

Para ingresar al Cluster "Abacus-I", se cuenta con dos nodos de acceso o login, el acceso se efectua utilizando el protocolo de comunicaciones SecureShell(SSH). Los nodos de login son:

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

En Linux y MAC puede utilizarse un interprete de comandos o terminal mediante el comando ssh:

   $ 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.10 

El acceso a traves de sistemas tipo Windows puede efectuarse utilizando aplicaciones tales como: MobaXterm, PUTTY, FileZilla, WinSCP, entre otros.

Primer ingreso


Al ingresar por primera vez al Cluster "Abacus-I" debera realiar un cambio de contraseña. En pirmer lugar: deberá ingresar la contraseña actual (Current), posteriormente ingresar una contraseña nueva (New password), confirmarla (Retype new password) y de esta manera, la conexion se cerrara y posteriormente podra ingresar con la nueva contraseña.

[daniel@laptop-daniel ~]$ ssh dortizg@148.247.115.10
dortizg@148.247.115.10's password: 
You are required to change your password immediately (root enforced)
Last login: Mon Jan  9 13:00:58 2017 from 148.247.115.6

   ###    ########     ###     ######  ##     ##  ######          #### 
  ## ##   ##     ##   ## ##   ##    ## ##     ## ##    ##          ##  
 ##   ##  ##     ##  ##   ##  ##       ##     ## ##                ##  
##     ## ########  ##     ## ##       ##     ##  ######  #######  ##  
######### ##     ## ######### ##       ##     ##       ##          ##  
##     ## ##     ## ##     ## ##    ## ##     ## ##    ##          ##  
##     ## ########  ##     ##  ######   #######   ######          #### 

		
			****	AVISOS	  ****

	Documentación sobre el uso del Cluster:

	  http://wiki.edomex.cinvestav.mx/index.php/Guia_de_Usuario
	
	También puedes abrir un ticket en:

	  http://support.edomex.cinvestav.mx/

WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user dortizg.
Changing password for dortizg.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
 Connection to 148.247.115.10 closed.
[daniel@laptop-daniel ~]$ ssh dortizg@148.247.115.10

Administración de recursos


El scheduler o administrador de recursos utilizado en el clúster es SLURM. SLURM administra permite gestionar los recursos del clúster, por ejemplo: CPU, sockets, threads, RAM, tiempo de ejecución, GPU's, etc.

"Abacus-I" cuenta con doscientos sesenta y ocho nodos CPU y cincuenta nodos GPU contenidos en la partición (cola) abacus, el estado de esta partición pueden ser visible con 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). Tambien puede utilizar los comandos: scontrol show partition y sjstat -c.

[usuario@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]

Además, el scheduler tiene descrita una partición para realizar pruebas: test, esta partición tiene definido el nímero limite de nodos, es decir, 2 nodos CPU/GPU, cada nodo con 28 cores y 56 threads, lo que permite llevar a cabo un total de 112 procesos.

Gestión de tareas de usuario

Para poder interactuar con el administrador de recursos y gestionar de manera correcta los trabajos en el clíster, deben de utilizarse comandos tales como sbatch, srun, salloc, squeue. Ejemplo:

   $ sbatch example.slurm

Dentro de su directorio de trabajo se encuentra un script de sbatch que le permitira ejecutar sus trabajos de manera correcta:

   #!/bin/bash
   # ############################################################################ #
   # Este es un ejemplo de script para usar en el cluster ABACUS I                  #
   #                                                                              #
   # Para averiguar que Colas o particiones existen ejecute: sjstat -c            #
   # Una vez lanzado su script con el comando sbatch, puede monitorear sus tra-   #
   # bajos con el comando squeueu                                                 #
   #                                                                              #
   # ----------------------------------------------------------------------------
   # DEFINE EL NUMERO DE NODOS
   #SBATCH --nodes=2
   
   # DEFINE EL NUMERO DE PROCESADORES "THREADS"
   #SBATCH --ntasks=56
   
   # DEFINE LA PARTICION DONDE CORRERAN LOS TRABAJOS "test" PARA PRUEBAS Y "abacus" PARA OTROS(CPU Y/O GPU)
   #SBATCH --partition=abacus
   
   # DEFINE LA OPCIÓN DE NO UTILIZAR HYPERTHREADING (1) O DE UTILIZARLO (2)
   # ES IMPORTANTE QUE EN CASO DE NO SER UTIL PARA SU APLICACION SE DEJE EL VALOR EN 1 
   #SBATCH --ntasks-per-core=1
   
   # DEFINE EL TIEMPO DE EJECUCION INDISPENSABLE DEFINIR "hours:minutes:seconds" o "dias-horas"
   #SBATCH --time=01-00:00:00
   
   # NOMBRE DEL ARCHIVO DE SALIDA DE ERROR
   #SBATCH --error=prueba-%j.err
   # NOMBRE DEL ARCHIVO DE SALIDA ESTANDAR
   #SBATCH --output=prueba-%j.out
   
   # DEFINE EL DIRECTORIO DE TRABAJO
   # Esta linea debera ser cambiada por la ruta completa de la carpeta scratch en la home de cada usuario
   #SBATCH --workdir=/lustre/home/admin/dortizg/scratch
   
   # ingresar al directorio desde donde se lanzo el script
   cd ${SLURM_SUBMIT_DIR}
   
   # AQUI SE DEFINEN LOS COMANDOS NECESARIOS PARA LANZAR TU TRABAJO
   # EJEMPLO
   
   module load intel/composer_xe/2015.1.133
   module load intel/mpi/5.0.2
   
   scontrol show hostname $SLURM_NODELIST > hostlist.dat
   mpiexec.hydra -bootstrap slurm -f ./hostlist.dat myapp_parallel

Este script puede ser editado utilizando 'vim', así, podrá definir a traves de directivas propias de Slurm, tanto las caracteristicas de hardware como de ejecucion necesarias para efectuar su trabajo. Por ejemplo, si desea llevar a cabo procesamiento a través de GPU, deberá agregar la directiva:

    #SBATCH --gres=gpu:tesla:1

Asimismo, si requiere 2 GPU's:

    #SBATCH --gres=gpu:tesla:2

Una vez que ha sido enviado el trabajo al cluster, puede conocer su estado mediante el comando squeue; por ejemplo:

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

Como puede observarse, la salida del comando muestra un número de identificacion del trabajo(JOBID), la partición donde esta ejecutandose(cola de ejecucion), el usuario que envio el trabajo, el estado del trabajo(en este caso R(Run), 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(Run).

Para cancelar un trabajo en ejecución o en estado de espera, se utiliza el comando scancel, seguido de su identificador JOBID. Por ejemplo:

   $ scancel 4220

ES IMPORTANTE TENER EN CUENTA QUE EN CASO DE QUE OCURRIERA ALGUN FALLO EN EL NODO DONDE SE ESTE EJECUTANDO EL TRABAJO, EL SCHEDULER SLURM LO RE-ENCOLARA AUTOMÁTICAMENTE.

PARA EVITAR ESA SITUACIÓN, DEBERÁ AGREGAR A SU SCRIPT DE SLURM LA SIGUIENTE DIRECTIVA:

  #SBATCH --no-requeue

DE ESTA MANERA, EVITARÁ QUE SE SOBRE-ESCRIBAN LOS RESULTADOS YA OBTENIDOS ANTES DEL FALLO.

Ambiente de trabajo

Los usuarios y aplicaciones presentan diferentes requisitos para poder trabajar, además, en favor de tener multiples versiones de aplicaciones y de que no exista conflicto entre ellas, ABACUS I utiliza Environment Modules. Modules permite crear, modificar y agregar valores a las variables de ambiente y manipuar aliases.

Para conocer las aplicaciones instaladas en "Abacus-I" puede ejecutarse el comando:

   $ module avail

La salida de este comando, mostrará las aplicaciones disponibles dentro del cluster.

Para cargar una aplicación, librería o herramienta puede ejecutarse el comando:

   $ module load name/path/module

Asimismo, para quitar la aplicación del entorno debe utilizarse la opción 'unload' .

Ahora, para conocer que módulos se han cargado, es de utilidad el comando:

   $ module list

En caso de conflictos o mal formación en los módulos actualmente cargados, puede limpiarse el ambiente de trabajo, utilizando la opción 'purge'.

   module purge

Es importante conocer las modificaciones o ajustes que realiza un módulo, por lo que es conveniente hacer uso de la opción 'show' para leer la configuración del módulo.

   module show name/path/module

Respaldo de información

Para transferir información desde el cluster o hacia el cluster las herramientas deben basarse en el protocolo ssh, por lo tanto, para realizar el respaldo de su información almacenada en el clúster puede utilizarse alguna de las herramientas listadas a continuación:

   sftp
   rsync
   scp

Estos comandos cumplen la misma funcionalidad, las diferencias radican en su operación, sintaxis y prestaciones.

Para el correcto uso de los comandos, las rutas de origen y destino son imprescindibles, por lo que, para poder trabajar eficientemente puede utilizar la siguiente sintaxis:

Sintaxis Significado
. Carpeta actual, esto también se puede averiguar ejecutando: pwd, echo $PWD.
.. Carpeta padre, directorio donde se ubica un subdirectorio.
~ Directorio HOME, ubicación del directorio de trabajo por defecto del usuario.

'Comando rsync'

Sintaxis para descargar un archivo vía rsync.

   $ rsync -a usuario@ip:ruta_archivo/nombre_archivo ruta_destino

Ejemplo: Descargar en la ruta donde estamos trabajando actualmente el archivo quimica_experimental.txt, localizado en el directorio HOME del usuario remoto jfq:

   $ rsync -av usuario@148.247.115.11:quimica_experimental.txt .
   Esta línea es similar a:
   $ rsync -av usuario@148.247.115.11:~/quimica_experimental.txt $PWD/

Sintaxis para descargar una carpeta vía rsync.

   $ rsync -avz usuario@ip:nombre_carpeta carpeta_destino

Ejemplo: Descargar la carpeta Ejercicios:

   $ rsync -avz usuario@148.247.115.11:Ejercicios Ejercicios

Ejemplo: Descargar el contenido de la carpeta Ejercicios al directorio temporal del sistema local.

   $ rsync -avz usuario@148.247.115.11:Ejercicios/  /tmp/.

'Comando scp'

Sintaxis para descargar un archivo vía scp.

   $ scp usuario@ip:ruta_archivo/nombre_archivo carpeta_destino

Ejemplo:Descargar al directorio "Respaldos", ubicado en la HOME del usuario el archivo math.m, localizado en la carpeta MATH

   $ scp usuario@148.247.115.11:MATH/math.h ~/Respaldos

Sintaxis para descargar una carpeta vía scp.

   $ scp -r usuario@ip:nombre_carpeta carpeta_destino

Ejemplo:Descargar la carpeta "Scripts":

   $ scp -r usuario@148.247.115.11:Scripts ~/Respaldos

'Comando sftp.'

Sintaxis para descargar un archivo vía sftp.

   $ sftp usuario@ip:ruta_archivo/nombre_archivo ruta_local

Ejemplo:Descargar el archivo hidrogeno.slrm almacenado en el directorio "Trabajos":

   $ sftp usuario@148.247.115.11:Trabajos/hidrogeno.slrm .

Sintaxis para descargar una carpeta vía sftp.

   $ sftp -r usuario@ip:nombre_carpeta destino

Ejemplo:Descargar el directorio "Trabajos":

   $ sftp -r usuario@148.247.115.11:Trabajos/ .

El comando sftp además de descargar directamente información, dispone de una Console Line Interface (CLI) para realizar operaciones de transferencia y gestión de archivos. Para ingresar en la CLI se debe establecer una conexión, es decir:

   sftp user@IP

Al ingresar a la CLI puede ver los comandos disponibles ejecutando help. A continuación se listan algunos de los comandos mas utiles para efectuar tareas basicas con sftp:

Comando Función
ls Lista archivos y directorios.
cd Accede a directorios.
get Descarga un archivo.
get -r Descarga un carpeta y subcarpetas.
put Sube información.
quit Finaliza la conexión.


Ejemplo: Para listar y descargar un archivo:

   $ sftp usuario@148.247.115.11:
   sftp> ls
   sftp> Trabajos/ tareas_math.slrm quimica_experimental/
   sftp> get tareas_math.slrm

Ejemplo: Para listar y descargar un directorio:

   $ sftp usuario@148.247.115.11:
   sftp> ls
   sftp> Trabajos/ tareas_math.slrm quimica_experimental/
   sftp> get -r Trabajos/

Estas herramientas además de descargar información, también permiten subir o enviar información al cluster, a continuación se describen algunas formas de utilización para este propósito:

Herramienta Ejemplo
rsync rsync -avz file.input usuario@148.247.115.11:.
rsync -avz proyecto1 nwchem usuario@148.247.115.11:proyecto/.
sftp sftp file.input usuario@148.247.115.11:.
sftp -r proyecto1 nwchem usuario@148.247.115.11:proyecto/.
scp scp file.input usuario@148.247.115.11:.
scp -r proyecto1 nwchem usuario@148.247.115.11:proyecto/.

Finalmente, el considera la utilizacion de una de estas herramientas pueden considerar diferentes factores, por ejemplo, rsync puede continuar la transferencia aunque se presente una interrupción, además dispone de múltiples opciones para verificar la integridad de la información. Asimismo, debe considerar que esta herramienta es más veloz cuando se trata de transferir un solo archivo en lugar de efectuar la transferencia de múltiples archivos, por lo que antes de llevar a cabo la transferencia, se recomienda empaquetarla utilizando tar, sobre todo en caso de que utilice miles de archivos pequeños.

Respaldo en Windows

Para realizar el respaldo de tu información almacenada en el clúster Abacus-I necesitas de un programa como MobaXterm o Filezilla.

Para el caso en que selecciones Filezilla, instala el programa y al ejecutarlo, ingresa los campos de Servidor con la IP del nodo de acceso de Abacus-I, nombre de usuario, contraseña y en el campo de puerto el número 22, finalmente haga clic en el botón conexión rápida.

Políticas de uso

[ http://www.abacus.cinvestav.mx/politicas Políticas ]

Soporte

En caso de requerir soporte técnico, puede visitar pagina web de soporte: soporte o puede enviar un correo electrónico a soporte_abacus@math.cinvestav.edu.mx. Si requiere asistencia personalizada, puede agendar una reunión de trabajo con la coordinación de computo vía correo electrónico. El reporte de problemas debe presentar la descripción del problema, ruta del script o directorio de trabajo, aplicación, descripción para reproducir el problema y el usuario del cluster. Es importante mencionar que, únicamente se revisarán casos de usuarios registrados en el sitio web. En caso de necesitar ayuda con el registro, puede consultarse la Guia de Soporte.