• Acceso al cluster

  • Ejemplos de scripts

  • Encolar trabajos

  • Monitorización del trabajo

Acceso al cluster

Si utiliza Unix o Linux

Ingresar a una consola o terminal
Ejecutar el siguiente comando: ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
En este momento se va a pedir la frase con la que generó su clave la primera vez.

Si utiliza Windows

Debe conectarse a través de un cliente ssh (putty o winscp).
Es necesario cargar la calve privada, ésto se hace de la siguiente forma:
* ingresar a Putty Configuration
* seleccionar en Category, Connection - SSH - Auth
* indicar en el campo Private Key file for authentication la ruta donde se encuentra el archivo que contiene la clave privada. 

ssh

Ejemplo Trabajos series

El siguiente es un ejemplo con algunas opciones SGE.


#!/bin/bash
#
# Script para correr trabajo serial
#

# Opciones SGE

#$ -l h_rt=168:00:00 # Setea 168 horas de wall clock time
#$ -cwd # Cambia al directorio actual
#$ -V # Exporta las variables de entorno
#$ -N nombre_job # El nombre del job

# Comando para correr el programa, tal cual lo llamaríamos desde la línea de comandos

programa

Ejemplo de script para corrida paralela con MPI:


#$ -N nombre
#$ -pe impi 32
#$ -cwd
#$ -l h_rt=10:00:00
# MPIR_HOME, importo variables de entorno del SGE
#$ -V
#$ -v MPIR_HOME=/opt/intel/impi/3.1/bin64,SGE_QMASTER_PORT
PATH="/opt/intel/impi/3.1/bin64:$PATH" ; export path
$MPIR_HOME/mpirun -machinefile $TMPDIR/machines -l -genv I_MPI_DEVICE sock -n $NSLOTS ejecutable

Ejemplo de script para corrida paralela con OpenMp:


#$ -N nombre
#
#$ -pe openmp 8 #$ -l h_rt=10:00:00 #$ -cwd # MPIR_HOME, importo variables de entorno del SGE
#$ -V ##Seteo la cantidad de threads que se va a usar
#$ -v OMP_NUM_THREADS=1 ### Setea la cantidad de threads a 1 # Comandos del usuario

Array de jobs

Los arreglos de job proveen un mecanismo para enviar un conjunto de jobs relacionados. A cada job se le asigna un ID de tarea que puede ser usado dentro del sript para controlar el comportamiento del job. Los jobs son enviados como un bloque y controlados por un ID de job. Esta forma de enviar jobs es util cuando se intenta enviar a correr un mismo programa muchas veces con diferentes datos de entrada. En vez de enviar cientos de jobs individuales, se puede enviar un único job que ejecute una tarea para cada input distinto. Como ejemplo, consideremos la siguiente tarea. Tenemos 50 archivos con datos de entrada (datos.1 a datos.50) para un programa (serie), el script quedaría:


#!/bin/bash
#
# Script para correr array de jobs seriales
#
# Opciones SGE
#$ -l h_rt=10:00:00 # Setea 10 horas de wall clock time
#$ -cwd # Cambia al directorio actual
#$ -V # Exporta las variables de entorno
#$ -t 1-50 # Setea el array de indices

# corre el programa

$HOME/programa < datos.$SGE_TASK_ID > output.$SGE_TASK_ID

El SGE utilizará tantos slots como haya disponibles para correr tantas tareas en forma concurrente como sea posible.
También se pueden enviar arrays de jobs paralelos combinando las opciones t y pe.

Encolar trabajos

El script SGE más básico consiste en un conjunto de comandos, por ejemplo:


#!/bin/bash
#
hostname -f
date

Si nombramos al script con el nombre script1, luego lo enviamos a correr con el siguiente comando:

qsub script1

El script anterior no seteaba ninguna opción del SGE. Si se necesita incluir opciones, estas deben agregarse en líneas que comiencen con #$

Es OBLIGATORIO el seteo de la variable de TIEMPO DE CÁLCULO: #$ -l h_rt=HH:MM:SS
De no indicarla, el trabajo quedará en espera y no empezará a correr.

Los parámetros más usados son:

  • -cwd Cambiar al directorio desde donde se a envíado el script
  • -N name name será el nombre del job
  • -l recurso Solicita el recurso especificado. El ejemplo más común es requirimiento de tiempo, por ejemplo -l h_rt=05:00:00 solicitará 5 horas de wall clock.
  • -j y Stdout y stderr en el mismo archivo de salida
  • -V Importa las variables entorno actuales dentro del script
  • -S /bin/bash Usar el shell bash
  • -pe entorno_paralelo slots Solicita slot slot en el entorno paralelo entorno_paralelo. Por ejemplo -pe mpich 4, solicita 4 slot en el entorno mpich
  • -o archivo Archivo de salida
  • -e archivo Archivo de salida en caso de error
  • -t min-max Corre un arreglo de jobs desde el indice min al indice max

Monitorización del trabajo:

  • qstat: Muestra el estado de todos los trabajos sin tener en cuenta el estado de las colas.
  • qstat -u nombre_usuario: Monitorización del estado de los trabajos de un usuario.
  • qstat -f: Lista toda la información sobre trabajos y colas para todos los usuarios.
  • qstat -F: Muestra el estado de todos los parámetros de todas las colas, por ejemplo, la carga, uso de memoria, swap, etc.
  • qstat -j id_job : Da la razón de por qué un trabajo pendiente no ha sido planificado.