Вы находитесь на странице: 1из 30

2

2curso
curso // 2
2 cuatr.
cuatr.
Arquitectura de Computadores
Grado
Grado enen
Ing.Informtica
Ing. Informtica Tema 1

Arquitecturas Paralelas: Clasificacin y


Prestaciones
Objetivos Leccin 3
AC

Distinguir entre tiempo de CPU (sistema y usuario) de


unix y tiempo de respuesta
Distinguir entre productividad y tiempo de respuesta
Obtener de forma aproximada mediante clculos el
tiempo de CPU, GFLOPS y los MIPS del cdigo ejecutado
en un ncleo de procesamiento
Explicar el concepto de ganancia en prestaciones
Aplicar la ley de Amdahl

59 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Lecciones
AC

Leccin 1. Clasificacin del paralelismo implcito en una


aplicacin
Leccin 2. Clasificacin de arquitecturas paralelas
Leccin 3. Evaluacin de prestaciones de una
arquitectura
Medidas usuales para evaluar prestaciones
Tiempo de respuesta
Productividad: MIPS, MFLOPS

Conjunto de programas de prueba (Benchmark)


Ganancia en prestaciones

60 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Bibliografa
AC

Fundamental
Secciones 1.2,1.4, 7.5.1. J. Ortega, M. Anguita, A. Prieto.
Arquitectura de Computadores, Thomson, 2005. ESIIT/C.1
ORT arq
Complementaria
T. Rauber, G. Rnder. Parallel Programming: for Multicore
and Cluster Systems. Springer 2010. Disponible en lnea
(biblioteca UGR): http://dx.doi.org/10.1007/978-3-642-
04818-0

61 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Evaluacin de prestaciones de una
arquitectura
AC

Medidas usuales para evaluar prestaciones


Tiempo de respuesta
Productividad: MIPS, MFLOPS

Conjunto de programas de prueba (Benchmark)


Ganancia en prestaciones

62 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Tiempo de respuesta de un programa en
AC
una arquitectura
Real (wall-clock time, elapsed time, real time)
$ time ./program.exe
CPU time = user + sys (no incluye todo el tiempo) elapsed 5.4
Con un flujo de control user 3.2
elapsed >= CPU time sys 1.0
Con mltiples flujos de control
elapsed < CPU time, elapsed >= CPU time/n flujos control Elapsed >=
CPU time

user 3.2 sys 1.0

Tiempo de CPU de Tiempo de CPU de sistema Tiempo asociado a las


usuario (Tiempo en (Tiempo en el nivel del kernel del esperas debidas a I/O o
ejecucin en espacio de SO) asociados a la ejecucin
usuario) de otros programas.

Comando time en Unix: 3.2u 1.0s 5.4

3.2+1.0 es el 78% del tiempo transcurrido (5.4)


63 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Algunas alternativas para obtener tiempos
AC

Notas:Funcin Fuente Tipo


Resolucin aprox.
(microsegundos)
La precisin de SYSTEM_CLOCK() depende del tipo entero
elapsed, user,
time que se use. INTEGER(8)->1s, INTEGER(2)->1ms
SO (/usr/bin/time) 10000
system

clock() SO (time.h) CPU 10000

gettimeofday() SO (sys/time.h) elapsed 1

clock_gettime()/clock_getres() SO (time.h) elapsed 0.001

omp_get_wtime()/
OpenMP (omp.h) elapsed 0.001
omp_get_wtick()

SYSTEM_CLOCK() Fortran elapsed 1

La resolucin depende de la plataforma

64 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Tiempo de CPU I
AC

Ciclos _ del _ Pr ograma


Tiempo de CPU (TCPU) Ciclos _ del _ Pr ograma TCICLO
Frecuencia _ de _ Re loj

Ciclos _ del _ Pr ograma


Ciclos por Instruccin (CPI)
Numero _ de _ Instrucciones( NI )

TCPU = NI x CPI x TCICLO


