Guia de Usuario

De WikiAbacus
Saltar a: navegación, buscar

Para ingresar al cluster Abacus-I, se cuenta con dos nodos de acceso, el acceso es mediante el protocolo de comunicaciones SecureShell(SSH). Los nodos de acceso 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

El acceso utilizando ssh, en Linux y MAC se realiza ejecutando en la terminal 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 

Finalemente, el acceso desde sistemas Windows es posible utilizando aplicaciones tales como: MobaXterm, PUTTY, FileZilla, WinSCP, entre otros.

Primer ingreso


Al ingresar por primera vez a su cuenta en el Cluster Abacus-I se le pedira que cambie la contraseña. En pirmer lugar deberá ingresar la contraseña actual (Current), posteriormente ingresar una contraseña nueva (New password), confirmada esta (Retype new password), la conexion se cerrara y 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 utilizado en el cluster es SLURM. SLURM administra recursos tales como CPU, sockets, threads, RAM, tiempo, 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]

Gestión de tareas de usuario

Asimismo, para interactuar con el administrador de recursos hay que utilizar comandos tales como sbatch, srun, salloc, squeue para gestionar los trabajos en el cluster. Ejemplo:

   $ sbatch example.slurm

Ademas, es importante mencionar que al hacer uso de su cuenta en el cluster y utilizar el editor de textos 'vim', un script de slurm es presentado al usuario, este script contiene la siguiente informacion:

   #!/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 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

Si desea utilizar procesamiento a través de GPU, deberá agregar a su script de slurm 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 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 terminar un trabajo en ejecución o en estado de espera, se utiliza el comando scancel, seguido de su identificador JOBID. Por ejemplo:

   $ scancel 4220

SI EXITIERA ALGUN PROBLEMA EN LA CONEXION DEL NODO DONDE SE ENCOLO EL TRABAJO, EL SCHEDULER "SLURM" LO REENCOLARA AUTOMATICAMENTE EN CASO DE HABERSE PERDIDO, PROVOCANDO QUE LOS DATOS YA OBTENIDOS SE SOBRESCRIBAN.

PARA EVITAR ESA SITUACION DEBERÁ AGREGAR A SU SCRIPT DE SLURM LA SIGUIENTE DIRECTIVA:

   --no-requeue

DE ESTA MANERA EVITARÁ PERDIDAS Y PODRA RESPALDAR LA INFORMACION EN CASO DE SER NECESARIO.

Ambiente de trabajo

Los usuarios y aplicaciones presentan diferentes requisitos para poder trabajar, a demás, en favor de tener multiples versiones de aplicaciones y 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. A continuación 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 este comando, mostrara las aplicaciones disponibles dentro del cluster.

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

   $ module load name/path/module

Con la opción 'unload' se puede hacer el proceso inverso a la opción 'load'.

Asimismo, en favor de conocer que módulos se han cargado, es de utilidad el comando:

   $ module list

Para limpiar nuestro ambiente de trabajo, en caso de conflictos o mal formación en los módulos actualmente cargados, la opción 'purge' limpiara el ambiente de trabajo.

   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 realizar el respaldo de su información almacenada en el clúster ABACUS, puede utilizar 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 transferir información desde el cluster o hacia el cluster las herramientas deben basarse en el protocolo ssh. Entre las opciones con que debe alimentarse los comandos, las rutas de origen y destino son imprescindibles. Por lo que, para poder trabajar eficientemente utilice 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 para descargar el archivo quimica_experimental.txt que se encuentra guardado en el directorio HOME del usuario remoto jfq en la ruta local donde estamos trabajando actualmente:

   $ 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 para descargar la carpeta Ejercicios.

   $ rsync -avz usuario@148.247.115.11:Ejercicios Ejercicios

El siguiente ejemplo descarga 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 para descargar el archivo math.m ubicado en la carpeta MATH al directorio llamado Respaldos dentro del HOME del usuario local.

   $ 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 para 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 para descargar el archivo hidrogeno.slrm guardado en la carpeta llamada 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 para descargar la carpeta llamada 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 a la CLI se debe establecer una conexión.

   sftp user@IP

Al ingresar a la CLI puede ver los comandos disponibles ejecutando help o a continuación se listan los comandos que consideramos le pueden servir.

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 puede subir o enviar información al cluster, a continuación se resume algunas formas de utilizarlos 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/.

Para seleccionar una herramienta considera que rsync puede continuar la transferencia aunque se presente una interrupción, además de disponer de múltiples opciones para verificar la integridad de la información. Algo que también debes tener en cuenta, es que, es más rápido transferir un solo archivo que múltiples archivos. Por lo que te recomendamos empaquetar tu información antes de transferirla, sobre todo para el caso en el que manejes miles de archivos pequeños. La herramienta para este propósito es tar.

Respaldo en Windows Para realizar el respaldo de tu información almacenada en el clúster Yoltla 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 Yoltla, 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 necesitar soporte técnico, visita la pagina de soporte de Abacus-I o envía un correo electrónico a soporte_abacus@math.cinvestav.edu.mx. Si requiere asistencia personalizada agende una reunión de trabajo con el personal de aplicaciones 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 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.