velocidad de procesamiento. benchmarks

24
Velocidad de procesamiento. Benchmarks Victorio E. Sonzogni CIMEC Centro Internacional de M ´ etodos Computacionales en Ingenier´ ıa INTEC, CONICET-UNL FICH, UNL Santa Fe, Argentina Velocidad de procesamiento.Benchmarks – p. 1 Velocidad de procesamiento Tiempo CPU: El tiempo de CPU puede calcularse: CPU = NI × CPI × CCT where NI : número de instrucciones procesadas; CPI : cantidad de ciclos del reloj interno por instrucción; CCT : tiempo del ciclo de reloj (inversa del ciclo). Un reloj con 650 MHz tiene CCT =1.53 10 -9 s =1.53 ns Uno con 1000 MHz tiene CCT =1 ns. Velocidad de procesamiento.Benchmarks – p. 2

Upload: others

Post on 27-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Velocidad de procesamiento. Benchmarks

Velocidad de procesamiento.Benchmarks

Victorio E. Sonzogni

CIMEC Centro Internacional de Metodos Computacionales en Ingenierıa

INTEC, CONICET-UNL

FICH, UNL

Santa Fe, Argentina

Velocidad de procesamiento.Benchmarks – p. 1

Velocidad de procesamiento

Tiempo CPU :

El tiempo de CPU puede calcularse:

CPU = NI × CPI × CCT

whereNI : número de instrucciones procesadas;CPI : cantidad de ciclos del reloj interno porinstrucción;CCT : tiempo del ciclo de reloj (inversa del ciclo).Un reloj con 650 MHz tieneCCT = 1.53 10−9 s = 1.53 nsUno con 1000 MHz tiene CCT = 1 ns.

Velocidad de procesamiento.Benchmarks – p. 2

Page 2: Velocidad de procesamiento. Benchmarks

Velocidad de procesamiento

Tiempo transcurrido (Elapsed time):

El tiempo realmente transcurrido durante elprocesamiento.En computación tradicional importa el CPU paraevaluar el costo de computación.En computación paralela, interesa el tiempotranscurrido.Si un programa secuencial se paraleliza, el tiempo deCPU será mayor en este último caso.

Velocidad de procesamiento.Benchmarks – p. 3

Velocidad de procesamiento

MIPS:

MIPS : Millones de Instrucciones Por Segundo.

MIPS =internal clock frequency

CPI × 106

Las MIPS están asociadas al hardware. No se usa enla práctica pues tiene los siguientes inconvenientes:

el número de MIPS depende del conjunto deinstrucciones tornando difícil la comparación entremáquinas.el número de MIPS de una máquina depende delproblema dado.

Velocidad de procesamiento.Benchmarks – p. 4

Page 3: Velocidad de procesamiento. Benchmarks

Velocidad de procesamiento

FLOPS: Floating Point Operations per Second.

FLOPS = NFPU × FPC × CPS

dondeNFPU: número de unidades de punto flotante.FPC: número de FLOPS por ciclo del reloj interno.CPS: frecuencia del reloj interno, en ciclos por segundos (Hz).

Se usan las siguientes unidades:MegaFLOPS: MFLOPS = 106 FLOPS

GigaFLOPS: GFLOPS = 103MFLOPS = 109 FLOPS

TeraFLOPS: TFLOPS = 103GFLOPS = 1012 FLOPS

En general se toma una adición o una multiplicación como FLOP.Pero antes solía usarse una adición más una multiplicación comoFLOP:

Velocidad de procesamiento.Benchmarks – p. 5

Velocidad de procesamiento

Velocidad pico o velocidad teórica

Velocidad que teóricamente puede desarrollar un equipo.La velocidad de un procesador multiplicado por la cantidad de procesadores.También la que informa el vendedor.

Ejemplo:

1. El tiempo del ciclo de reloj de la CRAY YMP/8 es 6 ns. En un cycle realizauna multiplicación en punto flotante más una suma de punto flotante. Lavelocidad pico:

r∞ =Number of F.P. Oper.

time=

2

6× 10−9s= 333 MFLOPS

2. El tiempo del ciclo de reloj de SGI Origin 2200 es 3.33 ns. Realiza tambiénuna multiplicación en punto flotante más una suma de punto flotante porciclo. La velocidad pico:

r∞ =Number of F.P. Oper.

time=

2

3.33× 10−9s= 600 MFLOPS

