Contraseña.
La primera actividad a realizar cuando se conecta un nuevo usuario al cluster yoltla,
es asignar una contraseña a su cuenta.
Acceso al sistema.
El acceso a los recursos de cómputo del nodo UAM del LANCAD es por medio de 2
servidores que en lo posterior llamaremos nodos de acceso.
El nombre de estos 2 nodos de acceso así como su dirección IP son los siguientes:
yoltla0 148.206.50.61
yoltla1 148.206.50.62
En estos 2 nodos se podrá editar y compilar aplicaciones, pero para ejecutar estas
aplicaciones es necesario crear un archivo de guión o “script” y formarlo en una de
las diferentes colas o particiones para que sea despachado en los nodos de
ejecución.
SSH GNU/Linux OS X
Para conectarse a los nodos de acceso del nodo UAM del LANCAD se requiere de un
shell seguro (secure shell / SSH), en el caso del sistema operativo GNU/Linux o Mac
OS es suficiente con abrir una terminal y ejecutar el comando
SSH Windows
Para conectarse a los nodos de acceso del nodo UAM del LANCAD se requiere de un
shell seguro (secure shell / SSH), para el sistema operativo Windows existen varias
alternativas comerciales y libres de clientes SSH.
Los siguientes 2 clientes son gratuitos y sabemos funcionan bien para conexiones
hacia los nodos de acceso desde sistema operativo Windows
PuTTY
Página del proyecto PuTTY_Portable
Enlace de descarga PuTTYPortable_0.68_English.paf.exe
SmarTTY
Página del proyecto SmarTTY
Enlace de descarga PortableSmartty-2.2.zip
Recursos de cómputo.
El acceso a los nodos de cómputo o ejecución que proporciona el nodo UAM del
LANCAD es por medio del administrador de recursos SLURM.
La versión instalada en el cluster es 16.05.4, la documentación puede consultarse
en https://slurm.schedmd.com/documentation.html
Si no se establece nombre al
trabajo, el nombre por default
será el nombre del script.
#SBATCH -–error=error-%j.err OPCIONAL
• minutos
◦ #SBATCH --time=35
• minutos:segundos
◦ #SBATCH --time=35:20
• horas:minutos:segundos
◦ #SBATCH --time=1:35:20
• días-horas
◦ #SBATCH –-time=1-0
◦ #SBATCH -–time=0-1
• días-horas:minutos
◦ #SBATCH --time=4-1:35
• días-horas:minutos:segundos
◦ #SBATCH --time=4-1:35:20
#SBATCH --ntasks-per-node=20 OBLIGATORIO
#SBATCH --tasks-per-node=20
Estas dos directivas son
equivalentes y establecen la
cantidad tareas a ejecutar en los
nodos asignados. Cada una de las
tareas será despachada por un core
diferente.
Las variables de entorno que permiten el acceso a los compiladores así como al
software ya compilado son modificadas dinámicamente por medio de la
herramienta environment modules (http://modules.sourceforge.net/). La
configuración de esta herramienta se basa en archivos de módulos (modulefiles) los
NODO UAM LANCAD
LABORATORIO DE SUPERCÓMPUTO Y VISUALIZACIÓN EN PARALELO
Av. San Rafael Atlixco No. 186, Col. Vicentina, C.P. 09340, Tel. (55)5804-4987, Iztapalapa, Ciudad de México.
caules establecen o alteran variables del shell tales como PATH, LD_LIBRARY_PATH,
etc.
module avail
Por ejemplo para hacer uso de los compiladores y herramientas de intel 2016
ejecutar el comando:
SLURM da el nombre de trabajo “job” a los recursos de cómputo (nodos con sus
correspondientes cores) asignados a un usuario por un determinado periodo de
tiempo.
#
### Nombre del trabajo ###
#SBATCH --job-name=programax20
#
### El trabajo requiere de 1 nodo, donde se ejecutarán 20 tareas ###
### Por default por cada nodo solicitado SLURM asume que se ###
### ejecutará una tarea. ###
### LA DIRECTIVA #SBATCH –-nodes=1 NO RESERVA NODOS COMPLETOS ###
### ES NECESARIO INDICAR EXPLÍCITAMENTE LA CANTIDAD DE TAREAS ###
### QUE SE EJECUTARÁN EN LOS NODOS SOLICITADOS ###
#SBATCH --nodes=1
#SBATCH –-ntasks-per-node=20
#
### Se solicitan 30 minutos para este trabajo ###
#SBATCH --time=30:00
#
### A continuación todos los comandos necesarios para ejecutar las ###
### 20 tareas ###
wait
#
### Nombre del trabajo ###
#SBATCH --job-name=programa_OMP
#
### La salida estándar “STDOUT” de la tarea será redirigida al ###
### archivo programa_OMP.o%j. %j será remplazado por el ###
### identificador asignado al trabajo. ###
#SBATCH -–output=programa_OMP.o%j
#
### El trabajo requiere de 1 nodo, donde se ejecutará 1 tarea. ###
### Por cada nodo solicitado SLURM asume que se ejecutará una ##
### tarea, por lo que la directiva #SBATCH –-ntasks-per-node=1 ##
### en este caso puede omitirse.
#SBATCH --nodes=1
#SBATCH –-ntasks-per-node=1
#
### Indicamos a SLURM que esta tarea ocupara 20 cores. ###
### NO ESTABLECER ESTA OPCIÓN TENDRÁ COMO RESULTADO QUE LOS HILOS ##
### CREADOS POR EL PROGRAMA SEAN RESTRINGIDOS A UN SOLO CORE EN ##
### EN EL NODO DE CÓMPUTO, AFECTANDO CON ESTO DRÁSTICAMENTE EL ###
### RENDIMIENTO ###
#SBATCH --cpus-per-task=20
#
### Se solicitan 30 minutos para este trabajo ###
#SBATCH --time=30:00
#
### A continuación todos los comandos necesarios para ejecutar la ###
### tarea ###
# Consultamos los cores que podemos utilizar así como el limite para
# el segmento de memoria de pila o “stack size”
grep Cpus_allowed_list: /proc/self/status
grep "Max stack size" /proc/self/limits
ulimit -s
#
### Nombre del trabajo ###
#SBATCH --job-name=programa_MPI
#
### La salida estándar “STDOUT” de la tarea será redirigida al ###
### archivo programa_MPI.o%j. %j será remplazado por el ###
### identificador asignado al trabajo. ###
#SBATCH -–output=programa_MPI.o%j
#
### El error estándar “STDERR” de la tarea será redirigida al ###
### archivo programa_MPI.e%j. %j será remplazado por el ###
### identificador asignado al trabajo. ###
#SBATCH -–error=programa_MPI.e%j
#
### El trabajo requiere de 2 nodos, cada uno ejecutará 32 tareas. ###
#SBATCH --nodes=2
#SBATCH –-ntasks-per-node=32
#
### Se solicitan 2 días para este trabajo ###
#SBATCH –time=2-0
#
### A continuación todos los comandos necesarios para ejecutar la ###
### tarea ###
#
### Nombre del trabajo ###
#SBATCH --job-name=programa_GPU
#
### La salida estándar “STDOUT” de la tarea será redirigida al ###
### archivo programa_GPU.o%j. %j se remplazará por el ###
### identificador asignado al trabajo. ###
#SBATCH -–output=programa_GPU.o%j
#
### El error estándar “STDERR” de la tarea será redirigida al ###
### archivo programa_GPU.e%j. %j se remplazará por el ###
### identificador asignado al trabajo. ###
#SBATCH -–error=programa_GPU.e%j
#
### El trabajo requiere de 1 nodo, dependiendo de la aplicación ###
### es la cantidad de tareas a ejecutar. En este caso asumiremos ###
### que 2 tareas cada una de ellas trabajando en una tarjeta GPU ###
#SBATCH --nodes=1
NODO UAM LANCAD
LABORATORIO DE SUPERCÓMPUTO Y VISUALIZACIÓN EN PARALELO
Av. San Rafael Atlixco No. 186, Col. Vicentina, C.P. 09340, Tel. (55)5804-4987, Iztapalapa, Ciudad de México.
#SBATCH –-ntasks-per-node=2
#
### El cluster yoltla cuenta con nodos GPU:
### 16 con 2 tarjetas. ###
### 4 con 4 tarjetas. ###
### 2 con 8 tarjetas. ###
### Para solicitar los recursos cómputo, que en este caso son ###
### las tarjetas GPU, debemos indicar a slurm la cantidad de ###
### tarjetas que requerimos para ejecutar nuestro programa. ###
### –-gres=gpu:2
### –-gres=gpu:4
### –-gres=gpu:8
###
### Con base en esta información se nos asignará el nodo con el ###
### número de tarjetas solicitas. En este ejemplo solicitaremos ###
### un nodo con 2 tarjetas.
#SBATCH –-gres=gpu:2
#
### Se solicitan 2 días para este trabajo ###
#SBATCH –time=2-0
#
### A continuación todos los comandos necesarios para ejecutar la ###
### tarea ###
# Consultamos los cores que podemos utilizar así como el limite para
# el segmento de memoria de pila o “stack size”
grep Cpus_allowed_list: /proc/self/status
grep "Max stack size" /proc/self/limits
ulimit -s
echo $CUDA_VISIBLE_DEVICES
programa-GPU input
sbatch trabajo.sh
Para enviar un trabajo a la partición indicada en el script utilizar el comando sbatch,
al enviar un trabajo este será identificado por un identificador numérico único “JOB
ID”. Este identificador nos servirá posteriormente para consultar el estado del
trabajo o cancelarlo.
scancel JOB-ID
Un trabajo puede ser cancelado si se encuentra en ejecución o en espera de
recursos (trabajo en cola). Solo el usuario propietario del trabajo puede cancelarlo.
Documentación adicional
SLURM es el proyecto de software para la administración de trabajos en sistema de
cómputo de alto rendimiento más popular debido a su facilidad de uso así como a
su extensa documentación.
quickstart https://slurm.schedmd.com/quickstart.html
sbtach https://slurm.schedmd.com/sbatch.html
scancel https://slurm.schedmd.com/scancel.html
squeue https://slurm.schedmd.com/squeue.html
sinfo https://slurm.schedmd.com/sinfo.html
salloc https://slurm.schedmd.com/salloc.html