Guia de Usuario
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.
Contenido
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
En favor de conocer el estado del trabajo enviado al cluster se utiliza 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
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 Guía de Soporte.