n
En el programa hay Ii instrucciones
Ciclos _ del _ Pr ograma CPI xI
i1
i i del tipo i (i=1,n)
n Cada instruccin del tipo i consume
CPI xI i i CPIi ciclos
CPI i 1
NI Hay n tipos de instrucciones distintos.
65 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Tiempo de CPU II
AC

TCPU = NI x (CPE / IPE) x Tciclo


CPI

Hay procesadores que pueden lanzar para que empiecen a


ejecutarse (emitir) varias instrucciones al mismo tiempo.
CPE: Nmero mnimo de ciclos transcurridos entre los
instantes en que el procesador puede emitir instrucciones
IPE: Instrucciones que pueden emitirse (para empezar su
ejecucin) cada vez que se produce dicha emisin.

66 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Tiempo de CPU III
AC

No segmentado
Inst. 1 IF ID EX MEM WB CPE=5 IPE=1 CPI=5

Inst. 2 5T IF ID EX MEM WB

T
Inst. 1 IF ID EX MEM WB Segmentado
Inst. 2 IF ID EX MEM WB CPE=1 IPE=1 CPI=1

Inst. 3 IF ID EX MEM WB
Inst. 4 IF ID EX MEM WB

T
Inst. 1 IF ID EX MEM WB Superescalar o VLIW
Inst. 2 IF ID EX MEM WB CPE=1 IPE=2 CPI=0.5

Inst. 3 IF ID EX MEM WB
Inst. 4 IF ID EX MEM WB
67 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Tiempo de CPU IV
AC

TCPU = (Noper/Op_instr) x CPI x Tciclo


NI

Hay procesadores que pueden codificar varias operaciones en


una instruccin.
Noper: Nmero de operaciones que realiza el programa
Op_instr: Nmero de operaciones que puede codificar una
instruccin.

68 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Tiempo de CPU V
AC

Procesador Matricial Noper=12 Op_instr=4 NI=3


UC EP1 EP2 EP3 EP4
C = A+B C[1]=A[1]+B[1] C[2]=A[2]+B[2] C[3]=A[3]+B[3] C[4]=A[4]+B[4]
F=DE F[1]=D[1]-E[1] F[2]=D[2]-E[2] F[3]=D[3]-E[3] F[4]=D[4]-E[4]
G = K*H G[1]=K[1]*H[1] G[2]=K[2]*H[2] G[3]=K[3]*H[3] G[4]=K[4]*H[4]

Flujo de Instrucciones Flujos de Datos

Procesador Vectorial Noper=12 Op_instr=4 NI=3


A[i] C[i]
Sumador
ADDV B[i] Flujos de
Datos
SUBV D[i] F[i]
Restador
MULTV E[i]
K[i] G[i]
Multiplicador
Flujo de Instrucciones H[i]

69 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Tiempo de CPU VI
AC

TCPU = NI x CPI x Tciclo

Tecnologa

Estructura y
Organizacin

Repertorio de
Instrucciones

Compilador

70 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Evaluacin de prestaciones de una
arquitectura
AC

Medidas usuales para evaluar prestaciones


Tiempo de respuesta
Productividad: MIPS, MFLOPS

Conjunto de programas de prueba (Benchmark)


Ganancia en prestaciones

71 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


MIPS
AC

MIPS: Millones de Instrucciones por segundo


NI F(frecuencia)
MIPS 6

TCPUx10 CPIx 106

Depende del repertorio de instrucciones (difcil la comparacin


de mquinas con repertorios distintos)
Puede variar con el programa (no sirve para caracterizar la
mquina)
Puede variar inversamente con las prestaciones (mayor valor de
MIPS corresponde a peores prestaciones)
MIPS (Meaningless Indication of Processor Speed)
72 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones
MFLOPS
AC

MFLOPS: Millones de operaciones en coma flotante por


segundo

Operaciones _ en _ Coma _ Flo tante


MFLOPS
TCPUx106

