Multiprocesadores

Transcripción

Multiprocesadores
Multiprocesadores
Jesús Labarta
CEPBA-UPC
Objetivos
n Conocer sobre multiprocesadores
l
Conceptos básicos
l
Terminología
l
Problemática
(mas allá de la culturilla de taberna)
n Experiencia práctica
l
Programación
l
Análisis del rendimiento
Jesús Labarta, MP, 2002
1
Temas
n Paralelismo y multiprocesadores
n Modelos de programación
n Herramientas
n Implementación Memoria compartida
l
Coherencia/consistencia
l
Sincronización
n Implementación paso de mensajes
n Interconexión
n Sistema Operativo
Jesús Labarta, MP, 2002
Multiprocesadores
ISU
FPU
IDU
IDU
LSU
IFU
BXU
L3 Directory/Control
n Hasta los ratones (super)
ISU
FXU
FPU
FXU
n Desde los dinosaurios
L2
LSU
L2
IFU
BXU
L2
Jesús Labarta, MP, 2002
2
Multiprocesadores
n Desde los grandes centros americanos
l
Simulación: física (nuclear), aerodinámica, biología, ...
n Pasando por la industria
l
Diseño
l
Planificación producción
l
Bases de datos
n Hasta la cocina
Jesús Labarta, MP, 2002
Multiprocesadores
n TOP 500
l
http://www.top500.org/
Jesús Labarta, MP, 2002
3
Multiprocesadores
n TOP 500
l
http://www.top500.org/
Jesús Labarta, MP, 2002
Multiprocesadores
n TOP 500
l
http://www.top500.org/
Jesús Labarta, MP, 2002
4
Multiprocesadores
n TOP 500
l
http://www.top500.org/
Jesús Labarta, MP, 2002
Multiprocesadores
n TOP 500
l
http://www.top500.org/
Jesús Labarta, MP, 2002
5
Paralelismo
n Expectativa
l
más currantes
ü menos tiempo
ü más trabajo en el mismo tiempo
… .. lineal
Jesús Labarta, MP, 2002
Paralelismo
n Realidad
l
Reparto del trabajo (balanceo)
ü A veces no hay
ü A veces se repite
l
Sobrecarga (overhead)
ü generación del trabajo
ü sincronización
n Resultado
l
El equipo rinde más que uno solo
l
No siempre de forma lineal
l
A veces mas que la suma de individualidades
Jesús Labarta, MP, 2002
6
Paralelismo: uso
n Capability computing
l
Abordar grandes problemas
ü No solo tiempo (CPUs)
ü Tambien Memoria, I/O,...
n Capacity computing:
l
Throughput. Muchos problemas
Jesús Labarta, MP, 2002
Multiprocesadores
n Que tenemos nosotros
l
SGI Origin2000:
l
ü 64 MIPS R10000
l
Cluster
ü 64 Pentiums III
ü 16 Pentiums II
IBM SP:
ü : 128 Power3
ü : 32 Power4
l
HP (compaq):
ü : 12 Alpha 21264
l
SMPs pequeño
ü 4 Pentiums
ü 4 Itaniums
ü : 16 Alpha 21264
… . no estamos en el mapa
… pero se puede hacer mucho
Jesús Labarta, MP, 2002
7
Modelos de rendimiento
n Modelo
l
Relación entre
ü parámetros del sistema
ü Indicadores de rendimiento
l
Util
ü Predecir rendimiento
– Expectativas
ü Entender funcionamiento
Si se sabe utilizar …
… mejor cuanto menos coincida con la realidad
Jesús Labarta, MP, 2002
Modelos de rendimiento
n Indicadores de rendimiento
l
Tiempo
ü Speed-up
ü Eficiencia
l
Throughput
T(p)
S(p) = T(1)/T(p)
?(p) = S(p)/p
??/T
??∈ {trabajos, iteraciones, problemas...}
n Otros indicadores
l
Calidad precio
ü MFLOP/$
ü MFLOP/Watio
ü MFLOP/m2
Jesús Labarta, MP, 2002
8
Modelos de rendimiento
n Ley de Amdahl
l
T(1) = Tseq + Tpar
l
T(P) = Tseq + Tpar/P
l
S(P) = 1/((1-f)+f/P)
ü f=Tpar/T(1)
l
fracción paralelizable del programa
Lo que no se paraleliza, no va mas rápido
… . acaba siendo el factor que limita
Jesús Labarta, MP, 2002
Speed-up: Amdahl’s Law
Scalability for different sequential fraction
1000.00
100.00
Speedup
0.995
0.99
0.95
0.9
10.00
0.8
1.00
1
2
4
8
16
32
64
128
256
512
# processors
S(p) = 1 / (1 - f + (f / p))
Jesús Labarta, MP, 2002
9
Speed-up: Overheads
Scalability for different sequential fractions. Overhead 0.05
Scalability for different sequential fractions. Overhead 0.0005
100.00
100.00
10.00
10.00
0.995
0.99
0.95
1.00
0.9
1
2
4
8
16
32
64
128
256
512
0.99
Speedup
Speedup
0.995
0.95
1.00
1
0.8
2
4
8
16
32
64
128
256
512
0.9
0.8
0.10
0.10
# processors
S(p) = 1 / (1 - f + (f / p)+o)
# processors
S(p) = 1 / (1 - f + (f / p)+o*p)
Jesús Labarta, MP, 2002
Architectures
n Shared Memory
l
SMP
l
NUMA
n Distributed Memory
n Hierarchical mix
l
SMP nodes @ Distributed memory
Jesús Labarta, MP, 2002
10
Shared Memory
n SMP (symmetric multiprocessor):
l
UMA
l
Issues
ü Interconnection network:
– Aggregated bandwidth: bus, crossbar.
– Latency
ü Cache: coherency, consistency
I/O
Memory
Interconnect
Cache
...
Processor
Jesús Labarta, MP, 2002
Distributed Shared Memory
Interconnect
Node
Memory
Network Interface
Cache
...
Processor
n Load/stores: local/remote depending on physical address
n NUMA (non-uniform memory access): remote accesses may
take 5-10 times longer
Jesús Labarta, MP, 2002
11
Distributed Shared Memory
Interconnect
Node
Memory
Network Interface
Cache
...
Processor
n Issues:
l
Interconnection network: latency, topology, bisection bandwidth
l
Cache: coherency, consistency !!
l
Locality of access
Jesús Labarta, MP, 2002
Distributed Memory
Interconnect
Node
Memory
Network Interface Controller
Cache
...
Processor
n Load/stores: local
n I/O: send/receive (local address + node addressing
mechanism)
n Private / commodity networks
Jesús Labarta, MP, 2002
12
Distributed Memory
Interconnect
Node
Memory
Network Interface Controller
Cache
...
Processor
n Issues
l
Interconnection network:
ü latency, topology, bisection bandwidth
ü Injection mechanism
n SMP nodes
Jesús Labarta, MP, 2002
Modelos de programación
n Mecanismos disponibles al programador para expresar la
estructura lógica de un programa
n Influye
l
Complejidad del programa
ü Costo de desarrollo
ü Legibilidad. Costo de mantenimiento
l
Rendimiento
ü Influenciado por el modelo
ü por la implementación del modelo
ü Por la estructura de paralelización
Jesús Labarta, MP, 2002
13
Modelos de programación
n Componentes
l
Datos
l
Procesos
l
Comunicación
l
Sincronización
l
Entrada/salida
Jesús Labarta, MP, 2002
Secuencial
Variable globales:
C
D
Variables dinámicas(locales):
Visibilidad local
Se puede pasar puntero al llamar funciones
Vida limitada
Librerias:
malloc:
Visible global
S
Problemas:
Desbordamiento pilas
Errores difíciles detectar (efecto variable y lejano)
Jesús Labarta, MP, 2002
14
Memoria compartida: espacio @
C
Variable globales:
Unica copia
D
Variables dinámicas(locales):
Acceso normal: privadas
Accesibles globalmente (pasar puntero)
Librerias:
Exclusión mutua
S1
malloc:
Visible global
Problemas:
Desbordamiento pilas
Errores difíciles detectar (efecto variable y lejano)
S2
S3
Jesús Labarta, MP, 2002
Memoria Distribuida: espacio @
C
C
C
D
D
D
Variables globales:
Replicadas: misma dirección lógica
mantener consistencia
Distribuidas: misma dirección, distinto objeto
Variables dinámicas(locales):
privadas (no posibilidad compartir)
~ mismas direcciones lógicas
S
S
S
Librerías:
Locales.
malloc: local
~ mismas direcciones lógicas
Jesús Labarta, MP, 2002
15
Modelos
n Memoria compartida
l
Pthreads
l
OpenMP
ü http://www.openmp.org
ü http://www.compunity.org
n Memoria distribuida
l
MPI
ü http://www.mpi.org
ü http://www-unix.mcs.anl.gov/mpi/
Jesús Labarta, MP, 2002
Espectro
Architecture
DM-MP
NUMA
SMP
MPI@T3E
SVM
OpenMP@O2000
shmem@T3E
OpenMP@Alphasever
Coherent SM
MPI@O2000
MPI@Sun
Non coherent SM
MP
Programming model
Jesús Labarta, MP, 2002
16
Paralelización
n Fases
l
Descomposición
l
Asignación
l
Orquestación
l
Mapeo
Algorítmico, ideas
Programación, sistema
Jesús Labarta, MP, 2002
n Aspectos básicos de programación en los distintos modelos
Jesús Labarta, MP, 2002
17
Pthreads: programación
Memoria compartida
Distribución
de cálculo
Double A(30,30)
integer i,j
Do j = 1,30
Do i =1,30
A(i,j) = 2* A(i,j)
A(i,j) = j* A(i,j)
A(i,j) = i* A(i,j)
C
D
S1
Double A(30,30)
interger thid, j
main() {
Do j = 1,30
Do thid=1,num_threads
iinf = f(thid)
isup = f(thid)
create_thread(Loops_body,iinf,isup)
}
Loop_body(iinf,isup) {
Do i =iinf,isup
A(i,j) = 2* A(i,j)
A(i,j) = j* A(i,j)
A(i,j) = i* A(i,j)
}
S2
S3
Jesús Labarta, MP, 2002
OpenMP: programación
Secuencial
Distribución
de cálculo
Double A(30,30)
integer i,j
Do j = 1,30
Do i =1,30
A(i,j) = 2* A(i,j)
A(i,j) = j* A(i,j)
A(i,j) = i* A(i,j)
C
D
S1
Double A(30,30)
interger i,j
Do j = 1,30
C$OMP PARALLEL DO
C$OMP PRIVATE (i)
Do i =1,30
A(i,j) = 2* A(i,j)
A(i,j) = j* A(i,j)
A(i,j) = i* A(i,j)
S2
S3
Jesús Labarta, MP, 2002
18
MPI: programación
Secuencial
Memoria distribuida
Distribución
de datos
Double A(30,30)
integer i,j
Do j = 1,30
Do i =1,30
A(i,j) = 2* A(i,j)
A(i,j) = j* A(i,j)
A(i,j) = i* A(i,j)
C
C
C
D
D
D
S
S
S
Double A(10,30)
myrank = quien_soy()
Do j = 1,30
Do li =1,10
i=li+myrank*10
A(li,j) = 2* A(li,j)
A(li,j) = j* A(li,j)
A(li,j) = i* A(li,j)
Jesús Labarta, MP, 2002
Economía
n Precio / rendimiento
n Costes
l
Adquisición
l
Mantenimiento
l
Espacio y consumo
l
Gestión
ü system s
Jesús Labarta, MP, 2002
19
Que se puede esperar?
Potencia (MFLOPS, MIPS)
1 Procesador
Tamaño del problema
Aceleracion
(Speedup)
Ideal
Superlineal
Paralelismo
Ley
Amdahl
Overhead
Sublineal
Numero de procesadores
Jesús Labarta, MP, 2002
Que se puede esperar?
Utilidad = F( practica, imaginación)
Utilidad
Ideal
Imaginación
Superlineal
Lineal
Discreta
Sublineal
Tiempo de
ejecución
Costo
r
do
uta
p
com
per
u
la
S
sca
ee
les
d
nib
ia
o
m
p
o
n
Dis
Eco
Numero de procesadores
Jesús Labarta, MP, 2002
Numero de
procesadores
Utilidad
la
les
sca
or
nib
e
o
tad
sp
de
i
u
p
D
a
om
mi
no
erc
o
p
Ec
Su
Costo
20
Economía
n Necesidad:
l
Usuario ≅ gas
ü PV=nRT
– P ∝ 1/ V
l
⇒ Solo si esta muy comprimido empuja de verdad
Usuario ≠ gas
– Una vez expandido es difícil volver atrás
l
Tendencias
ü COTS: procesadores, redes, software
Jesús Labarta, MP, 2002
Economía: desarrollo
n Memoria comparida
n Memoria distribuida
Sup
Sup
Effort
Effort
Jesús Labarta, MP, 2002
21
Herramientas
n Analizar una aplicación (sweep3d)
l
Secuencial
l
Paralela
n Profile
l
perfex
l
ssrun
n Traceo
l
Paraver
l
Dimemas
l
Paradyn
Jesús Labarta, MP, 2002
Herramientas
n Analizar rendimiento de aplicaciones
l
Donde están sus cuellos de botella
l
Información para optimizarla
n Fases:
l
Adquisición datos
l
Análisis
Jesús Labarta, MP, 2002
22
Adquisición de datos
n Instrumentación
l
Qué:
ü código usuario
ü librería
ü sistema
l
Quien:
ü manual
ü compilador
ü automático
l
Método:
ü traceo / muestreo (correlado con … )
ü Post-mortem / on-line
Jesús Labarta, MP, 2002
Adquisición de datos
n A tener en cuenta
l
Perturbación de la ejecución:
ü Causa: tiempo instrumentación, polución cache, almacenamiento,…
ü Minimización: implementación, soporte hardware
ü Efecto: conocerlo. Vivir con el.
l
Tamaño datos:
ü Problema almacenamiento y postproceso
ü Control de la instrumentación: manual, automático
ü Procesado on-line
– Overhead
– Reducción información
Jesús Labarta, MP, 2002
23
Análisis
n Objetivo
l
Transmitir información al usuario: maximizar
n Enfoque
l
Percepción
l
Cuantificación
n Presentación
l
Qué: magnitudes => vista
ü actividad temporal, fallos de cache, rutina, …
l
Cómo: modelo de presentación
ü Textual
ü Gráfico
ü sonoro,...
Jesús Labarta, MP, 2002
Aplicaciones
n Solver iterativo
n Radix sort
n LU
Jesús Labarta, MP, 2002
24

Documentos relacionados