Story Transcript
Introducci´ on Herramientas Estudio Conclusiones
Herramientas para el estudio de prestaciones en clusters de computaci´on cient´ıfica, aplicaci´on en el Laboratorio de Computaci´on Paralela Virginio Garc´ıa L´ opez
Ingenier´ıa en Inform´atica Febrero 2009
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Motivaci´ on Objetivos Software cient´ıfico
Motivaci´on de este proyecto
I
Interesa conocer las prestaciones de clusters I I I
I
Material u ´til para el Grupo de Computaci´ on Paralela. I
I
De manera atom´atica Tanto de computaci´ on paralela como secuencial (´algebra lineal) Inter´es en el cluster SOL Manuales, herramientas, mediciones, gr´aficos, etc.
Utilidad de este tipo de proyectos: proyectos anteriores... I
I
I
Software para Computaci´ on Matricial paralela: Librer´ıas de Paso de Mensajes, 1996 (Seminario MPICH/MPI). Software para Computaci´ on Matricial Paralela: Librer´ıas de Computaci´ on Matricial, 1997 (Seminario BLAS). Estudio de las Prestaciones de Librer´ıas de Paso de Mensajes y de Computaci´ on Matricial, 1998.
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Motivaci´ on Objetivos Software cient´ıfico
Objetivos de la herramienta
I
Conocer las prestaciones de un cluster.
I
Comparar distintos clusters de computaci´ on cient´ıfica.
I
Automatizar un conjunto de experimentos.
I
Facilitar el an´alisis y la interpretaci´ on mediante gr´aficos.
I
Facilitar el c´alculo de megaflops, speedup, eficiencia, coste, y su documentaci´on.
I
Herramienta f´acilmente configurable, ampliable, se puede lanzar s´olo la parte que interese.
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Motivaci´ on Objetivos Software cient´ıfico
Software cient´ıfico: paralelo y secuencial I
OpenMP I I
I
MPI I
Est´andar para la programaci´ on en memoria distribuida. Basado en paso de mensajes.
I
Implementaci´ on LAM/MPI.
I
I
I
Est´andar para la programaci´ on en memoria compartida. Basado en directivas: el programador indica las partes paralelizables (fork-join).
BLAS (Basic Linear Algebra Subprograms) I
Biblioteca de funciones que llevan a cabo operaciones b´asicas con matrices y vectores.
I
Gran eficiencia y difusi´ on. Est´ andar de facto.
LAPACK (Linear Algebra PACKage) I
Biblioteca que, bas´andose en BLAS, resuelve problemas de m´as alto nivel. Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Mediciones Dise˜ no
Mediciones con OpenMP I
¿Cu´al es el rendimiento de OpenMP?
I
¿Qu´e compilador ofrece mejor rendimiento?
I
¿Con qu´e optimizaciones?
OpenMP I primitivas I generate: Primitivas de generaci´ on de hilos I pfor: Primitiva para paralelizar bucles for I sections: Primitiva sections y section I barriers: Primitiva barrier I alto nivel I matrizvector: Multiplicaci´ on matriz por vector I matrizmatriz: Multiplicaci´ on matrices almacenadas por filas I matrizmatriz2: Multiplicaci´ on de matrices A × B, con B por columnas I jacobi: Relajaci´ on de Jacobi
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Mediciones Dise˜ no
Mediciones con MPI
I
¿Cu´al es el rendimiento de MPI?
I
¿Qu´e rendimiento ofrecen las arquitecturas heterog´eneas?.
I
Permite observer el rendimiento de la red y trabajar con arquitecturas heterog´eneas en MPI
MPI I primitivas: Primitivas de MPI (MPI Send / MPI Recv, MPI Isend / MPI Irecv, MPI Bcast, MPI Gather, MPI Scatter) I multmatriz: Multiplicaci´ on de matrices
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Mediciones Dise˜ no
Mediciones con BLAS
I
¿Cu´al es el rendimiento de BLAS?
I
¿Cu´al es el comportamiento de cada nivel?
I
¿Cu´al es el comportamiento de cada implementaci´ on?
Implementaciones: Reference, Goto, ATLAS, Threaded-ATLAS Niveles: 1 (vectores), 2 (matriz-vector), 3 (matriz-matriz) Blas I directa: Multiplicaci´ on directa de matrices (sin BLAS) I bloques: Multiplicaci´ on de matrices por bloques (sin BLAS) I mb1: Multiplicaci´ on de matrices llamando a BLAS de nivel 1 I mb2: Multiplicaci´ on de matrices llamando a BLAS de nivel 2 I mb3: Multiplicaci´ on de matrices llamando a BLAS de nivel 3
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Mediciones Dise˜ no
Mediciones con LAPACK
I
¿Cu´al es el rendimiento de LAPACK?
I
¿Cu´al de las distintas implementaciones ofrece el mejor rendimiento?
I
¿Son las mismas que en BLAS?
¿Cu´al es el rendimiento con y sin bloques de la factorizaci´on LU? Implementaciones: Reference, ATLAS I
Lapack I lu: Factorizaci´ on LU (dgetf2, dgetrf)
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Mediciones Dise˜ no
Diagrama de estructura
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Mediciones Dise˜ no
Ejemplo BLAS-3
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Cluster SOL OpenMP MPI BLAS LAPACK
El cluster SOL
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Cluster SOL OpenMP MPI BLAS LAPACK
Prestaciones de OpenMP Primitivas: generate, pfor, sections, barriers (N=5000)
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Cluster SOL OpenMP MPI BLAS LAPACK
Prestaciones de OpenMP Rutinas de alto nivel: matrizvector, jacobi, multmatriz, multmatriz2
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Cluster SOL OpenMP MPI BLAS LAPACK
Prestaciones de MPI Primitivas y multiplicaci´ on de matrices
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Cluster SOL OpenMP MPI BLAS LAPACK
Prestaciones de BLAS Multiplicaci´ on de matrices: directa, bloques, BLAS-1, BLAS-2, BLAS-3 Implementaciones: Reference, ATLAS, Threaded-ATLAS, Goto
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Cluster SOL OpenMP MPI BLAS LAPACK
Prestaciones de LAPACK Factorizaci´ on LU: Sin bloques (dgetf2) y con bloques (dgetrf) Implementaciones: Reference, ATLAS
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Conclusiones V´ıas futuras
Conclusiones I
Herramienta I
I I
I
I
´ para medir prestaciones y comparar Herramienta: Util clusters. Parte gr´afica y otros scripts de ayuda. OpenMP: Soporte reciente en gcc. MPI: Actualiza otros PFC. Arquitecturas heterog´eneas. BLAS y LAPACK: Comparaci´ on de implementaciones.
Cluster SOL I
I
I I
OpenMP: Compilador icc cuando hasta un hilo por core, gcc en otro caso. MPI: Excelente speedup con nodos homog´eneos. No conviene usar nodo antiguo. BLAS: Mejor Threaded-ATLAS. LAPACK: Mejor ATLAS.
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Conclusiones V´ıas futuras
V´ıas futuras
I
Aplicar las herramientas a otros clusters.
I
Ya se est´a aplicando en el cluster Hipatia.
I
Ampliaci´on de la herramienta: ScaLAPACK
I
Mejora y adapataci´ on de las herramientas.
I
Mejoras en la automatizaci´ on, en la generaci´on de documentaci´on, ...
I
A˜ nadir otros algoritmos.
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera
Introducci´ on Herramientas Estudio Conclusiones
Herramientas para el estudio de prestaciones en clusters de computaci´ on cient´ıfica, aplicaci´on en el Laboratorio de Computaci´ on Paralela
http://www.um.es/pcgum/PFCs_y_TMs/
Virginio Garc´ıa L´ opez
Proyecto Fin de Carrera