No es una medida adecuada para todos los programas (slo tiene en cuenta
las operaciones en coma flotante del programa)
El conjunto de operaciones en coma flotante no es constante en mquinas
diferentes y la potencia de las operaciones en coma flotante no es igual para
todas las operaciones (por ejemplo, con diferente precisin, no es igual una
suma que una multiplicacin..):
Es necesaria una normalizacin de las instrucciones en coma flotante

73 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Evaluacin de prestaciones de una
arquitectura
AC

Medidas usuales para evaluar prestaciones


Tiempo de respuesta
Productividad: MIPS, MFLOPS

Conjunto de programas de prueba (Benchmark)


Ganancia en prestaciones

74 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Benchmarks
AC

Propiedades exigidas a medidas de prestaciones:


Fiabilidad => Representativas, evaluar diferentes
componentes del sistema y reproducibles
Permitir comparar diferentes realizaciones de un sistema o
diferentes sistemas=> Aceptadas por todos los interesados
(usuarios, fabricantes, vendedores)
Interesados:
Vendedores y fabricantes de hardware o software.
Investigadores de hardware o software.
Compradores de hardware o software.

75 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Tipos de Benchmarks
AC

Tipos de Benchmark:
De bajo nivel o microbenchmark
test ping-pong, evaluacin de las operaciones con enteros o con
flotantes
Kernels
resolucin de sistemas de ecuaciones, multiplicacin de matrices,
FFT, descomposicin LU
Sintticos
Dhrystone, Whetstone
Programas reales
SPEC CPU2006: enteros (gcc, gzip, perlbmk)
Aplicaciones diseadas
Prediccin de tiempo, simulacin de terremotos.
76 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Benchmark suites I
AC

Benchmark: SPEC CPU2006


Direccin: http://www.spec.org/cpu2006/
Aplicacin: evaluacin de operaciones con enteros
(CINT2006) y con punto flotante (CFP2006) en un core
Tipo: aplicaciones reales
CINT2006: compilador gcc, compresor bzip2, planificacin de
vehculos de transporte, inteligencia artificial, anlisis de
secuencia de protenas, compresin de vdeo,
CFP2006: dinmica de fluidos, dinmica molecular, Image Ray-
tracing, progamacin lineal, reconocimiento de voz, modelado y
prediccin del tiempo atmosfrico,
Herramientas: C, C++ y Fortran
77 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Benchmark suites II
AC

Benchmark paralelo: SPEC OMP 2001 (SPEC OpenMP)


Direccin: www.spec.org/hpg/omp2001
Aplicacin: Cientfico

Estilo: variables compartidas.

Tipo: Aplicaciones diseadas. Basado en SPEC CPU2000.


Evala procesador, memoria, SO y herr. de programacin
Herramientas: OpenMP

78 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Benchmark suites III
AC

Benchmark paralelo: SPEC HPC2002


Direccin: www.specbench.org/hpc2002/
Aplicacin: Cientfico.

Estilo: Variables compartidas, paso de mensajes, y


combinacin de ambos.
Tipo: Basado en aplicaciones HPC diseadas reales. Evala
procesador, comunicacin, E/S, compilador y bibliotecas
Herramientas: Serie, OpenMP, MPI, combinacin MPI-
OpenMP.

79 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Benchmark suites VI
AC

Benchmark: TPC (Transaction Processing Performance


Council)
Direccin: www.tpc.org
Aplicacin: Procesamiento de transacciones o OLTP (TPC-C);
sistemas de soporte de decisiones o DSS (TPC-R, TPC-H);
comercio electrnico o e-commerce (TPC-W) o servidores
web y de aplicaciones (TPC-App).
Tipo: entradas software comercial (bases de datos,
servidores de informacin de Internet) y carga de trabajo
diseada

80 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Benchmark suites VII
AC

Benchmark paralelo : NPB2, NPB3 (NAS Parallel


Benchmark)
Direccin:
http://www.nas.nasa.gov/Resources/Software/npb.html
Aplicacin: Cientfico.

