técnicas de computación científicavicente/tcc/presentapracttcc1011.pdf · técnicas de...

19
Técnicas de Computación Científica Intro Prácticas       FIM -  2010/11 Vicente Martín         v0.1a

Upload: others

Post on 06-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

Técnicas de Computación Científica

Intro Prácticas

      FIM ­  2010/11

Vicente Martín        v0.1a

Page 2: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

Tarzan: Multicomputador con nodos SMP

En la IBM SP2 cada nodo es una estación de trabajo con su propio espacio de direcciones bajo el control exclusivo de su propio sistema operativo. El acceso a una posición de memoriaperteneciente a otro nodo requiere la comunicación de dos SO independientes con un paso de mensajes explícito, en este caso ayudado por HW específico: el High Performance Switch

Page 3: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

Clasificación de Arquitecturas 

paralelas

Prácticas

Magerit, Triqui1­4

Elmer, Triqui1­4

Page 4: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

Machines available for practises.● Magerit.

– Multicomputer. Cluster architecture made up from bi and tetraprocs PPC 970. Myrinet+Gigabit. Linux SLE ~2800 CPUs

● Elmer: Power 5 SMP 2CPUs (2 threads per CPU). AIX. OS sees the machine as a 4 CPUs SMP.

● Triqui 1­2­3­4. Intel SMP 8 CPUs (2 quadcores). Linux (main machine for OpenMP)

● Arturo, Alpha 21264, tetraprocessor. True64 Unix, used only for HPF (NO).

Page 5: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

● Magerit/Elmer: Compiladores de IBM● Compiladores (drivers para compilación y montado):

– Estándar: xlf, xlf90, xlf95

– Reentrantes (para OMP, con cualificador ­qsmp=omp) xlf_r, xlf90_r, xlf95_r

– Para paso de mensajes (MPI): mpxlf, mpxlf90, mpxlf95

– Para HPF: xlhpf

– Modo mezcla: mpxlf_r, mpxlf90_r, mpxlf95_r

● Otras herramientas: PAPI. vt para leer las trazas generadas por una ejecución con ­tracelevel 9 

Page 6: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

● ELMER: ● CPU POWER5, Dual core, 2 threads/CPU. OS sees the machine 

as a 4 CPUs SMP.● AIX 5.x● Same IBM Compilers: xlf, xlf90, xlf95, xlc... upc??

● PAPI

– ARTURO:  NO● CPU Alpha 21264. 4 CPUs● AlphaServer ES40 Tru64 Unix V5.x● f77/f90/f95 cc

Page 7: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

CeSViMa: Magerit

Potencia sostenida 16 Tflops Multicomputador: Linux SLE

– Myrinet: comunicación interproceso MPI– Gigabit Ethernet: Sistema de ficheros (GPFS) +

gestión.

1204 nodos de cómputo– 1036 Blade JS20

Biprocesador PPC 970 2,2GHz – 4GB RAM168 Blade JS21Tetraprocesador PPC 970 2,3GHz – 8GB RAM

– Cerca de 2800 CPUs, 5.5 TB de RAM y 55TB de disco local.

Page 8: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

Discos– Capacidad 192 TB– 256 HD SATA x 750GB– Distribuido (16 servidores Power5)– Tolerante a fallos

RAID5 + HOT SPARE

Sistema de colas (LoadLeveler)– Cola “learn”

Compiladores:– IBM XL C/C++/Fortran 77/90/95– Compiladores GNU– MPI: Lamm, Glenn Messages.

Page 9: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

Nodos Interactivos:– Login y trabajo de desarrollo.

Nodos de Cómputo:– Gestionados por el LoadLeveler– Cola “learn” (llclass ­l)

Compiladores:– IBM XL C/C++/Fortran 77/90/95– Compiladores GNU– MPI: Lamm, Glenn Messages.

Page 10: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

Compilers:– IBM XL C/C++ (xlc, xlC) Fortran 77/90/95 (xlf, xlf90,

xlf95) and thread safe versions (_r commands)– GNU compilers (gcc, g++, g77)– MPI wrappers (mpicc, mpiCC, mpif70, mpif90)

Backend are IBM XL compilers by default.– MPI: Lamm, Glenn Messages.