Velocidad de procesamiento.Benchmarks – p. 6

Page 4: Velocidad de procesamiento. Benchmarks

Velocidad de procesamiento

Velocidad sostenida

Es la velocidad que una computadora puede desarrollar enuna aplicación dada.Es la de interés práctico.Depende del grado de paralelismo y de las necesidades decomunicación/sincronización entre procesadores.Difícil de medir pues depende de la aplicación.Se usan benchmarks

Velocidad de procesamiento.Benchmarks – p. 7

Velocidad de computadoras vectoriales

Los procesadores vectoriales realizan eficientementeoperaciones sobre vectores. Por ej.:

DO I=1,NC(I) = A(I)*B(I)END DO

Nomenclatura:

t1 tiempo para realizar un ciclo del DO

ns número de etapas simultáneas (longitud del vector delprocesador)

t0 startup o tiempo necesario para “llenar” el vector(pipeline)

n longitud del vector a procesar en el ciclo DO.

Velocidad de procesamiento.Benchmarks – p. 8

Page 5: Velocidad de procesamiento. Benchmarks

Velocidad de computadoras vectoriales

Dos definiciones:

Velocidad asintótica (r∞)Es la velocidad (en MFLOPS) requerida para procesarvectores muy largos (n → ∞).Caracteriza la computadora desde el punto de vistatecnológico.Depende de: ciclo de reloj interno; número de unidadesaritméticas; y velocidad de acceso a memoria.

Longitud de semi-eficacia (n 12)

Longitud de un arreglo para el cual la velocidad deprocesamiento es la mitad de la velocidad asintótica.Da una medida del grado de paralelismo de laarquitectura. Cuantas más unidades, mayor n 1

2

Mide también el costo de inicialización (startup).Velocidad de procesamiento.Benchmarks – p. 9

Velocidad de computadoras vectoriales

Tiempo requerido para procesar las operaciones sobre un arreglo lineal:

t = t0 +t1ns

n

y la velocidad de procesamiento:

r =n

t=

n

t0 +t1nsn

Para un arreglo muy largo ( n → ∞)

r∞ =ns

t1

Luego, el tiempo de procesamiento puede escribirse:

t = t0 +n

r∞(1)

Velocidad de procesamiento.Benchmarks – p. 10

Page 6: Velocidad de procesamiento. Benchmarks

Velocidad de computadoras vectoriales

Un vector de longitud n1/2será procesado en la mitad de la

velocidad asintótica1

2r∞ =

n1/2

t

introduciendo (1) se llega a n1/2= r∞t0

y el tiempo de inicialización (startup) t0 =n1/2

r∞

Para un vector de long. N el tiempo: t = t0 +Nr∞

y la velocidad de procesamiento:

rN =N

t=

N

t0 +Nr∞

=r∞

n1/2

N + 1

Velocidad de procesamiento.Benchmarks – p. 11

Velocidad de computadoras vectoriales

✲✟✟✟✟✟✟✟✟✟✟✟✟✟✟✟

−n1/2n

t0

t

1r∞

Tiempo de procesamiento para arreglos de diferentes longitudes

Velocidad de procesamiento.Benchmarks – p. 12

Page 7: Velocidad de procesamiento. Benchmarks

Velocidad de computadoras vectoriales

Tiempo medido en operaciones s/vectores en comp. vectoriales. (a) prod. (CRAY X-MP/22);

(b) prod.+suma (CRAY X-MP/22); (c) SAXPY (αX + Y ) (CYBER 205)

Velocidad de procesamiento.Benchmarks – p. 13

Velocidad de computadoras vectoriales

Tiempo de procesamiento medido en una CDC CYBER 203 para multiplicar dos vectores.

n1/2= 100 y r∞ = 100 MFLOPS. [Dongarra et al., 1991]

Velocidad de procesamiento.Benchmarks – p. 14

Page 8: Velocidad de procesamiento. Benchmarks

Velocidad de computadoras paralelas

Una computadora con p procesadores, introduciendo

a tiempo de inicio (startup)

b Tiempo para procesar un ciclo del DO

el tiempo de procesamiento:

t = a + b

[(n

p

)+ j

]

donde

j =

0 if

(np

)integer

1 if(np

)not integer

Velocidad de procesamiento.Benchmarks – p. 15

Velocidad de computadoras paralelas

−n1/2n

a+ b

t

