Diferencia entre revisiones de «Guia de Usuario»

De WikiAbacus
Saltar a: navegación, buscar
 
(No se muestran 18 ediciones intermedias de 4 usuarios)
Línea 1: Línea 1:
  
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:
+
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 14: Línea 14:
 
|}
 
|}
  
El acceso utilizando ssh, en Linux y MAC se realiza ejecutando en la terminal el comando ssh:
+
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 22: Línea 22:
 
     ''$ ssh usuario@148.247.115.10''  
 
     ''$ ssh usuario@148.247.115.10''  
  
Finalemente, el acceso desde sistemas Windows es posible 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.
+
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 ===
 
=== 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'''''.  
+
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
 
  ''[daniel@laptop-daniel ~]$ ssh dortizg@148.247.115.10
Línea 64: Línea 64:
 
=== 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'''.
+
"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  
 
  ''[usuario@service0 ~]# sinfo  
Línea 73: Línea 73:
 
  ''                                        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],
 
  ''                                        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]
 
  ''                                        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 ===
 
=== Gestión de tareas de usuario ===
  
Asimismo, para interactuar con el administrador de recursos hay que utilizar 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] para gestionar los trabajos en el cluster. Ejemplo:
+
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:
  
 
     ''$ sbatch example.slurm''
 
     ''$ 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:
+
Dentro de su directorio de trabajo se encuentra un script de sbatch que le permitira ejecutar sus trabajos de manera correcta:
 +
 
 
     ''#!/bin/bash
 
     ''#!/bin/bash
 
     ''# ############################################################################ #
 
     ''# ############################################################################ #
Línea 98: Línea 101:
 
     ''# DEFINE LA PARTICION DONDE CORRERAN LOS TRABAJOS "test" PARA PRUEBAS Y "abacus" PARA OTROS(CPU Y/O GPU)
 
     ''# DEFINE LA PARTICION DONDE CORRERAN LOS TRABAJOS "test" PARA PRUEBAS Y "abacus" PARA OTROS(CPU Y/O GPU)
 
     ''#SBATCH --partition=abacus
 
     ''#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"
 
     ''# DEFINE EL TIEMPO DE EJECUCION INDISPENSABLE DEFINIR "hours:minutes:seconds" o "dias-horas"
Línea 123: Línea 130:
 
     ''mpiexec.hydra -bootstrap slurm -f ./hostlist.dat myapp_parallel
 
     ''mpiexec.hydra -bootstrap slurm -f ./hostlist.dat myapp_parallel
  
En favor de conocer el estado del trabajo enviado al cluster se utiliza el comando ''squeue''; por ejemplo:
+
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''
 
     ''$ squeue''
Línea 134: Línea 149:
 
     '' 4225 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.
+
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 terminar un trabajo en ejecución o en estado de espera, se utiliza el comando ''scancel'', seguido de su identificador ''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''
 +
 +
'''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 ===
 
=== 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 ''[http://modules.sourceforge.net/ 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.  
+
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.
  
En caso de conocer las aplicaciones instaladas en Abacus-I puede ejecutarse el comando:
+
Para conocer las aplicaciones instaladas en "Abacus-I" puede ejecutarse el comando:
  
 
     ''$ module avail''
 
     ''$ module avail''
  
La salida de este comando, mostrara las '''''aplicaciones disponibles''''' dentro del cluster.  
+
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:
 
Para cargar una aplicación, librería o herramienta puede ejecutarse el comando:
Línea 154: Línea 177:
 
     ''$ module load name/path/module''
 
     ''$ module load name/path/module''
  
Con la opción 'unload' se puede hacer el proceso inverso a la opción 'load'.
+
Asimismo, para quitar la aplicación del entorno debe utilizarse la opción 'unload' .
  
Asimismo, en favor de conocer que módulos se han cargado, es de utilidad el comando:
+
Ahora, para conocer que módulos se han cargado, es de utilidad el comando:
  
 
     ''$ module list''
 
     ''$ 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.
+
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''
 
     ''module purge''
Línea 170: Línea 193:
 
=== Respaldo de información ===
 
=== 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:
+
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
 
     ''sftp
 
     ''rsync
 
     ''rsync
 
     ''scp
 
     ''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.
+
 
 +
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" border="1" cellpadding="10"  
Línea 187: Línea 214:
 
|}
 
|}
  
'Comando rsync'
+
''''Comando rsync''''
  
 
Sintaxis para descargar un archivo vía rsync.
 
Sintaxis para descargar un archivo vía rsync.
Línea 193: Línea 220:
 
     ''$ rsync -a usuario@ip:ruta_archivo/nombre_archivo ruta_destino
 
     ''$ 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:
+
'''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 .
 
     ''$ rsync -av usuario@148.247.115.11:quimica_experimental.txt .
  
