namespace:cluster_soroban

This is an old revision of the document!


Proyecto MACH

Acá encontraras la información necesaria para accesar remotamente al servidor Soroban que es parte del proyecto MACH-Satreps.

Información básica para acceder al servidor Soroban, comandos iniciales para cargar librerias/programas y primeros pasos para utilizar el gestor de recursos SLURM se presenta a continuación.

Acceso remoto a Soroban

  1. Solicitar una cuenta a andres.avila@ufrontera.cl
  2. Un cliente ssh instalado en tu computador personal
  3. Conocimientos básicos de Linux y su linea de comando (CLI)

Activación de MFA (opcional)

Multi Factor Authenticator (MFA) . Este método agrega un capa de seguridad extra a las cuentas de los investigadores, y es obligatorio para todos los usuarios.

Para activar y usar MFA es necesario seguir tres simples pasos descritos a continuación:


Instalar la apps de google authenticator en el smartphone personal (android , iOS) desde google play o apple store respectivamente.


IMPORTANTE: Puedes saltar las intrucciones 1 y 2, en caso de ya tengas una ssh-key, solamente debes agregarla al servidor Soroban como se indica en la instrucción 3, con tu ya existente ssh-key.

El uso de keypair es un proceso opcional,pero altamente recomendado tanto para usarios Windows, Linux y OSX.

Si no desean crear y gestionar claves públicas y privadas, pueden saltar ese paso,aun asi MFA funcionará solicitando el código de verificación único en el tiempo en cada inicio de session.

Al gestionar las conexiones SSH con claves públicas/privadas la máquina cliente (usuario) estará autorizado y no será necesario otro medio de autenticación, el ingreso será directo, al existir una relación de confianza gestionada por las claves previamente generadas como se muestra en los siguientes pasos, esto tambien aplica al resto de los sistemas operativos (Linux, OSX, FreeBSD, etc).

Aun asi, este proceso puede ser realizado en cualquier momento si asi se desea.


Es necesario crear ssh-key para Linux, OSX o Windows, según sea el caso. SSH-Key facilita el acceso al servidor Soroban o cualquier otro servidor eliminando el ingreso de la password en cada inicio de session ssh.

Para los usuarios Linux y OSX tienen disponible el siguiente método basado en CLI (Command Line Interface) cualquier otro método es completamente válido, pero este es un procedimiento universal disponible en todos las versiones de linux, freebsd, unix, y OSX, para esto debe abrir una terminal y ejecutar las siguientes 3 instrucciones:

Instrucción 1

ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519-soroban

El comando anterior crea una ssh-key con el algoritmo de cifrado ed25519 y de nombre id_ed252519-soroban, nombre del archivo que puede ser elegido por el usuario.

Instrucción 2

ssh-add .ssh/id_ed25519-soroban

Este comando agrega la ssh-key al llavero de claves para facilitar el uso y especialmente cuando existente en el sistema otras ssh-key para otros servidores.

Instrucción 3

ssh-copy-id -p 10170 -i ~/.ssh/id_ed25519-soroban youruser@paliaike.ingmat.ufro.cl:

Con este comando instala las ssh-key, su parte pública, en el servidor Soroban. Dónde “user” es el usuario en el servidor soroban.


El uso de keypair es un proceso opcional,pero altamente recomendado tanto para usarios Windows, Linux y OSX.

Si no desean crear y gestionar claves públicas y privadas, pueden saltar ese paso,aun asi MFA funcionará solicitando el código de verificación único en el tiempo en cada inicio de session.

Al gestionar las conexiones SSH con claves públicas/privadas la máquina cliente (usuario) estará autorizado y no será necesario otro medio de autenticación, el ingreso será directo, al existir una relación de confianza gestionada por las claves previamente generadas como se muestra en los siguientes pasos, esto tambien aplica al resto de los sistemas operativos (Linux, OSX, FreeBSD, etc).

Aun asi, este proceso puede ser realizado en cualquier momento si asi se desea.


IMAGEN 1: Generar keypair con el algoritmo ED25519 (recomendado)

IMAGEN 2: Guardar en un lugar seguro para usarse durante las sessiones SSH hacia el servidor Soroban


IMAGEN 3 : Copiar clave pública

Copiar la clave pública generada como muestra la imagen, esta puede ser leida desde los archivo creados y guardados como se muestra en la imagen 2 en cualquier momento, esta clavé publica es la que debe ser copiada en el servidor para la validación.

Una vez copiado el texto que representa la clave pública como muestra la imagen 3, debes usar tu cliente ssh para windows, este ejemplo usa putty.

