1
Utilización y optimización de
librerías numéricas paralelas
Seminario de doctorado, UPV 2007
Domingo Giménez
Departamento de Informática y Sistemas
Universidad de Murcia
Motivación
Problemas científicos y de ingeniería con
grandes necesidades computacionales
necesitan de:
Algoritmos numéricos eficientes:
implementarlos en librerías
Sistemas con grandes recursos
computacionales y de almacenamiento:
sistemas paralelos
Índice
Librerías de álgebra lineal densa
Librerías de álgebra lineal dispersa:
Sistemas lineales, métodos directos
Sistemas lineales, métodos iterativos
Problemas de valores propios
Otros:
FFT
Optimización
Librerías de álgebra lineal densa
Librerías de álgebra lineal densa
ScaLAPACK
:
Libre distribución
Basada en distribución en malla de los datos
Dentro de una jerarquía que incluye BLAS y LAPACK
Misma funcionalidad que LAPACK (sistemas de
ecuaciones y problemas de valores propios) pero
menos rutinas
Librerías de álgebra lineal densa
PLAPACK
:
Libre distribución
Distribución de datos guiada por el problema
Relacionada con FLAME, para generación automática
de código, y usa BLAS de Goto
Misma funcionalidad que ScaLAPACK pero menos
rutinas
Mucho menos usado que ScaLAPACK
Paso de mensajes
Librerías de álgebra lineal densa
PRISM
(Parallel Research on Invariant Subspace
Methods):
Libre distribución
Basado en Invariant Subspace Decomposition
Algorithm para matrices simétricas (SYISDA)
Problemas de valores propios
Antiguo
Librerías de álgebra lineal densa:
Jerarquía de ScaLAPACK
ScaLAPACK LAPACK BLAS PBLAS BLACS Comunicaciones: PVM, MPI Secuencial Paso de mensajes Dependiente de la plataforma Independiente de la plataforma Direccionamiento local Direccionamiento global9
Librerías de álgebra lineal
densa: futuro
Jim Demmel and Jack Dongarra:
LAPACK 2005 Prospectus
: Reliable and Scalable
Software for Linear Algebra Computations on High
End Computers, febrero 2005:
Incluir en ScaLAPACK más rutinas de LAPACK Incluir rutinas de algoritmos nuevos
Mayor precisión
Estructuras de datos recursivas (LAWRA) Facilidad de uso
Parametrización para adecuar a diferentes sistemas Clusters y heterogéneos
Álgebra lineal dispersa: sistemas
lineales, métodos directos
Librerías de álgebra lineal
dispersa: DSCPACK
DSCPACK
: Domain-Separator Codes For Solving
Sparse Linear Systems
Para sistemas lineales dispersos con métodos directos La matriz de coeficientes tiene que ser simétrica
Con paso de mensajes (MPI) En C y usa BLAS
Librerías de álgebra lineal
dispersa: MFACT
MFACT
: A Multifrontal Sparse Direct Solver
Para sistemas lineales dispersos con métodos directos La matriz de coeficientes tiene que ser simétrica definida
positiva
En el futuro estilo de llamada a las rutinas como LAPACK E interface Matlab
Librerías de álgebra lineal
dispersa: MUMPS
MUMPS
: MUltifrontal Massively Parallel sparse direct
Solver
Varios formatos de almacenamiento de las matrices Matrices simétricas y no simétricas
Librerías de álgebra lineal
dispersa: PSPASES
PSPASES
: Parallel SPArse Symmetric dirEct Solver
Para sistemas lineales dispersos con métodos directos La matriz de coeficientes tiene que ser simétrica definida
positiva
Basado en MPI
Llamadas en C y Fortran
Librerías de álgebra lineal
dispersa: SPOOLES
SPOOLES
: SParse Object Oriented Linear Equations
Solver
Para matrices reales y complejas
En la mayoría de los casos la matriz tiene que ser simétrica Usa POSIX threads y MPI
Librerías de álgebra lineal
dispersa: SuperLU
SuperLU
:
La matriz no tiene que ser simétrica En C
Llamadas desde C y Fortran
Hace factorización LU con pivotamiento parcial y solución
de sistemas tridiagonales con sustitución progresiva y regresiva
Se preordenan las columnas antes de la factorización
Librerías de álgebra lineal
dispersa: SuperLU
Pasos
Equilibrado de filas y columnas
Y permutación de filas para hacer la diagonal grande Permutación de columnas para mantener dispersión
Análisis simbólico para obtener la estructura de dispersión
de LU
Factorización LU
Solución de sistemas tridiagonales
Librerías de álgebra lineal
dispersa: SuperLU
Tiempos paralelos
Simbol LU Sistem Iterat
1 2.4 68.2 1.5 6.19 2x2 21.3 0.73 2.77 2x4 12.8 0.67 2.44 4x4 8.2 0.43 1.65 4x8 5.6 0.39 1.51 8x8 4.9 0.29 1.16 8x16 3.7 0.27 1.00 8x32 3.5 0.22 0.85 16x32 3.8 0.19 0.75
Librerías de álgebra lineal
dispersa: PARDISO
PARDISO
:
La matriz no tiene que ser simétrica
Para memoria compartida, con OpenMP Basado en BLAS 3
Álgebra lineal dispersa: sistemas
lineales, métodos iterativos
Librerías de álgebra lineal
dispersa: Aztec
Aztec
:
Técnicas tradicionales de solapamiento de computación y
comunicación, de reducción de comunicaciones, de precondicionado, ...
Librerías de álgebra lineal
dispersa: BlockSolve95
BlockSolve95
:
Para problemas de ingeniería con cierta estructura, que
aprovecha para la computación
Matrices con estructura simétrica
Varios sistemas con la misma estructura, o el mismo
sistema con vectores de términos independientes distintos
Librerías de álgebra lineal
dispersa: HYPRE
HYPRE
: High Performance Preconditioners
Precondicionadores para métodos de Krylov y gradiente
conjugado
Factorización incompleta, ILU En MPI
Librerías de álgebra lineal
dispersa: pARMS
pARMS
: parallel Algebraic Recursive Multilevel
Solvers
Precondicionadores para métodos de Krylov Factorización incompleta, ILU
Librerías de álgebra lineal
dispersa: PETSc
PETSc
: Portable, Extensible Toolkit for Scientific
Computation
Estructuras de datos y rutinas
para solución de problemas modelados por ecuaciones en derivadas parciales
Varios formatos de
almacenamiento
Sistemas de ecuaciones
lineales y no lineales
Interface C, C++, Fortran, Python Sobre BLAS y MPI
Librerías de álgebra lineal
dispersa: PETSc
Applications of PETSc (239) Nano-simulations (20) Biology/Medical(28) Cardiology Imaging and Surgery Fusion (9)
Geosciences (20)
Environmental/Subsurface Flow (26) Computational Fluid Dynamics (49)
Wave propagation and the Helmholtz equation (12) Optimization (7)
Librerías de álgebra lineal
dispersa: P-SparsLIB
P-SparsLIB
: Portable Library of Parallel Sparse
Iterative Solvers
Basado en métodos de Krylov y precondicionamiento Factorización incompleta, ILU
Optimiza las rutinas básicas de comunicaciones y de
computación que se utilizan, optimizándolas para cada sistema
Librerías de álgebra lineal
dispersa: Trilinos
Trilinos
:
Metodología orientada a objeto Precondicionadores
Factorización incompleta
Múltiples sistemas con términos independientes sucesivos y
múltiples
Sistemas lineales y no lineales
Sobre MPI, pero las rutinas secuenciales y paralelas se
Álgebra lineal dispersa:
problemas de valores propios
Librerías de álgebra lineal
dispersa: LZPACK
LZPACK
:
Algoritmos de Lanczos para matrices reales simétricas
(BLZPACK) y para matrices Hermitianas (HLZPACK)
En Fortran 77
Librerías de álgebra lineal
dispersa: PARPACK
PARPACK
: Parallel Arnoldi Package
Calcula algunos valores y vectores propios
Basado en multiplicación matriz-vector eficiente y en
Implicitly Restarted Arnoldi Method (IRAM)
Matrices simétricas (Implicitly Restarted Lanczos Method
(IRLM)) y no simétricas, y problema generalizado
Librerías de álgebra lineal
dispersa: PLAPACK
Prestaciones
Tamaño Tiempo Eficiencia
1 100000x1 40.53 4 100000x4 40.97 0.98 8 100000x8 42.98 0.95 12 100000x12 42.53 0.95 16 100000x16 42.13 0.96 32 100000x32 46.59 0.87 64 100000x64 54.47 0.74 128 100000x128 57.69 0.70
Librerías de álgebra lineal
dispersa: PLANSO
PLANSO
:
Problemas de valores propios simétricos generalizados Método de Lanczos
En Fortran 77 Sobre MPI
Librerías de álgebra lineal
dispersa: SLEPc
SLEPc
: Scalable Library for Eigenvalue Problem
Computations
Problemas stándar y generalizados y de valores singulares Métodos de Arnoldi, de Lanczos y subspace iteration
Extensión de PETSc
Metodología orientada a objeto Interface C, C++ y Fortran
Librerías de álgebra lineal
dispersa: SLEPc
Otras librerías: FFT
FFTW
: Fastest Fourier Transform in the West
Incluye técnicas de autooptimización En C
Interface C y Fortran
Con pthreads para memoria compartida y MPI para
37
Más información
V. Hernández, J. E. Román, A. Tomás, V. Vidal: A Survey of Software for
Sparse Eigenvalue Problems, SLEPc Technical Report STR-6, available at
http://www.grycap.upv.es/slepc
http://www.netlib.org/utk/people/JackDongarra/la-sw.html
http://wotug.ukc.ac.uk/parallel/nhse/rib/repositories/hpc-netlib/catalog/
Differential and Integral Equations Integral equations
Ordinary differential equations Partial differential equations Graph and mesh partitioning Linear algebra
Miscellaneous Optimization
Computación heterogénea
Intentos de ScaLAPACK heterogéneo:
Grupo de Tennessee:
LFC: Lapack for Clusters NetSolve/GridSolve
Grupo de Lyon: trabajos sobre rutinas de álgebra lineal en
sistemas heterogéneos
Grupo de Dublin-Moscú: rutinas de álgebra lineal en sistemas
heterogéneos sobre mpC Grupo de Valencia-Murcia:
Rutinas básicas de álgebra lineal en heterogéneos