Guia de Usuario
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.
Contenido
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.