Conectar al servidor Soroban y agregar al final la clave publica editando el siguiente archivo con el siguiente comando:

nano  ~/.ssh/authorized_keys

El editor de texto del ejemplo es nano, pueden utilizar el editor que más les agrade o simplifique el trabajo, lo importante es copiar y pegar al final del archivo la clave pública.

Si todo ha funcionando debes desconectarte del servidor Soroban y configurar putty para que utilice tu clave privada regenerada que será el complemento a la parte publica que acabas de registrar en el servidor. Es importante proteger la clave privada.


IMAGEN 4: Abierto el cliente putty para windows la imagen resalta en rojo la ubicacion donde debe registrarse la clave privada generada en la IMAGEN 1 y registrada en el servidor Soroban en la IMAGEN 3 bajo el punto 2 “Copiar la clave pública al servidor”.

Esto finaliza el proceso para generar, registrar, configurar y usar keypair para la autentificacion ssh en el servidor Soroban desde un cliente ssh en sistema operativo MS Windows 10, aplicable a cualquier otro servidor.

El proceso varia segun el cliente ssh y la interface de usuario correspondiente, pero en terminos generales son las mismas etapas para cualquiera


Después de completar el paso 1 y paso dos (opcional) debes ingresar al servidor Soroban con tu cliente ssh, independiente del sistema operativo que utilices, y ejecutar en tu cuenta del servidor sorobanel siguiente comando para configurar y activar google authenticator.

Instrucción 1

google-authenticator

Confirmar todas las preguntas con “Y” y guardar en un lugar seguro la secret key y los 5 códigos de emergencia justo abajo del código QR como se muestra en la IMAGEN 1. Las cuales permiten acceso al servidor en caso de tener problemas con el smartphone o cualquier, etc. Importante, cada código puede usarse una única vez.

El código QR debe ser escaneado desde la apps de google authenticator, y con eso queda activo MFA.

Para un proceso manual, en reemplazo del código QR dado que no puedes leer correctamente el QR puedes ingresar directamente en la apps el secret key ubicado justo debajo del código QR para vincular la cuenta en el servidor Soroban y la apps google authenticator. En tu apps verás algo asi “username username-soroban@soroban” que representa la vinculacion de tu cuenta en el servidor soroban con google authenticator.

Resumiendo, ver IMAGEN 1, para completar la activación de MFA tienes dos opciones: una automatica escaneando el código QR y otra manual ingresando directamente el secret key en tu apps del smartphone Android o IOS.


IMAGEN 1

IMAGEN 1: Google Authenticator para MFA


En situaciones especiales como perdida, daño, desinstalación o simplemente cambio de smartphone estan disponibles varias alternativas:

  1. Utilizar uno de los 5 códigos de emergencias descritos en el paso 3 para accesar cuando google authenticator no este disponible. Eliminar el archivo .google_authenticator en tu cuenta en Soroban ejecutando el siguiente comando: rm -rf .google_authenticator , y luego repetir el paso 3.- - Ingresar el actual secret key directamente en la nueva instalación de google authenticator en el smartphone para volver activar MFA.- - Contactar como último recurso al siguiente correo en cualquier horario para soporte : raphael.verdugo@ufrontera.cl

Utilización de module

El comando module es utilizado para cargar/descargar software necesario para trabajar; los usuarios pueden acceder de una forma sencilla a cualquier versión de una misma aplicación.

Los usuarios antes de iniciar cualquier cálculo deben cargar las librerias/aplicaciones que utilizarán, siguiendo las siguientes instrucciones:

En este ejemplo se muestra el uso del comando module para cargar el compilador gcc 8.3.0 y la libreria openmpi 3.1.5.

El ejemplo contiene los comandos necesarios para :

  1. Listar las aplicaciones disponibles- Cargar los programas/librerias deseados- Verificar que este disponible la libreria/aplicación que se ha cargado- Descargar las aplicaciones cuando no sean necesarias o se desee otra versión.


Utilización de SLURM

SLURM Workload Manager o formalmente (Simple Linux Utility for Resource Management) es un sistema de manejo de cluster y calendarización de tareas para grandes y pequeños cluster Linux, el cual es open source, tolerante a fallas y altamente escalable.

  1. Asigna acceso exclusivo y/o no exclusivo a recursos (nodos de cómputo) a usuarios por un tiempo determinado para que estos puedan ejecutar una tarea. - Provee un framework para iniciar, ejecutar y monitorear tareas (normalmente tareas paralelas) en un conjunto de nodos asignados. - Coordina la solicitud de recursos a través de una cola de tareas pendientes.