1r∞

p 2p 3p 4p

b

✟✟✟✟✟✟✟✟✟✟✟✟✟✟✟✟✟✟✟✟

Tiempo de procesamiento para diferentes longitudes de los arreglos, en computadora paralela

Velocidad de procesamiento.Benchmarks – p. 16

Page 9: Velocidad de procesamiento. Benchmarks

Velocidad de computadoras paralelas

Para n → ∞ la velocidad asintótica es:

r∞ =p

b

La longitud de semi-eficacia:

n1/2= a

p

b+

p

2= a r∞ +

p

2

Si el número de unidades paralelas de cálculo p aumenta(manteniendo b constante) r∞ aumente y n1/2

aumentatambién ya que el tiempo de inicialización a aumenta alhaber más procesadores a sincronizar.

Velocidad de procesamiento.Benchmarks – p. 17

Benchmarks

Como la velocidad sostenida depende del programa que seesté corriendo, a los efectos de comparar las computadorasse establecen programs de prueba o benchmarks.Los hay de distintos tipos que pueden agruparse en:

Microbenchmarks

Construcciones de bajo nivel

Kernels y aplicaciones compactas

Programas de aplicación completos

Velocidad de procesamiento.Benchmarks – p. 18

Page 10: Velocidad de procesamiento. Benchmarks

Benchmarks

Microbenchmarks

Sirven para evaluar aspectos de la arquitectura de lascomputadoras (hardware). Son herramientas de programasmuy simples para evaluar:

velocidad pico de procesadores

acceso a la memoria (en distintos niveles)

comunicación entre procesadores (enmultiprocesamiento)

desempeño de sistemas I/O

Velocidad de procesamiento.Benchmarks – p. 19

Benchmarks

Construcciones de bajo nivel

Programas simples para evaluar la ejecución de ciclos DO.Permiten probar:

eficiencia del compilador

alocación de memoria

desarrollado (unrolling ) de ciclos

etc.

Velocidad de procesamiento.Benchmarks – p. 20

Page 11: Velocidad de procesamiento. Benchmarks

Benchmarks

Kernels y aplicaciones compactas

Actúan a nivel de subrutinas. Estan basados en subrutinaso librerías.

prueban varios aspectos del sistema (comunicación,cálculo)

son fáciles de analizar.

afectados por el compilador y la implementación

Velocidad de procesamiento.Benchmarks – p. 21

Benchmarks

Programas completos de aplicación

Prueban casos de la “vida real”.

son difíciles de mantener.

prueban todo el sistema.

Velocidad de procesamiento.Benchmarks – p. 22

Page 12: Velocidad de procesamiento. Benchmarks

Benchmarks

NAS Kernels (D.Bailey and J. Barton, NASA-Ames, 1984)7 tests intensivos, representativos de cálculos científicos en mecánica.

Son codigos Fortran, de 64 bits, incluyendo vectorización y paralelización:

MxM: multiplicaciones de matrices

CFFT2D: Fast Fourier Transform compleja en 2D

CHOLSKY: Solución de SEAL por descomposición de Cholesky

BTRIX: Solución por bloques de sistemas tridiagonales

GMTRY: Solución de SEAL por eliminación de Gauss

EMIT: Emisión de vórtices, cálculo de presiones y fuerzas

VPENTA: Solución de sistemas pentadiagonales

Estos kernels permiten probar sistemas paralelos de grano grueso. Otrosgrupos de programas se desarrollaron para computadoras masivamenteparalelas.

Velocidad de procesamiento.Benchmarks – p. 23

Benchmarks

Livermore Fortran Kernels (F.H. McMahon, LawrenceLivermore National Lab., 1986)

Formado por 24 fragmentos de codigos Fortran de diferentes programas.Usan 3 longitudes de vectores (DO de Fortran): 19 (corto), 90 (medio) y470 (largo), obteniendo 72 resultados. Realiza estadísticas sobre ellos.

la media armónica corresponde a un código paralelizable en un 40%

la media geométrica corresponde a un código paralelizable en un70%

la media aritmética corresponde a un código paralelizable en un 90%

Un hecho interesante es que están tomado de aplicaciones reales.

Velocidad de procesamiento.Benchmarks – p. 24

Page 13: Velocidad de procesamiento. Benchmarks

Benchmarks

PERFECT Benchmarks