Estilo: paso de mensajes, variables compartidas.

Tipo: ncleos y aplicaciones diseadas.

Herramientas: NPB2 (MPI). NPB3 (OpenMP, java, HPF)

81 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Benchmark suites VIII
AC

Implementaciones de la biblioteca BLAS (Basic Linear


Algebra Subprograms)
Tipo: ncleos con operaciones del lgebra lineal:
operaciones con vectores, como producto escalar o AXPY (Alpha
X Plus Y) ,
vector-matriz, como producto matriz por vector
matriz-matriz, producto de matrices (GEMM-GEneral Matrix
Multiply)
Herramientas: hay implementaciones con diferentes
herramientas de programacin (Fortran, C, C++, OpenCL,
CUDA, ) y optimizadas para diferentes arquitecturas (Intel
x86, AMD, GPU, )
82 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
LINPACK
AC

El ncleo de este programa es una TOP500


rutina denominada DAXPY (Double Rmax: Nmero mximo de Gflops alcanzados
precision- real Alpha X Plus Y) que Rpeak: Lmite terico del sistema (en Gflops)
multiplica un vector por una constante y
los suma a otro vector. Las prestaciones
obtenidas se escalan con el valor de N
(tamao del vector):
for (i=0 ; i<N ; i++)
y[i] = alpha*x[i] + y[i];
R
Rpeak
Rmax

Rmax

N1/2 Nmax N
83 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Evaluacin de prestaciones de una
arquitectura
AC

Medidas usuales para evaluar prestaciones


Tiempo de respuesta
Productividad: MIPS, MFLOPS

Conjunto de programas de prueba (Benchmark)


Ganancia en prestaciones

84 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega


Mejora o Ganancia de Prestaciones (Speed-
up o ganancia en velocidad)
AC

Si en un computador se incrementan las prestaciones de un recurso


haciendo que su velocidad sea p veces mayor (ejemplos: se utilizan p
procesadores en lugar de uno, la ALU realiza las operaciones en un tiempo
p veces menor,..):
El incremento de velocidad que se consigue en la nueva situacin con
respecto a la previa (mquina base) se expresa mediante la ganancia de
velocidad o speed-up, Sp
T1Vp
SP
V1 Tp

V1 Velocidad de la mquina base


Vp Velocidad de la mquina mejorada (un factor p en uno de sus componentes)
T1 Tiempo de ejecucin en la mquina base
Tp Tiempo de ejecucin en la mquina mejorada
85 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones
Ley de Amdahl
AC

La mejora de velocidad, S, que se puede obtener cuando se mejora


un recurso de una mquina en un factor p est limitada por:
p
S
1 f (p 1)
donde f es la fraccin del tiempo de ejecucin en la mquina sin la
mejora durante el que no se puede aplicar esa mejora.
Ejemplo: Si un programa pasa un 25% de su tiempo de ejecucin en una mquina
realizando instrucciones de coma flotante, y se mejora la mquina haciendo que
estas instrucciones se ejecuten en la mitad de tiempo, entonces p=2; f=0.75; y
S2/(1+0.75)=1.14

Hay que mejorar el caso ms frecuente (lo que ms se usa)


Ley enunciada por Amdahl en relacin con la eficacia de los computadores paralelos: dado que en un programa hay
cdigo secuencial que no puede paralelizarse, los procesadores no se podran utilizar eficazmente. (Tema 2)
86 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega
Para ampliar
AC

Pginas Web:
http://www.top500.org
http://en.wikipedia.org/wiki/LINPACK

Artculos de Revistas:
Henning, J.L.: SPEC CPU2000: Measuring CPU Performance
in the New Millenium. IEEE Computer. Julio, 2000.
ONeal, D.: On Microprocessors, Memory Hierarchies, and
Amdahls Law.

87 Tema 1. Arquitecturas paralelas: clasificacin y prestaciones M. Anguita, J. Ortega

Вам также может понравиться