Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
www.top500.org
Velocidad de procesamiento.Benchmarks – p. 41
Ley de Moore
Velocidad de procesamiento.Benchmarks – p. 42
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
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
Green500.org
Ranking de sistemas basado en Top500, pero en relación al consumo energético.
Velocidad de procesamiento.Benchmarks – p. 47