A Job definition file is needed in order to submit a job. – (see Magerit docs,

http://static.cesvima.upm.es/doc/manual/Magerit-GuiaUsuarios.pdf)– [email protected]

Page 11: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

SLURM: Simple Linux Utility for Resource Management – scalable cluster management and job scheduling

system for Linux clusters– A Slurm daemon (slurmd) runs at every node. It is

under the control of a central (slurmctl) daemon.– Useful commands:– sacct, salloc, sattach, sbatch, sbcast, scancel,

scontrol, sinfo, smap, squeue, srun, strigger and sview

– QoS based.

Page 12: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

SLURM-Moab Basic commands

– jobcancel suprime un trabajo de la cola de ejecución.

– jobcheck muestra información detallada de un trabajo.

– jobq muestra el estado de los trabajos del usuario en el sistema desglosado según su estado.

– jobstart proporciona la hora estimada de inicio del trabajo.

– jobsubmit envía un trabajo al sistema para su ejecución.

Page 13: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

A Job definition file is needed in order to submit a job. (see Magerit docs)

#!/bin/bash

#----------------------- Start job description -----------------------

#@ group = [project_id]

#@ class = [class_name]

#@ initialdir = /gpfs/projects/[project_id]/[data_dir]

#@ output = res/[programoutfile].out

#@ error = res/[programerrfile].err

#@ total_tasks = [number of tasks]

#@ wall_clock_limit = [hh:mm:ss]

#------------------------ End job description ------------------------

#-------------------------- Start execution --------------------------

# Run our program

srun ./[myprogram]

#--------------------------- End execution ---------------------------

Page 14: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

OpenMP Disponible en:● Magerit: 

– Compiladores serie XL (xlf, xlc): usar switch ­qsmp=omp y librerias reentrantes llamando a los compiladores con los scripts  xlf_r y xlc_r 

– Compiladores GNU: teneis que mirar por vuestra cuenta el nivel al que está soportado en esa arquitectura.

– NOTA: La mayoría de los nodos de Magerit son de 2 procesadores, en estos la máxima ganancia con OpenMP es un factor 2. Hay unos pocos que son tetraprocesadores (ganacia máxima 4)

Page 15: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

● Triqui 1­2­3­4:  – 8 cores per node.

– Intel compilers (icc, ifort): use   ­openmp switch for openMP.

– Están en /opt/intel/Compiler/11.1/069● Look for the exact place: it changes qith compiler versions.

● There is a Documentation directory.● You have to make sourcing of the files (source or . commands):

● iccvars.sh  ( C language and  Bourne shell. Also  .csh version)  ifortvars.sh (idem Fortran version) en /opt/intel/Compiler/11.1/069/bin  with argument intel64

– Place the commands in  .bash_profile if you don't want to have to repeat it each time.

–  GNU compilers: use the  ­fopenmp switch.

Page 16: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

● Triqui 1­4:  ● Por si acaso no funciona directamente el ifortvars.sh: 

● Export PATH=$PATH:/opt/intel/Compiler/11.1/069/bin/intel64

● Export LD_LIBRARY_PATH=/opt/intel/Compiler/11.1/069/lib/intel64

● /opt/intel/Compiler/11.1/069/bin/ifortvars.sh intel64

Page 17: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

UPC disponible en Triqui 1­4: – UPC es experimental y está compilado con el 

compilador de Intel (icc, usad iccvars.sh )

– Añadir /usr/local/berkeley_upc/bin a vuestro PATH

– Comprobadlo con upc ­V 

Page 18: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

MPI en Triqui 1­4: – MPICH2 implementacion de MPI2 completo.

– Añadir /usr/local/mpich2-1.1.1/bin a vuestro PATH

– Comprobadlo con mpich2version 

– Incluye drivers para los compiladores/montadores:

mpif90, mpif77  

– Para iniciar procesos usa el mecanismo definido en el “standard” 2: mpiexec aunque sigue aceptado el viejo mpirun.

– En cada nodo se inicia un demonio que actua como gestor de los procesos MPI. Los demonios se inician con mpd &

Page 19: Técnicas de Computación Científicavicente/tcc/PresentaPractTCC1011.pdf · Técnicas de Computación Científica Intro Prácticas FIM 2010/11 Vicente Martín v0.1a. Tarzan: Multicomputador

– Ejemplo:● $ mpd &● $ mpiexec ­n 4 hostname

– También se puede decidir en donde se ejecutan los programas a través de un host file: 

● mpiexec ­machinefile mf ­n 7 p0

– Ejemplo de machinefile:# comment linetriqui4Triqui3:4 ifhn=hostc­gigetriqui2