¿Cómo se encarga Slurm de manejar los jobs?

  • Asignando recurso de cómputo solicitados por el job * Ejecutando el job y * Reportando la salida de la ejecución al usuario.
  • Preparar un script * Enviar job para ejecución.
ComandoDescripción
squeuever información de jobs en cola
sinfover cola, partición e información del nodo
sbatchenviar un job a través de un script
srunenviar un job interactivo
scancelcancelar jobs en cola
scontrolcontrol e información detallada de jobs, colas y particiones.
sstatver a nivel de sistema la utilización de recursos (memoria, I/O, energía)
sacctver a nivel de sistema la utilización de recursos de jobs completados.

Este es un ejemplo de un script (ejemplo1.sh) con los elementos mínimos para ejecutar el programa namd a través de slurm:

#!/bin/bash                                  #Shell a usar durante la simulación para este caso es bash

#SBATCH -J NAMD-NOMBRE-SIMULACION            #Nombre de la simulacion reemplazar por nombre apropiado

#SBATCH --nodes=1      #Numero de nodos donde se ejecutara la simulacion, siempre es 1 para Soroban

#SBATCH --tasks-per-node=40     #40 es el numero de procesos a ejecutar en el servidor Soroban, reemplazar por la cantidad adecuada

#SBATCH --mem=100G              #Memoria reservada para esta simulacion en el servidor

#SBATCH --partition=intel      #Particion donde se enviaran los trabajos en este caso la particion general se llama intel.

module load namd/Git-2019-11-27_Linux-x86_64-multicore              #programas o modulos necesarios para ejecutar esta simulacion, reemplazar por las adecuadas en cada caso

Para enviar este script a slurm, crear un job, y comenzar el procesamiento se requiere lo siguiente:

chmod +x ejemplo1.sh
sbatch ejemplo1.sh

Este es un ejemplo de un script (ejemplo2.sh) con los elementos minimos para ejecutar el programa R-3.6.1 a través de slurm:

#!/bin/bash                                  #shell usada por el usuario, para este baso es BASH

#SBATCH -J R-NOMBRE-SIMULACION               #Reemplazar R-nombre-simulacion por el nombre correspondiente a la simulación

#SBATCH --nodes=1                            #Número de nodos a donde se enviara la simulacion, para soroban es 1.

#SBATCH --tasks-per-node=1                  #Numero de tares por nodo, en este caso es 1 porque es una tarea single-thread

#SBATCH --mem=100G                          #cantidad de memoria reservada para esta simulacion, 100G, reemplazar por valor adecuado

#SBATCH --partition=intel                   #Nombre de la particion slurm donde se enviara las simulaciones en este caso la particion general se llama "intel"

module load R/3.6.1                         "Modulos necesarios para ejecutar la simulacion, para este ejemplo  solamente es necesario 'module load R/3.6.1' este ejemplo es para single thread.
<font 16px/inherit;;inherit;;inherit></font>

Para enviar este script a slurm, crear un job, y comenzar el procesamiento se requiere lo siguiente:

chmod +x ejemplo2.sh
sbatch ejemplo2.sh

Este ejemplo enviar un trabajo de 1 hilo a slurm con los parametros del script, y con limitaciones establecidas al usuario y la partición


Este ejemplo muestra como enviar varios tareas utilizando la propiedad de array-jobs en slurm, para más detalles consultar documentación oficial de slurm para ver todas las posibilidades ofrecidas en Array-Jobs.

#!/bin/bash

#SBATCH -J R-NOMBRE-SIMULACION    #Nombre de la simulacion reemplazar segun el caso
#SBATCH -a 1-11%3   #
#SBATCH --nodes=1                 #Número de nodos donde se enviara el trabajo, siempe es 1 para Soroban
#SBATCH --tasks-per-node=1        #Número de hilos a ejecutar simultaneamente
#SBATCH --mem=100G                #Memoria reservada para la simulacion
#SBATCH --partition=intel         #Particion general donde se enviara la simulación, llamada 'intel'

module load R/3.6.1               #Modulo necesario cargado previamente, necesario para la simulación

cmds=(                            #comandos a ejecutar en array
'sleep 10;echo 10'
'sleep 20;echo 20'
'sleep 30;echo 30'
'sleep 40;echo 40'
'sleep 50;echo 50'
)
eval ${cmds[$SLURM_ARRAY_TASK_ID - 1]}          #desplegar informacion de los ID de cada elemento de array-job enviado
chmod +x ejemplo3.sh
sbatch ejemplo3.sh


  • namespace/cluster_soroban.1604619305.txt.bz2
  • Last modified: 2020/11/05 19:35
  • by admin