Modelado de rutinas de álgebra lineal

Post on 06-Jan-2022

17 views 0 download

Transcript of Modelado de rutinas de álgebra lineal

1

Modelado de rutinas de álgebra lineal

El modelado es necesario para predecir el tiempo de ejecución y seleccionar: El número de procesos El número de procesadores Qué procesadores La topología (p.e: número de filas y columnas de procesos) La asignación de procesos a procesadores El tamaño de bloque computacional (en algoritmos de

álgebra lineal) El tamaño de bloque de comunicación El algoritmo (polialgoritmos) La rutina o librería (polilibrerías)

2

Coste de un programa paralelo:

: tiempo aritmético: tiempo de comunicación: overhead, por sincronización, desbalanceo,

creación de procesos, ...: overlapping de comunicación y computación

Modelado de rutinas de álgebra lineal

overlapoverheadcommarithparallel ttttt −++=aritht

commtoverheadt

overlapt

3

Estimación del tiempo:

Considerando computación divididas en un número de pasos independientes:

y para cada parte de la fórmula el tiempo del proceso con mayor coste.

Modelado de rutinas de álgebra lineal

commarithparallel ttt +=

...2,2,1,1, ++++= commarithcommarithparallel ttttt

4

El tiempo depende del tamaño del problema (n) y del sistema (p):

y también de algunos ALGORITHMIC PARAMETERS, como el tamaño de bloque (b) y el número de filas (r) y de columnas (c) de procesadores, en algoritmos para malla de procesos