PERFECT (PERFormance Evaluation by Cost-effective Transformations)BenchmarksDesarrollado en los 1980’s, incluye 13 programas Fortran’77 (>100000líneas de código), cada uno resolviendo un problema real. Entre ellos:dinámica de fluidos; dinámica molecular; dinámica estructural; flujotransónico; migración sísmica; tratamiento de señales; cromodinámicacuántica; meteorología, etc.No se utilizan más. Difíciles de aplicar.

Velocidad de procesamiento.Benchmarks – p. 25

Benchmarks

SLALOM (J.L. Gustafson, Ames Lab., 1990)

SLALOM (Scalable, Language-independent, AmesLaboratory, One-minute Measurement)Mide el tamaño del problema que puede resolverse en unminuto.Permite comparar un amplio espectro de equipos.

Velocidad de procesamiento.Benchmarks – p. 26

Page 14: Velocidad de procesamiento. Benchmarks

Benchmarks

Linpack Benchmark (J. Dongarra, Oak Ridge National Lab., 1992)

Está basado en la librería Linpack, que son subrutinas para álgebra lineal.El Linpack Benchmark usa dos subrutinas Linpack:

DGEFA: que hace descomposición LU, con pivoteado parcial, enprecisión doble (O(n3) flops)DGESL: que usa descomposición LU para resolver un sistema linealen precisión doble (O(n2) flops)

Estas subrutinas, a su vez usan tres subrutinas de la biblioteca BLAS(Basic Linear Algebra Subprograms):

IDAMAX; DSCAL y DAXPY

DGEFA y DGESL pueden ser remplazadas por sus versiones en simpleprecisión SFEGA y SGESL.

Velocidad de procesamiento.Benchmarks – p. 27

Benchmarks

Linpack Benchmark

Modelo para velocidad asintótica

Este benchmark realiza 23n

3 + n2 +O(n) op. p/ matrices de orden n.El tiempo de procesamiento tiene la forma: c3n3 + c2n

2 + c1n, luego:

rn =23n

3 + n2 +O(n)

c3n3 + c2n2 + c1n

Realizando varias medidas, variando n, ajustando con mínimoscuadrados se pueden determinar los coeficientes: c1, c2, y c3.La velocidad asintótica (para n → ∞) :

r∞ =2

3c3

Y la long. semieficacia: n1/2≃ c2

c3

Velocidad de procesamiento.Benchmarks – p. 28

Page 15: Velocidad de procesamiento. Benchmarks

Benchmarks

Linpack BenchmarkMediciones con Linpack

Se mantiene un reporte de mediciones Linpack en varias computadoras. Se obtienenresultados para dos tamaños de matrices: 100× 100 y 1000× 1000, y ambas en simple (32bits) y doble (64 bits) precisión. Las reglas son que el test para 100× 100 debe sercompilado y ejecutado tal como está. Para el de 1000× 1000 el usuario puede modificar elprograma para optimizarlo en la plataforma particular en que se corre.Para sistemas MPP, el tamaño del problema es variable. La regla cambia. El sistema sepuede resolver por cualquier método Se mide el tiempo y la cantidad de operaciones seestiman como: 2

3n3 + n2. Se informa:

rmax : velocidad para el máximo problema resueltonmax : tamaño del máximo problema resuelton1/2

: tamaño para el cual la veloc. es 1/2r∞

rpeak : velocidad teórica

Velocidad de procesamiento.Benchmarks – p. 29

Benchmarks

HINT (J.L. Gustafson and Q.O. Snell, 1995)

HINT (Hierarchical INTegration) no fija el tamaño delproblema ni el tiempo.

Usa una medida de calidad de la solución por tiempo;QUIPS (QUality Improvement Per Second).

Mide las Quips para un rango de tiempo.

Mide no sólo la velocidad de procesamiento delprocesador sino también el acceso a memoria.

Realiza la integración de la función (1−x)(1+x) en el intervalo

[0,1], por subdivisiones sucesivas del intervalo.

Velocidad de procesamiento.Benchmarks – p. 30

Page 16: Velocidad de procesamiento. Benchmarks

Benchmarks

HINT (J.L. Gustafson and Q.O. Snell, 1995)

Velocidad de procesamiento.Benchmarks – p. 31

Benchmarks

HINT (J.L. Gustafson and Q.O. Snell, 1995)

Velocidad de procesamiento.Benchmarks – p. 32

Page 17: Velocidad de procesamiento. Benchmarks

