taller práctico hackathon: acceso a finis terrae ii · utilización del sistema de colas. taller...
Post on 27-Sep-2018
269 Views
Preview:
TRANSCRIPT
Mayo 2017
Acceso y portal de
usuarios. VPN
Taller práctico Hackathon:
Acceso a Finis Terrae II
Conexión por SSH
En Linux/Mac: ssh your-username@ft2.cesga.es
En Windows: Abrir una sesión con Putty o MobaXterm a ft2.cesga.es
MobaXterm: terminal SSH, servidor X y cliente SCP/FTP
El acceso a nuestros servidores de cálculo está restringido a los centros autorizados
(universidades gallegas, centros del CSIC, centros con convenios especiales, ...).
Fuera de ahí se puede usar:
VPN (https://portalusuarios.cesga.es/info/conexion)
Usuario: <login>@cesga.es
Terminal SSH (https://portalusuarios.cesga.es/tools/web_ssh)
Escritorio Remoto (https://portalusuarios.cesga.es/tools/remote_vis)
Acceso al FT
Clientes gráficos para la transferencia de datos:
Windows: WinSCP, MobaXterm
Mac: Fugu
Windows/Mac/Linux: Filezilla
Línea de comandos (scp, sftp, rsync)
IMPORTANTE: Los ficheros en Windows tienen el carácter Ctrl-M como salto de
línea
Solución 1: Transferir los ficheros en modo texto
Solución 2: dos2unix FICHERO
Transferencia de ficheros
Mayo 2017
Utilización del
sistema de colas.
Taller práctico Hackathon :
Acceso a Finis Terrae II
sbatch: Envía un script a una partición de SLURM. El único
parámetro obligatorio es el tiempo estimado.
sinfo: Muestra información sobre los nodos de SLURM y las
particiones.
squeue: Muestra información sobre los trabajos, su estado y las
colas.
squeue -u <login>
scancel: Permite cancelar un trabajo.
scontrol: Devuelve información más detallada sobre los nodos,
particiones, trabajos y la configuración.
scontrol show jobid -dd <jobid>
sacct: Consulta del histórico de trabajos y muestra información de
consumo.
SLURM: Comandos básicos
Particiones existentes en estos momentos:
Particiones
PartitionName Default MaxNodes MaxTime Shared
TotalN
odes
MemPer
CPU
MaxMemPer
Node
cola-corta UNLIMITED 4:00:00 EXCLUSIVE 48 120G
fatnode UNLIMITED UNLIMITED SHARED 1 5120 4000G
gpu-interactive 1 UNLIMITED SHARED 1 5120 120G
gpu-shared UNLIMITED UNLIMITED SHARED 3 5120 120G
iphi-interactive 1 UNLIMITED SHARED 1 5120 120G
iphinodes UNLIMITED UNLIMITED EXCLUSIVE 2 120G
thin-interactive 1 1-00:00:00 SHARED 2 5120 120G
thinnodes UNLIMITED UNLIMITED EXCLUSIVE 222 120G
thin-shared YES 1 UNLIMITED SHARED 32 5120 120G
Cada usuario tiene asignada una QOS por defecto
Para utilizar una QOS diferente se debe añadir la opción “--qos QOS_NAME” a la hora
de enviar el trabajo
Aunque no suelen ser habituales, algunos usuarios pueden tener algunos límites
especiales, por ejemplo por pertenecer a una determinada institución o grupo
Comandos útiles:
batchlim sacctmgr show user <login> –s
Default QOS y otros límites
Es obligatorio especificar el tiempo máximo de ejecución con la opción “-t D-
HH:MM:SS” o “--time D-HH:MM:SS”
Opciones por defecto: -N 1 -n 1 -c 1 (shared), -N 1 -n 1 –c 24 (exclusive)
Los requisitos del trabajo se pueden indicar a la hora de enviar el trabajo con el
comando sbatch o bien con directivas dentro del script utilizado (#SBATCH)
sbatch exporta el entorno existente en el momento de ejecutarlo al trabajo, incluidos
los módulos cargados
Se puede evitar con la opción “--export=NONE”
En el caso de los módulos puede ejecutarse “module purge”
Envío de trabajos: sbatch
Envío de un trabajo secuencial
#!/bin/bash
#
# this file is myjob.sh
#
#SBATCH –t 10:00
#SBATCH --job-name MyJob
#SBATCH --mail-type BEGIN,END
#
myprog -n 100 < infile
% sbatch myjob.sh
#!/bin/bash
#
# this file is myjob2.sh
#
myprog -n 100 < infile
% sbatch –t 10:00 --job-name
MyJob --mail-type BEGIN,END
myjob2.sh
Slurm combina por defecto la salida estándar y de error en un único fichero llamado
slurm-<job_number>.out o en slurm-<job_number>_<array_index>.out caso de
un job array
Localización por defecto: directorio de envío
Se puede modificar este comportamiento con las opciones:
--error /path/to/dir/filename
--output /path/to/dir/filename
Ficheros de salida/error
Al entrar en ejecución un trabajo se crean los siguientes directorios de scratch:
$LUSTRE_SCRATCH: directorio temporal en el Lustre
$LOCAL_SCRATCH o $TMPDIR: directorio temporal en el disco local del nodo
Estos directorios se borran automáticamente al finalizar los trabajos
Atención: El contenido del $LUSTRE_SCRATCH también cuenta para calcular la
cuota en el LUSTRE.
sbatch: directorios de scratch
Razones para usar los nodos interactivos:
Testeo/Debugging de códigos con requisitos de CPU y memoria medios
Pre/post-proceso de datos
Aplicaciones gráficas
Razones para NO usar los nodos interactivos:
Más fáciles de usar que enviar un trabajo a cola
Comando compute (sesiones limitadas a 8 horas)
[prey@fs6803 ~]$ compute -u
Uso: compute [-c <NCORES>]
[--mem <MEM>]
[--gpu]
[--phi]
[--x11]
Trabajos interactivos: compute
Comandos:
squeue: listado de los trabajos en cola
scontrol show job JOB_ID [-dd]: información de un trabajo
sacct: información de los recursos utilizados por los trabajos (tanto
finalizados como en cola).
Conexión a los nodos: top, strace, revisión de ficheros temporales, …
Los usuarios (tu) son los responsables de monitorizar sus trabajos
Monitorización de trabajos
Envío de trabajos a estos nodos (4 nodos):
sbatch –p gpu-shared --gres=gpu script.sh
sbatch --partition=gpu-shared --gres=gpu script.sh
Si no se indica la opción --gres=gpu no se asignará la GPU
Se puede solicitar el uso de más de una GPU con la opción --gres=gpu:N donde N es
un valor entre 1 y 4
Uso de los nodos con GPU
Envío de trabajos a estos nodos (2 nodos):
sbatch –p iphinodes --gres=mic script.sh
sbatch --partition=iphinodes --gres=mic script.sh
Se puede solicitar el uso de más de un Intel PHI con la opción --gres=mic:N donde N
es un valor entre 1 y 2
Uso de los nodos Intel PHI
Cuentas: curso871 a curso880
Se han reservado 2 nodos con GPU y 2 nodos con PHI por lo que habrá que añadir
alguna opción para poder usarlos.
Trabajos interactivos:
compute.hack en vez de compute
Envío de trabajos: añadir la opción --reservation=<RES_NAME> al sbatch
sbatch --reservation=HACK_PHI_30May –p iphinodes
--gres=mic script.sh
Reservas: Una reserva por día y tipo de nodo:
HACK_GPU_30May, HACK_PHI_30May
HACK_GPU_31May, HACK_PHI_31May
HACK_GPU_01Jun, HACK_PHI_01Jun
Recursos Hackathon
Se ha creado una MV con 2 cores y 2GB de memoria para los equipos que utilizan
Windows.
Team1: 10.38.3.51; usuario hackathon
Team2: 10.38.3.52; usuario hackathon
Team6: 10.38.3.56; usuario hackathon
Acceso:
ssh -X hackathon@10.38.3.5N con N=1,2 ó 6
Software en $HOME/pwtrainer-0.4.0-Linux
Parallware Trainer: MV
Mayo 2017
Compilación
Taller práctico Hackathon:
Acceso a Finis Terrae II
Combinaciones de compiladores, librerías BLAS/LAPACK y MPI disponibles:
Compiladores de Intel
Compiladores GNU
Otros.
Aceleradores
NVIDIA GPU: CUDA/PGI
INTEL PHI
Compiladores y herramientas de
desarrollo
Soporte de estándares
Programación: Soporte de los últimos estándares
Todas las implementaciones estables de los estándares de programación
actuales
Posibilidad de instalación de implementaciones experimentales: LLVM
Paralelización
OpenMP: Intel/GCC
OpenACC: PGI/GCC
MPI: Intel MPI/OpenMPI
Compilación
Uso de módulos
module av o module spider [app] -> para ver versiones disponibles
module list -> muestra los módulos cargados
module purge -> descarga todos los módulos cargados
module load -> carga un módulo
module rm -> descarga un módulo
module help -> breve guía de uso
Existe jerarquía de módulos
Compilación CPU
Aceleradores
NVIDIA GPUs
CUDA
Intel Phi
Intel compilers
Aceleradores
NVIDIA GPUs
CUDA
http://www.nvidia.com/object/learn-parallel-programming.html
Compilación GPU
Aceleradores
Intel Phi
Intel compilers
https://www.nersc.gov/assets/MKL_for_MIC.pdf
Compilacion Intel Xeon Phi
Dudas, preguntas, comentarios….
top related