Esta línea es similar a:
+
    Esta línea es similar a:
  
 
     ''$ rsync -av usuario@148.247.115.11:~/quimica_experimental.txt $PWD/
 
     ''$ rsync -av usuario@148.247.115.11:~/quimica_experimental.txt $PWD/
Línea 205: Línea 232:
 
     ''$ rsync -avz usuario@ip:nombre_carpeta carpeta_destino
 
     ''$ rsync -avz usuario@ip:nombre_carpeta carpeta_destino
  
Ejemplo para descargar la carpeta Ejercicios.
+
'''Ejemplo:''' Descargar la carpeta Ejercicios:
  
 
     ''$ rsync -avz usuario@148.247.115.11:Ejercicios 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.
+
'''Ejemplo:''' Descargar el contenido de la carpeta Ejercicios al directorio temporal del sistema local.
  
 
     ''$ rsync -avz usuario@148.247.115.11:Ejercicios/  /tmp/.
 
     ''$ rsync -avz usuario@148.247.115.11:Ejercicios/  /tmp/.
  
'Comando scp'
+
''''Comando scp''''
  
 
Sintaxis para descargar un archivo vía scp.
 
Sintaxis para descargar un archivo vía scp.
 +
 
     ''$ scp usuario@ip:ruta_archivo/nombre_archivo carpeta_destino
 
     ''$ 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.
+
'''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
 
     ''$ scp usuario@148.247.115.11:MATH/math.h ~/Respaldos
  
 
Sintaxis para descargar una carpeta vía scp.
 
Sintaxis para descargar una carpeta vía scp.
 +
 
     ''$ scp -r usuario@ip:nombre_carpeta carpeta_destino
 
     ''$ scp -r usuario@ip:nombre_carpeta carpeta_destino
  
Ejemplo para descargar la carpeta Scripts.
+
'''Ejemplo:'''Descargar la carpeta "Scripts":
 +
 
 
     ''$ scp -r usuario@148.247.115.11:Scripts ~/Respaldos
 
     ''$ scp -r usuario@148.247.115.11:Scripts ~/Respaldos
  
'Comando sftp.'
+
''''Comando sftp.''''
  
 
Sintaxis para descargar un archivo vía sftp.
 
Sintaxis para descargar un archivo vía sftp.
 +
 
     ''$ sftp usuario@ip:ruta_archivo/nombre_archivo ruta_local
 
     ''$ sftp usuario@ip:ruta_archivo/nombre_archivo ruta_local
  
Ejemplo para descargar el archivo hidrogeno.slrm guardado en la carpeta llamada Trabajos:
+
'''Ejemplo:'''Descargar el archivo hidrogeno.slrm almacenado en el directorio "Trabajos":
 +
 
 
     ''$ sftp usuario@148.247.115.11:Trabajos/hidrogeno.slrm .
 
     ''$ sftp usuario@148.247.115.11:Trabajos/hidrogeno.slrm .
  
 
Sintaxis para descargar una carpeta vía sftp.
 
Sintaxis para descargar una carpeta vía sftp.
 +
 
     ''$ sftp -r usuario@ip:nombre_carpeta destino
 
     ''$ sftp -r usuario@ip:nombre_carpeta destino
  
Ejemplo para descargar la carpeta llamada Trabajos:
+
'''Ejemplo:'''Descargar el directorio "Trabajos":
 +
 
 
     ''$ sftp -r usuario@148.247.115.11: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.
+
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
 
     ''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.
+
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" border="1" cellpadding="10"  
Línea 266: Línea 300:
  
  
Ejemplo para listar y descargar un archivo:
+
'''Ejemplo:''' Para listar y descargar un archivo:
 +
 
 
     ''$ sftp usuario@148.247.115.11:
 
     ''$ sftp usuario@148.247.115.11:
 
     ''sftp> ls
 
     ''sftp> ls
Línea 272: Línea 307:
 
     ''sftp> get tareas_math.slrm
 
     ''sftp> get tareas_math.slrm
  
Ejemplo para listar y descargar un directorio:
+
'''Ejemplo:''' Para listar y descargar un directorio:
 +
 
 
     ''$ sftp usuario@148.247.115.11:
 
     ''$ sftp usuario@148.247.115.11:
 
     ''sftp> ls
 
     ''sftp> ls
Línea 278: Línea 314:
 
     ''sftp> get -r Trabajos/
 
     ''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.
+
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" border="1" cellpadding="10"  
Línea 291: Línea 327:
 
|}
 
|}
  
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.
+
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'''
  
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 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.
+
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 ===
 
=== Políticas de uso ===
Línea 304: Línea 341:
 
=== Soporte ===
 
=== Soporte ===
  
En caso de necesitar soporte técnico, visita la pagina de [http://support.edomex.cinvestav.mx/ 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]].
+
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.