Modelado de rutinas de álgebra lineal

),( pnt parallel

),,,( crbnt parallel

5

Y de algunos SYSTEM PARAMETERS que reflejan las características de computación y comunicación del sistema.

Típicamente son el coste de una operación aritmética (tc) y el start-up (ts) y el word-

sending time (tw)

Modelado de rutinas de álgebra lineal

),,( SPAPnt parallel

6

La idea de parametrización de las rutinas para tomar decisiones aparece en:

La propuesta de trabajo de LAPACK:Demmel, Dongarra: ScaLAPACK proposal 2004 En HeteroScaLAPACK:Ravi Reddy, Alexey Lastovetsky: 

HeteroMPI+ScaLAPACK: Towards a ScaLAPACK (Dense Linear Solvers) for Heterogeneous Networks of Computers. HiPC 2006, Bangalore

Modelado de rutinas de álgebra lineal

7

Factorización LU (Golub - Van Loan):

=

Paso 1: (factorización LU sin bloques)

Paso 2: (sistema triangular inferior múltiple)

Paso 3: (sistema triangular superior múltiple)

Paso 4: (actualización de bloques sur-este)

Modelado de rutinas de álgebra lineal

A11

A22

A33A32A31

A23A21

A13A12 L11

L22

L33L32L31

L21

U11

U22

U33

U23

U13U12

111111 ULA =ii ULA 1111 =

1111 ULA ii =jiijij ULAA 11−=

8

Tiempo de ejecución:

si los bloques son de tamaño 1, las operaciones son sobre elementos individuales, pero si el tamaño de bloques es b, el coste es:

con k3 y k2 el coste de operaciones realizadas con BLAS 3 y BLAS 2

Modelado de rutinas de álgebra lineal

3

32)( nnt tcsequential =

nbbnnnt kkksequential2

23

33

3 31

32)( ++=

9

Pero el coste de operaciones del mismo nivel es también diferente, y se podría modelar el tiempo añadiendo más parámetros:

de este modo, aumenta el número de SYSTEM PARAMETERS (uno por cada rutina básica), y ...

Modelado de rutinas de álgebra lineal

nbbnnnt kkk dgetfdtrsmdgemmsequential2

2_23

_33

_3 31

32)( ++=

10

El valor de cada System Parameter puede depender del tamaño del problema (n) y del valor de los Algorithmic Parameters (b)

La fórmula queda en la forma:

y lo que queremos es obtener los valores de AP con los que se obtiene el menor tiempo de ejecución teórico

Modelado de rutinas de álgebra lineal

nbbnbnbnnbnbnt kkk dgetfdtrsmdgemmsequential2

2_23

_33

_3 31),(),(

32),(),( ++=

)),(,,( APnSPAPnt

11

El valor de los System Parameters se puede obtener Con rutinas de instalación asociadas a cada rutina

de álgebra lineal Utilizando información obtenida en la instalación

de las librerías en el sistema, generando una jerarquía de librerías con autooptimización

En tiempo de ejecución testeando las condiciones del sistema antes de llamar a la rutina (sistemas de carga variable)

Modelado de rutinas de álgebra lineal

12

Los valores se pueden obtener como valores simples (método tradicional) o como función de los Algorithmic Parameters: Se almacena una tabla multidimensional con valores que

son función del tamaño del problema y de los Algorithmic Parameters

Se hace un ajuste por mínimos cuadrados y se guardan los valores de las constantes

Cuando se resuelve un problema para una cierta entrada se utilizan los valores de los System Parameteres estimados, y se resuelve con los valores de los Algorithmic Parameters con que se predice el menor tiempo de ejecución

Modelado de rutinas de álgebra lineal

13

Coste de factorización LU paralela por bloques:

Algorithmic Parameters:tamaño de bloque: b

malla 2D de p procesos: p = r ×c, d=max(r,c)

System Parameters:coste de operaciones aritméticas: k2,getf2 k3,trsmm k3,gemm

parámetros de comunicación: ts tw

Modelado de rutinas de álgebra lineal

nkbnbkp

crp

nkT getftrsmgemmARI 2,222

,3

3

,3 31

32 +++=

pdnt

bndtT wsCOM

222 +=

14

Coste de factorización QR paralela por bloques:

Algorithmic Parameters:tamaño de bloque: b

malla 2D de p procesos: p = r ×c

System Parameters:coste de operaciónes aritméticas: k2,geqr2 k2,larft k3,gemm k3,trmm

parámetros de comunicación: ts tw

Modelado de rutinas de álgebra lineal

r

bkn

rbkn

c

bkn

p

knT

larftgeqrtrmmgemm

ARI

,22

2,22,3

2,3

3

21

41

34

+++=

( )( ) ( )

+

++−+

++= pnb

rr

cr

rrntcrb

bntT wsCOM logloglog12

2log2log32 2

2

15

La misma operación básica aparece en diferentes rutinas: la información generada para una rutina o para una librería, puede ser almacenada y utilizada para otra rutina o libreríaes necesario un formato común para almacenar la información

Modelado de rutinas de álgebra lineal

16

Modelado de rutinas de álgebra lineal

IBM­SP2. 8 processors 0,00

10,00

20,00

30,00

40,00

50,00

60,00

70,00

80,00

512 1024 1536 2048 2560 3072 3584

problem size

time 

(sec

onds

)

mean

model

optimum

Factorización QR paralela

“ mean” : media de los tiempos de ejecución con valores representativos de los Algorithmic Parameters (tiempo que podría obtener un usuario no experto)

“ optimum” : el menor tiempo obtenido con ejecuciones variando los valores de los Algorithmic Parameters

“ model” : el tiempo con los valores de los Algorithmic Parameters seleccionados por el modelo

17

En la fórmula de la factorización LU paralela por bloques

los valores de losSystem Parameters (k2,getf2 , k3,trsmm , k3,gemm , ts , tw) se estiman en función del tamaño de la entrada (n) y de los Algorithmic Parameters (b, r, c)

Rutinas de instalación

ncrbnkbncrbnbkp

crp

ncrbnkcrbnT getftrsmgemmARI ),,,(31),,,(),,,(

32),,,( 2,2

22,3

3

,3 +++=

pdncrbnt

bndcrbntcrbnT wsCOM

22),,,(2),,,(),,,( +=

18

Rutinas de instalaciónEjecutando en tiempo de instalación Rutinas de

Instalación asociadas a la rutina de álgebra lineal,y almacenando la información generada para utilizarla

en tiempo de ejecución

⇒Cada rutina de álgebra lineal debe diseñarse

con sus rutinas de instalación y el proceso de instalación

o construir una capa de instalación sobre una librería ya existente

19

Se estima con multiplicaciones matriz-matriz y actualizaciones de tamaño (n/r ×b) × (b ×n/c)

El tamaño de las matrices varía a lo largo de la ejecución: se pueden estimar valores diferentes para tamaños distintos, y en la fórmula se puede contemplar el uso de distintos valores dividiendo la fórmula en distintas partes

Rutinas de instalación),,,(,3 crbnk gemm

20

y aparecen en comunicaciones de tres tipos,

en una se difunde en una fila un bloque b ×b, y el parámetro depende de b c

en otra se difunde en una columna un bloque b ×b, y el parámetro depende de b y r

y en otra, se difunden bloques b ×n/c y n/r ×b en cada una de las filas y columnas, y el parámetro depende de n, b, r y c

Rutinas de instalación),,,( crbnts ),,,( crbntw

21

En la práctica cada System Parameter depende de un número reducido de Algorithmic Parameters, pero esto se conoce tras completar la instalación.

El diseñador de la rutina diseña también la instalación, y puede diseñar el proceso de instalación utilizando su experiencia.

Puede también diseñarse un proceso de instalación que permita la intervención del system manager.

Rutinas de instalación

22

Algunos resultados en diferentes sistemas (físicos y lógicos)Valores de k3_DTRMM ( ≈ k3_DGEMM) en las diferentes plataformas (microsegundos)

Rutinas de instalación

0.00250.00250.00300.0070512,.., 4096macBLASR10K

0.00180.00180.00190.0023512,.., 4096macBLASPPC

0.00300.00300.00330.0038512,.., 4096ATLASPIII

0.01500.00500.0025

0.01400.00500.0025

0.01300.00500.0032

0.01200.00600.0040

512,.., 4096512,.., 4096512,.., 4096

refBLASmacBLAS

ATLAS

SUN5

0.02800.01100.0060

0.02200.01100.0060

0.02000.01100.0060

0.02000.01200.0070

512,.., 4096512,.., 4096512,.., 4096

refBLASmacBLAS

ATLAS

SUN1

128643216nSystem

Block size

23

Rutinas de instalaciónValores de  k2_DGEQR2 (  ≈ k2_DLARFT) en diferentes plataformas (microsegundos)

0.0250512,.., 4096macBLASR10K

0.0100512,.., 4096macBLASPPC

0.0150512,.., 4096ATLASPIII

0.00500.03000.0500

512,.., 4096512,.., 4096512,.., 4096

refBLASmacBLAS

ATLAS

SUN5

0.02000.05000.0700

512,.., 4096512,.., 4096512,.., 4096

refBLASmacBLAS

ATLAS

SUN1

128643216nSystem

Block size

24

Normalmente los valores de los parámetros de comunicación se estiman bien con un ping-pong

Rutinas de instalación

20 / 0.1512,.., 4096Mac-MPIOrigin 2K

75 / 0.3512,.., 4096Mac-MPIIBM-SP2

60 / 0.7512,.., 4096MPICHcPIII

170 / 7.0512,.., 4096MPICHcSUN1

128643216nSystem

Block size

25

Modelling the Linear Algebra Routine 

(LAR)

Obtaining information from 

the System

Selectionof  

parameters values

Executionof LAR

DESIGN

INSTALLATION

RUN­TI

ME

Rutinas con autooptimización

26

DISEÑO

DESIGN

LAR: Linear Algebra RoutineMade by the LAR Designer

Example of LAR: Parallel Block LU factorisation

LAR

27

Modelado de LAR

DESIGN

LAR

Modellingthe LAR

MODEL

28

Modelado de LAR

DESIGN

MODELTexec =  f (SP, AP, n)

SP: System Parameters AP: Algorithmic Parameters n : Problem size

Made by the LAR-DesignerOnly once per LAR

LAR

Modellingthe LAR

MODEL

29

Modelado de LAR

DESIGN

SP: k3, k2, ts, tw

AP: p = r x c, bn : Problem size

MODEL LAR: Parallel Block LU factorisation

LAR

Modellingthe LAR

MODEL

30

Implementación de los estimadores

DESIGN

LAR

Modellingthe LAR

MODEL

Implementationof  SP­Estimators

SP­Estimators

31

Implementación de los estimadores

DESIGN

LAR

Modellingthe LAR

MODEL

Implementationof  SP­Estimators

SP­Estimators

Estimators of Arithmetic-SPComputation Kernel of the LARSimilar storage schemeSimilar quantity of data

Estimators of Communication-SP Communication Kernel of the LAR Similar kind of communicationSimilar quantity of data

32

INSTALACIÓN

INSTALLATION

LAR

Modellingthe LAR

MODEL

Implementationof  SP­Estimators

SP­Estimators

DESIGN

Installation ProcessOnly once per PlatformGuided by the System Manager

33

Estimación estática de los SP

INSTALLATION

LAR

Modellingthe LAR

MODEL

Implementationof  SP­

EstimatorsSP­Estimators

Estimationof Static­SP

Static­SP­File

Basic Libraries Installation­File

DESIGN

34

Estimación estática de los SP

INSTALLATION

LAR

Modellingthe LAR

MODEL

Implementationof  SP­

EstimatorsSP­Estimators

Estimationof Static­SP

Static­SP­File

Basic Libraries Installation­File

DESIGN

Basic LibrariesBasic Communication Library: 

MPI PVM

Basic Linear Algebra Library: reference­BLAS

  machine­specific­BLASATLAS

Installation FileSP values are obtained using  the  information (n  and  AP  values)  of this file. 

35

Estimación estática de los SPLAR

Modellingthe LAR

MODEL

Implementationof  SP­Estimators

SP­Estimators

Estimationof Static­SP

Static­SP­File

Basic Libraries Installation­File

DESIGN

INSTALLATION

Estimation of the Static­SP tw­static   (in µsec)

Message size (Kbytes) 32 256 1024 2048tw­static  0.700 0.690 0.680 0.675

Platform: Cluster of Pentium III + Fast Ethernet

Basic Libraries: ATLAS and MPI 

Estimation of the Static­SP k3­static   (in µsec)

Block size 16 32 64 128k3­static 0.0038 0.0033 0.0030 0.0027

36

EJECUCIÓN

INSTALLATION

LAR

Modellingthe LAR

MODEL

Implementationof  SP­

EstimatorsSP­Estimators

Estimationof Static­SP

Static­SP­File

Basic Libraries Installation­File

DESIGN

RUN­TIME

37

Selección de AP óptimos

INSTALLATION

LAR

Modellingthe LAR

MODEL

Implementationof  SP­

EstimatorsSP­Estimators

Estimationof Static­SP

Static­SP­File

Basic Libraries Installation­File

Optimum­AP

Selectionof  Optimum AP

DESIGN

RUN­TIME

38

Ejecución

INSTALLATION

LAR

Modellingthe LAR

MODEL

Implementationof  SP­

EstimatorsSP­Estimators

Estimationof Static­SP

Static­SP­File

Basic Libraries Installation­File

Optimum­AP

Selectionof  Optimum AP

Executionof LAR

DESIGN

RUN­TIME

39

Rutinas con autooptimizaciónExperimentosLAR:  factorización LU por bloques.Plataformas: IBM SP2, 

SGI Origin 2000, NoW

 Librarías básicas:  reference BLAS, machine BLAS, ATLAS

40

Rutinas con autooptimización

LU en IBM SP2

Cociente entre el tiempode ejecución con los parámetros seleccionadospor el modelo y el menortiempo de ejecuciónexperimental 

0

0,2

0,4

0,6

0,8

1

1,2

1,4

5121024

15362048

25603072

3584

SEQPAR4PAR8

41

Rutinas con autooptimizaciónLU en Origin 2000

Cociente entre el tiempode ejecución con los parámetros seleccionadospor el modelo y el menortiempo de ejecuciónexperimental

0

0,2

0,4

0,6

0,8

1

1,2

1,4

5121024

15362048

25603072

3584

SEQPAR4PAR8PAR16

42

Rutinas con autooptimizaciónLU en NoW

Cociente entre el tiempode ejecución con los parámetros seleccionadospor el modelo y el menortiempo de ejecuciónexperimental

0,96

0,98

1

1,02

1,04

1,06

1,08

1,1

512 1024 1536 2048

SEQ BLASSEQ ATLASPAR4 BLASPAR4 ATLAS

43

Modificación de la jerarquía de librerías En distintas rutinas aparecen repetidas

operaciones básicas: LU:

QR:

nkbnbkp

crp

nkT getftrsmgemmARI 2,222

,3

3

,3 31

32 +++=

pdnt

bndtT wsCOM

222 +=

r

bkn

rbkn

c

bkn

p

knT

larftgeqrtrmmgemm

ARI

,22

2,22,3

2,3

3

21

41

34

+++=

( )( ) ( )

+

++−+

++= pnb

rr

cr

rrntcrb

bntT wsCOM logloglog12

2log2log32 2

2

44

Modificación de la jerarquía de librerías

La información que se genera al instalar una rutina se puede usar para otra rutina diferente: ts y tw se obtienen cuando se instala la

librería de comunicación (MPI, PVM, … ) K3,gemm se obtiene cuando se instala la

librería computacional básica (BLAS, ATLAS, … )

45

Modificación de la jerarquía de librerías

El método debe ser válido para la librería que estamos desarrollando pero también para otras que se desarrollen en el futuro. Decidir: Tipo de experimentos Formato en que se almacenan los datos

debería decidirlo la comunidad de álgebra lineal paralela

… y podría cambiar la jerarquía de librerías clásica

46

Modificación de la jerarquía de librerías

Jerarquía clásica delibrerías paralelasde álgebra lineal

ScaLAPACK

LAPACK

BLAS

PBLAS

BLACS

Communications

47

Modificación de la jerarquía de librerías

Incluir informaciónde instalación enlos niveles másbajos de la jerarquía

ScaLAPACK

LAPACK

BLAS

PBLAS

BLACS

CommunicationsSelf­Optimisation 

Information Self­Optimisation Information

48

Modificación de la jerarquía de librerías

Al instalar libreríasen niveles superioresse puede usar lainformación previa,y se genera nuevainformación

ScaLAPACK

LAPACK

BLAS

PBLAS

BLACS

CommunicationsSelf­Optimisation 

Information

Self­Optimisation Information

Self­Optimisation Information

Self­Optimisation Information

49

Modificación de la jerarquía de librerías

Y lo mismo paraniveles mayores

ScaLAPACK

LAPACK

BLAS

PBLAS

BLACS

CommunicationsSelf­Optimisation 

Information Self­Optimisation Information

Self­Optimisation Information

Self­Optimisation Information

Self­Optimisation Information

Self­Optimisation Information

50

ScaLAPACKSelf­Optimisation 

Information

Inverse Eigenvalue ProblemLeast Square ProblemPDE SolverSelf­Optimisation 

InformationSelf­Optimisation 

InformationSelf­Optimisation 

Information

Modificación de la jerarquía de librerías

Y con nuevaslibrerías que sepuedan desarrollar

LAPACK

BLAS

PBLAS

BLACS

CommunicationsSelf­Optimisation 

Information Self­Optimisation Information

Self­Optimisation Information

Self­Optimisation Information

Self­Optimisation Information

51

Modificación de la jerarquía de librerías

Movimientode información entre rutinasen diferentes niveles de lajerarquía

GETRF from LAPACK (level 1)

GETRF_manager

k3_information

Model

GETRF { 

 }

GEMM from BLAS (level 0)

GEMM_manager

k3_information

Model

GEMM { 

 }

23

333

2 nbknkTexec +=

332 nkTexec =

52

Modificación de la jerarquía de librerías

Movimientode información entre rutinasen diferentes niveles de lajerarquía

53

Modificación de la jerarquía de librerías

Movimientode información entre rutinasen diferentes niveles de lajerarquía

54

Modificación de la jerarquía de librerías

Arquitectura deun Self OptimizedLinear AlgebraRoutine manager

SP1_information

SP1_manager

Installation_SP1_values

          AP1 .......... APz

n1      SP11,1  ....  SP1

1,z

nw     SP1w,1  ....   SP1

w,z

Current_SP1_values

      AP1 .......... APz

nc      SP1c,1  ....   SP1

c,z

SP1_information

SP1_manager

Installation_SP1_values

          AP1 .......... APz

n1      SP11,1  ....  SP1

1,z

nw     SP1w,1  ....   SP1

w,z

Current_SP1_values

      AP1 .......... APz

nc      SP1c,1  ....   SP1

c,z

   . . .

LAR(n, AP){

...}

Model

Texec = f (SP,AP, n)SP = f(AP,n)

Installation_information

n1 ... nw

AP1

...APz

Current_problem_sizenc

Current_system_informationCurrent_CPUs_availability

 %CPU1     ...   %CPUp

Current_network_availability

% net1­1 ...%net1­p

...% netP­1 ..%netp­p

SOLAR_manager

Optimum_AP AP0

SP1_information

SP1_manager

Installation_SP1_values

          AP1 .......... APz

n1      SP11,1  ....  SP1

1,z

nw     SP1w,1  ....   SP1

w,z

Current_SP1_values

      AP1 .......... APz

nc      SP1c,1  ....   SP1

c,z

SPt_information

SPt_manager

Installation_SP1_values

          AP1 .......... APz

n1      SPt1,1  ....   SPt

1,z

nw     SPtw,1  ....   SPt

w,z

Current_SP1_values

      AP1 .......... APz

nc      SPtc,1  ....   SPt

c,z

55

Polilibrerías Puede haber disponibles diferentes librerías

básicas: BLAS de referencia, específico de la máquina,

ATLAS, ... MPICH, MPI específico del sistema, PVM, ... LAPACK de referencia, específico, ... ScaLAPACK, PLAPACK, ...

⇒ usar diferentes librerías para desarrollar una polilibrería

56

PolilibreríasJerarquía clásica de librerías de álgebra lineal

ScaLAPACK

LAPACK

BLAS

PBLAS

BLACS

MPI, PVM, ...

57

PolilibreríasPosible jerarquía de polilibrerías de álgebra lineal paralela

ScaLAPACK

LAPACK PBLAS

BLACS

MPI, PVM, ...

ref. BLAS

mac. BLAS

ATLAS

58

PolilibreríasPosible jerarquía de polilibrerías de álgebra lineal paralela

ScaLAPACK

LAPACK PBLAS

BLACS

ref. BLAS

mac. BLAS

ATLASmac. MPI

LAM

MPICH

PVM

59

PolilibreríasPosible jerarquía de polilibrerías de álgebra lineal paralela

ScaLAPACKmac. LAPACK

PBLAS

BLACS

ref. BLAS

mac. BLAS

ATLASmac. MPI

LAM

MPICH

PVM

ESSL

ref. LAPACK

60

Polilibrerías

BLACS

PBLAS

ref. BLAS

mac. BLAS

ATLASmac. MPI

LAM

MPICH

PVM

mac. LAPACK

ESSL

ref. LAPACK

mac. ScaLAPACK

ESSL

ref. ScaLAPACK

61

Polilibrerías Ventajas de las polilibrerías:

Puede no haber una librería optimizada para el sistema

Pueden cambiar las características del sistema Qué librería es mejor puede variar con la rutina y el

sistema También con el tamaño del problema o la forma de

almacenamiento de los datos En sistemas heterogéneos con el procesador en que

se ejecuta la rutina

62

Polilibrerías: ArquitecturaLibrary_1

63

Polilibrerías: ArquitecturaLibrary_1

LIF_1

Installation

64

Polilibrerías: ArquitecturaLibrary_1

LIF_1

Installation

X MflopsX MflopsX Mflops80

X MflopsX MflopsX Mflops40n

X MflopsX MflopsX Mflops20

804020

m

Routine: DGEMM

65

Polilibrerías: ArquitecturaLibrary_1

LIF_1

Installation

X MflopsX MflopsX Mflops400

X MflopsX MflopsX Mflops200n

X MflopsX MflopsX Mflops100

2001001

Leading dimension

Routine: DROT

66

Polilibrerías: ArquitecturaLibrary_2Library_1

LIF_1

Installation

67

Polilibrerías: ArquitecturaLibrary_2

LIF_2

Library_1

LIF_1

Installation Installation

68

Polilibrerías: ArquitecturaLibrary_2

LIF_2

Library_3Library_1

LIF_1

Installation Installation

69

Polilibrerías: ArquitecturaLibrary_2

LIF_2

Library_3

LIF_3

Installation

Library_1

LIF_1

Installation Installation

70

Polilibrerías: Arquitectura

PolyLibrary

interface routine_1interface routine_2

...

Library_2

LIF_2

Library_3

LIF_3

Installation

Library_1

LIF_1

Installation Installation

71

Polilibrerías: Arquitectura

PolyLibrary

interface routine_1interface routine_2

...

interface routine_1 if n<value call routine_1 from Library_1 else depending on data storage call routine_1 from Library_1 or call routine_1 from Library_2 ...

Library_2

LIF_2

Library_3

LIF_3

Installation

Library_1

LIF_1

Installation Installation

72

Polilibrerías Rutinas de diferentes niveles en la jerarquía:

Nivel inferior: multiplicación GEMM Nivel medio: factorizaciones LU y QR Nivel superior:

Algoritmo Lift&Project para el problema inverso aditivo de valores propios

Algoritmo para el problema de mínimos cuadrados de matrices Toeplitz

Plataformas: SGI Origin 2000, IBM-SP2, redes de procesadores (SUN, PC+Ethernet, FastE, Myrinet)

73

Polilibrerías: experimentos GEMMRutina: GEMM (multiplicación matriz-matriz)

Plataforma: 5 SUN Ultra 1 / 1 SUN Ultra 5

Librerías:refBLAS macBLASATLAS1 ATLAS2 ATLAS5

Algoritmos y Parámetros: Strassen nivel de recursiónpor bloques tamaño de bloquemétodo directo

74

Polilibrerías: experimentos GEMMMATRIX-MATRIX MULTIPLICATION INTERFACE:if processor is SUN Ultra 5 if problem-size<600

solve using ATLAS5 and Strassen method with base size half of problem size

else if problem-size<1000solve using ATLAS5 and block method with block size 400

elsesolve using ATLAS5 and Strassen method with base size half of problem size

endifelse if processor is SUN Ultra 1 if problem-size<600 solve using ATLAS5 and direct method else if problem-size<1000

solve using ATLAS5 and Strassen method with base size half of problem size

else solve using ATLAS5 and direct method endifendif

75

Polilibrerías: experimentos GEMM

20.03ATL5

bloques400

12.53ATL2Strass

2

4.68ATL5Strass

2

1.06ATL5

directo

0.04ATL5

directo

TiempoLibreríaMétodoParámetro

Low

31.0213.504.831.060.04TiempoATLAS5Directo

26.57ATL5Strass

2

12.58ATL5Strass

2

4.68ATL5Strass

2

1.11ATL5

bloques400

0.04ATL5Strass

2

TiempoLibreríaMétodoParámetro

Mod

160014001000600200

n

76

Polilibrerías: experimentos L&P

Rutina: Lift-and-Project para el problema inverso aditivo de valores propios

Plataforma: dual Pentium III

Combinaciones de librerías:

RLAPACK de referencia y BLAS instalado que usa threadsLa_Re+B_In_Th

LAPACK de referencia y BLAS para Pentium II que usa threads

La_Re+B_II_Th

LAPACK y BLAS instalados, que usan threadsLa_In_Th+B_In_Th

LAPACK de referencia y el BLAS instaladoLa_Re+B_In

LAPACK de referencia y BLAS para PentiumIILa_Re+B_II

LAPACK de referencia y BLAS para PentiumIII La_Re+B_III

LAPACK y BLAS instaladas en el sistema y supuestamente optimizadas para él

La_In+B_In

77

Coste teórico del algoritmos secuencial:

Parámetros del sistema:ksyev LAPACK

k3, gemm k3, diaggemm BLAS-3

k1,dot k1,scal k1,axpy BLAS-1

Polilibrerías: experimentos L&P

+

++ 3

,3,32322 nkkkiter diaggemmgemmsyev

( ) 222,1

2,1,1,1 22 nLkLnkLnkkkiter sumdotaxpyscaldot ++++

78

Polilibrerías: experimentos L&P

Lowest

Lowest with threads

La_Re

La_Re

La_In_Th

Lowest no threads

La_Re

La_Re

La_Re

La_In

197.069.996.660.62165.8112.861.10

281.709.996.660.62249.5913.711.10

290.6811.9013.740.62249.5913.711.10B_In_Th

288.669.996.660.79254.3415.681.16B_II_Th

308.8012.3414.130.66266.6313.921.10B_In_Th

201.6410.4410.520.83165.8112.861.16

497.5918.03123.731.21336.4916.411.69B_In

293.8510.4410.520.86255.2015.651.16B_II

264.8910.4626.700.83210.8514.871.16B_III

294.3214.2298.790.94165.8112.861.69B_In

TOTALZKAOAMATMATMATEIGEIGENADKTRACE