Benchmarks

SPECmark

Es un valor comunmente usado por los vendedores decomputadoras.

Es la relación entre la velocidad media paraoperaciones de punto flotante en una máquina dada, yla misma velocidad en la vieja VAX 11/780, en unconjunto de programas.

Velocidad de procesamiento.Benchmarks – p. 33

Benchmarks

CPU-rate (R.G. Brown, Duke Univ.)

El autor aclara que esta medida no está pensada parausar como benchmark.

Realiza operaciones en arreglos de varios tamaños.

Una medida de velocidad (Bogomflops) se representacomo función del tamaño del problema.

Como ocurre con el benchmark HINT, el CPU-ratemuestra una caída en la velocidad cuando el tamañoexcede la capacidad de las diferentes jerarquías dememoria (registros, cache, main).

Velocidad de procesamiento.Benchmarks – p. 34

Page 18: Velocidad de procesamiento. Benchmarks

Benchmarks

CPU-rate (R.G. Brown, Duke Univ.)

Velocidad de procesamiento.Benchmarks – p. 35

Algunas reglas de desarrollo del hardware

Se han propuesto diversas reglas para la evolución delhardware.

Regla de Amdahl/CaseUn sistema es equilibrado si posee

∼ 1MB de memoriay

∼ 1Mbit/s de velocidad de acceso,for cada

MIPS de velocidad de procesamiento.

Velocidad de procesamiento.Benchmarks – p. 36

Page 19: Velocidad de procesamiento. Benchmarks

Regla de Amdahl-Case

(a) ILLIAC IV (b) CM-5

Diagrama de Kiviat para: (a) Illiac IV;(b) CM-5(ambos en diferentes escalas)

Velocidad de procesamiento.Benchmarks – p. 37

Algunas reglas de desarrollo del hardware

Regla de Moore

La densidad de transistores en los chips delmicroprocesador crece ∼ 60% por año y se duplicacada 1, 5 años.

Regla del crecimiento de disco

La densidad de discos crece ∼ 25% cada año y seduplica cada 3 años.

Velocidad de procesamiento.Benchmarks – p. 38

Page 20: Velocidad de procesamiento. Benchmarks

Algunas reglas de desarrollo del hardware

Regla de consumo de direccionamiento

La memoria que necesita un programa medio seincrementa por un factor 1,5 a 2 por año, y requiere-portanto- entre 0,5 y 1 bit suplementario dedireccionamiento.

Ley de Grosch

La velocidad de las computadoras es proporcional alcuadrado de su costo.Esta ley, de 1975, podría aplicarse dentro de una clasede computadoras, pero no a diferentes clases.

Velocidad de procesamiento.Benchmarks – p. 39

Algunas reglas de desarrollo del hardware

Regla de MinskyLa velocidad de un programa sobre una computadoraparalela crece con el logaritmo del número deprocesadores.(esta regla tampoco es válida)

Regla de crecimiento de MIPS (Ley de Bill Joy) :

MIPS = 2(year−1985)

en 1985, la VAX 11/780 : 1 MIPS

Velocidad de procesamiento.Benchmarks – p. 40

Page 21: Velocidad de procesamiento. Benchmarks

www.top500.org

Velocidad de procesamiento.Benchmarks – p. 41

Ley de Moore

Velocidad de procesamiento.Benchmarks – p. 42

Page 22: Velocidad de procesamiento. Benchmarks

Evolución de la potencia de cálculo

Velocidad de procesamiento.Benchmarks – p. 43

Evolución de la capacidad de discos

Velocidad de procesamiento.Benchmarks – p. 44

Page 23: Velocidad de procesamiento. Benchmarks

Proyección de crecimiento s/Top500

Velocidad de procesamiento.Benchmarks – p. 45

Arquitecturas en el Top500

• Vector (Cray Y-MP and X1, NEC SX etc.)• SIMD (CM-2 etc.)• MPP (Cray T3E and XT3, IBM SP etc.)• Scalar SMPs and Constellations (Cluster of big SMPs)• Clusters• BG/L - BG/P (Blue Gene) Power-efficient systems

Velocidad de procesamiento.Benchmarks – p. 46

Page 24: Velocidad de procesamiento. Benchmarks

Green500.org

Ranking de sistemas basado en Top500, pero en relación al consumo energético.

Velocidad de procesamiento.Benchmarks – p. 47