Diferencia entre revisiones de «Guia de Usuario»

De WikiAbacus
Saltar a: navegación, buscar
 
(No se muestran 40 ediciones intermedias de 7 usuarios)
Línea 1: Línea 1:
Para ingresar al cluster Abacus-I, se cuenta con dos nodos de servicio disponibles descritos de acuerdo con la siguiente tabla:
+
 
 +
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:
  
 
{|align="center" border="1" cellpadding="10"  
 
{|align="center" border="1" cellpadding="10"  
Línea 6: Línea 7:
  
 
|-align="center"  
 
|-align="center"  
| service0||''s0.edomex.cinvestav.mx''||''148.247.115.86''
+
| service0||''s0.edomex.cinvestav.mx''||''148.247.115.10''
  
 
|-align="center"
 
|-align="center"
| service1||''s1.edomex.cinvestav.mx''||''148.247.115.87''
+
| service1||''s1.edomex.cinvestav.mx''||''148.247.115.11''
  
 
|}
 
|}
  
De forma general utilizando SecureShell (SSH), tanto en en clientes Linux como MAC, puede ejecutarse en la terminal el siguiente comando:
+
En Linux y MAC puede utilizarse un interprete de comandos o terminal mediante el comando ssh:
  
 
     ''$ ssh usuario@s0.edomex.cinvestav.mx''  
 
     ''$ ssh usuario@s0.edomex.cinvestav.mx''  
Línea 19: Línea 20:
 
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:
 
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''  
+
     ''$ ssh usuario@148.247.115.10''  
 +
 
 +
El acceso a traves de sistemas tipo Windows puede efectuarse utilizando aplicaciones tales como: [http://mobaxterm.mobatek.net/ MobaXterm], [http://www.putty.org/ PUTTY], [https://filezilla-project.org/ FileZilla], [https://winscp.net/eng/download.php 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'''''.
  
Finalemente, para el caso de clientes Windows es posible utilizar aplicaciones tales como [http://www.putty.org/ PUTTY].
+
''[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 ===
 
=== Administración de recursos ===
 
----
 
----
El scheduler utilizado en el cluster es [http://slurm.schedmd.com/ SLURM]. SLURM administra recursos tales como CPU, sockets, threads, RAM, tiempo, GPU's, etc.  
+
El scheduler o administrador de recursos utilizado en el clúster es [http://slurm.schedmd.com/ 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 ===
  
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'').
+
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 [https://slurm.schedmd.com/sbatch.html sbatch], [https://slurm.schedmd.com/srun.html srun], [https://slurm.schedmd.com/salloc.html salloc], [https://slurm.schedmd.com/squeue.html squeue]. Ejemplo:
  
''[root@service0 ~]# sinfo
+
    ''$ sbatch example.slurm''
''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]
 
  
 +
Dentro de su directorio de trabajo se encuentra un script de sbatch que le permitira ejecutar sus trabajos de manera correcta:
  
Asimismo, este scheduler utiliza comandos tales como [[SBATCH]], SRUN y SEXEC en favor de encolar trabajos en el cluster. Ejemplo:
+
    ''#!/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
  
    ''$ sbatch < example.slurm''
+
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:
  
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
+
    ''#SBATCH --gres=gpu:tesla:1''
  
    ''#!/bin/bash''
+
Asimismo, si requiere 2 GPU's:
    ''# 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''<br />
 
    ''## AQUI SE DEFINEN LOS COMANDOS NECESARIOS PARA LANZAR TU TRABAJO''<br />
 
    ''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:
+
    ''#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''
 
     ''$ squeue''
 
     ''JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)''
 
     ''JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)''
     ''4220 ice sbatch larivera R 1:40:06 1 r1i0n0''
+
     '' 4220 abacus sbatch larivera R 1:40:06 1 r1i0n0''
     ''4221 ice sbatch larivera R 1:40:06 1 r1i0n0''
+
     '' 4221 abacus sbatch larivera R 1:40:06 1 r1i0n0''
     ''4222 ice sbatch larivera R 1:40:06 1 r1i0n0''
+
     '' 4222 abacus sbatch larivera R 1:40:06 1 r1i0n0''
     ''4223 ice sbatch larivera R 1:40:06 1 r1i0n0''
+
     '' 4223 abacus sbatch larivera R 1:40:06 1 r1i0n0''
     ''4224 ice sbatch larivera R 1:40:06 1 r1i0n1''   
+
     '' 4224 abacus sbatch larivera R 1:40:06 1 r1i0n1''   
     ''4225 ice 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.
+
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 detener un trabajo en ejecución o en estado de espera, se utiliza el comando ''scancel'', seguido del JOBID; por ejemplo:
+
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''
 
     ''$ 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.
+
'''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''
  
En caso de conocer las aplicaciones instaladas en Abacus-I puede ejecutarse el comando:
+
'''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 ''[http://modules.sourceforge.net/ 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''
 
     ''$ 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:
+
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''
 
     ''$ module list''
  
Finalmente, para cargar una aplicación puede ejecutarse el comando:
+
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:
 +
 
 +
{|align="center" border="1" cellpadding="10"
 +
|-align="center"
 +
|style="background:Gainsboro; color:black"|'''Sintaxis'''||style="background:Gainsboro; color:black"| '''Significado'''
 +
|-align="center"
 +
| '''.''' || Carpeta actual, esto también se puede averiguar ejecutando: pwd, echo $PWD.
 +
|-align="center"
 +
| '''..''' || Carpeta padre, directorio donde se ubica un subdirectorio.
 +
|-align="center"
 +
| '''~''' || 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 '''[https://es.wikipedia.org/wiki/Interfaz_de_l%C3%ADnea_de_comandos 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:
 +
 
 +
{|align="center" border="1" cellpadding="10"
 +
|-align="center"
 +
|style="background:Gainsboro; color:black"|'''Comando'''||style="background:Gainsboro; color:black"| '''Función'''
 +
|-align="center"
 +
| '''ls''' || Lista archivos y directorios.
 +
|-align="center"
 +
| '''cd''' || Accede a directorios.
 +
|-align="center"
 +
| '''get''' || Descarga un archivo.
 +
|-align="center"
 +
| '''get -r''' || Descarga un carpeta y subcarpetas.
 +
|-align="center"
 +
| '''put''' || Sube información.
 +
|-align="center"
 +
| '''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:
 +
 
 +
{|align="center" border="1" cellpadding="10"
 +
|-align="center"
 +
|style="background:Gainsboro; color:black"|'''Herramienta'''||style="background:Gainsboro; color:black"| '''Ejemplo'''
 +
|-align="left"
 +
| '''rsync''' || rsync -avz file.input usuario@148.247.115.11:. <br /> rsync -avz proyecto1 nwchem usuario@148.247.115.11:proyecto/.
 +
|-align="left"
 +
| '''sftp''' || sftp file.input usuario@148.247.115.11:. <br /> sftp -r proyecto1 nwchem usuario@148.247.115.11:proyecto/.
 +
|-align="left"
 +
| '''scp''' || scp file.input usuario@148.247.115.11:. <br /> 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 ]
  
    ''$ module load NOMBRE DE LA APLICACION''
+
=== Soporte ===
  
En caso de nececitar soporte técnico, por favor visita la pagina de [http://support.edomex.cinvestav.mx/ 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]].
+
En caso de requerir soporte técnico, puede visitar pagina web de soporte: [http://support.edomex.cinvestav.mx/ 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]].

Revisión actual del 15:46 12 jul 2017

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[editar]


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[editar]


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[editar]

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[editar]

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[editar]

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[editar]

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

Soporte[editar]

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.