PDF de programación - Intro Prácticas - Técnicas de Computación Científica

Imágen de pdf Intro Prácticas - Técnicas de Computación Científica

Intro Prácticas - Técnicas de Computación Científicagráfica de visualizaciones

Publicado el 6 de Agosto del 2020
481 visualizaciones desde el 6 de Agosto del 2020
481,3 KB
19 paginas
Creado hace 13a (10/11/2010)
Técnicas de Computación Científica

Intro Prácticas

      FIM ­  2010/11
Vicente Martín
        v0.1a

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 memoria
perteneciente 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

Clasificación de 
Arquitecturas 

paralelas

Elmer, Triqui1­4

Prácticas

Magerit, Triqui1­4

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).

● 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 

● 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

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 RAM
168 Blade JS21
Tetraprocesador PPC 970 2,3GHz – 8GB RAM

– Cerca de 2800 CPUs, 5.5 TB de RAM y 55TB de

disco local.

 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.

 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.

– 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

 Compilers:

submit a job.
– (see Magerit docs,

http://static.cesvima.upm.es/doc/manual/Magerit-GuiaUsuarios.pdf)

[email protected]

 SLURM: Simple Linux Utility for Resource

Management
– scalable cluster management and job scheduling

system for Linux clusters

– QoS based.

– 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

 SLURM-Moab Basic commands


– jobcancel suprime un trabajo de la cola de

– jobcheck muestra información detallada de un

– 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

ejecución.

trabajo.

trabajo.

ejecución.

– jobsubmit envía un trabajo al sistema para su

 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 ---------------------------


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)

● 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.

● 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

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 

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 &

– 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 line
triqui4
Triqui3:4 ifhn=hostc­gige
triqui2
  • Links de descarga
http://lwp-l.com/pdf18015

Comentarios de: Intro Prácticas - Técnicas de Computación Científica (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad