Tema 5: Multiprocesadores

Anuncio
7HPD0XOWLSURFHVDGRUHV
•2EMHWLYRV
•5HIHUHQFLDV
•,QWURGXFFLyQ
•$UTXLWHFWXUDVFHQWUDOL]DGDVGHPHPRULDFRPSDUWLGD
•$UTXLWHFWXUDVGLVWULEXLGDVGHPHPRULDFRPSDUWLGD
•6LQFURQL]DFLyQ
•0XOWLFRPSXWDGRUHV
1
Procesadores vectoriales
Objetivos
2EMHWLYRV
•&RQRFHUODVGLVWLQWDVPDQHUDVGHRUJDQL]DUXQVLVWHPD
FRQP~OWLSOHVSURFHVDGRUHV\VXVFDUDFWHUtVWLFDV
GLIHUHQFLDGRUDV
•&RPSUHQGHUORVSUREOHPDVTXHSODQWHDODFRPSDUWLFLyQ
GHGDWRV\VXVSRVLEOHVVROXFLRQHV
2
1
Procesadores vectoriales
Referencias
5HIHUHQFLDV
•3DUDPiTXLQDVGHPHPRULDFRPSDUWLGDHO+HQQHVV\3DWWHUVRQ
HGLFLyQPXFKDVILJXUDV\HMHPSORVHVWiQWRPDGDVGHpO
•/DLQIRUPDFLyQVREUHODFRKHUHQFLDSRUGLUHFWRULRVOD
VLQFURQL]DFLyQ\ORV PXOWLFRPSXWDGRUHV HVWiVDFDGDGHO
.DL+ZDQJ$GYDQFHG&RPSXWHU$UFKLWHFWXUH
3
Multiprocesadores
Introducción
7LSRVGHPXOWLSURFHVDGRUHV
•$UTXLWHFWXUDVFHQWUDOL]DGDVGHPHPRULDFRPSDUWLGD
•$UTXLWHFWXUDVGHPHPRULDGLVWULEXLGD
–con memoria compartida
–con memoria privada (multicomputadores)
⇒Las máquinas con memoria compartida tienen un único mapa
de memoria común a todos los procesadores. Esta memoria puede
estar centralizada o repartida (distribuida) entre los procesadores.
⇒Las máquinas con memoria privada tienen un mapa de memoria
por cada procesador. Esta memoria está distribuida (cada
procesador tiene la suya)
4
2
Multiprocesadores
Introducción
$UTXLWHFWXUDFHQWUDOL]DGDGHPHPRULDFRPSDUWLGD
Procesador
Procesador
Procesador
Procesador
caché
caché
caché
caché
bus
Memoria
E/S
5
Multiprocesadores
Introducción
$UTXLWHFWXUDGHPHPRULDGLVWULEXLGD
red de interconexión
mem
e/s
mem
e/s
mem
e/s
mem
e/s
caché
caché
caché
caché
Procesador
Procesador
Procesador
Procesador
nodo
nodo
nodo
nodo
6
3
Multiprocesadores
Introducción
&RPXQLFDFLyQHQPXOWLSURFHVDGRUHV
6LODPHPRULDHVFRPSDUWLGD
•Si es centralizada: todos los accesos se hacen a través del
bus, y tardan más o menos lo mismo
=>UMA (‘8QLIRUP0HPRU\ $FFHVV¶).
•Si es distribuida: los accesos se realizan a la memoria local
o a memoria remota, según el dato. Los accesos remotos
tardan más que los locales.
=> NUMA (‘1RQ8QLIRUP0HPRU\$FFHVV¶).
6LODPHPRULDHVSULYDGD
•Como los mapas de memoria son sólo locales, la
comunicación es por medio de paso de mensajes.
7
Multiprocesadores
Introducción
&RPXQLFDFLyQHQPXOWLSURFHVDGRUHV,,
9HQWDMDVGHODPHPRULDFRPSDUWLGD
•Está más estudiada.
•Sencillez de programación.
•Poco recargo de comunicación, mejor aprovechamiento del
ancho de banda en datos pequeños.
•Posibilidad de usar cachés (mejor tiempo medio de acceso y
•menor flujo de datos en la red).
9HQWDMDVGHODPHPRULDSULYDGD
•Sencillez del hardware
•La comunicación es explícita (no es transparente) =>se ve
claro lo que cuesta tiempo y lo que no.
8
4
Multiprocesadores
Arquitecturas centralizadas de memoria compartida
$UTXLWHFWXUDVFHQWUDOL]DGDVGHPHPRULDFRPSDUWLGD
•Son máquinas que constan de varios procesadores (típicamente
un número pequeño).
•Como son pocos, la comunicación a través de un bus es económica
y eficiente.
•Cada procesador puede tener una memoria caché para reducir la
cantidad de datos que viajan por el bus.
•La comunicación entre procesadores es a través de variables
compartidas y zonas de memoria comunes
9
Multiprocesadores
Arquitecturas centralizadas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDFHQWUDOL]DGD
(OSUREOHPDGHODFRKHUHQFLD
•Los procesadores del sistema guardan en caché los datos
con los que trabajan.
•Los datos se dividen en:
–privados: sólo los necesita un procesador.
–compartidos: los necesitan varios procesadores.
•Los datos compartidos son, por lo tanto, utilizados por
varios procesadores.
•El problema surge cuando un procesador modifica datos
que otros tienen en sus cachés.
10
5
Multiprocesadores
Arquitecturas centralizadas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDFHQWUDOL]DGD,,
(MHPSOR
•el dato X (valor inicial 0) es compartido
•el procesador A carga el dato X (0) en su caché
•el procesador B carga el dato X (0) en su caché
•el procesador A modifica el dato X (toma el valor 1)
•el procesador B lee el dato X (0, valor que había cargado en
su caché
El problema de utilizar cachés es que los datos pueden no ser
coherentes (tener el mismo valor en todas las cachés)
11
Multiprocesadores
Arquitecturas centralizadas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDFHQWUDOL]DGD,,,
En un sistema de memoria centralizada, se suele usar la técnica
de ‘VQRRSLQJ’ (fisgonear).
Las cachés observan las transmisiones que se realizan en el bus,
para saber cuándo alguna de las otras cargue una línea que tienen
ellas.
En el caso de que una de las cachés que tiene una copia de una
línea compartida la modifique, es necesario que el resto se entere
(porque sus versiones se han quedado anticuadas).
12
6
Multiprocesadores
Arquitecturas centralizadas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDFHQWUDOL]DGD,9
([LVWHQGRVPDQHUDVGHQRWLILFDUODVPRGLILFDFLRQHVHQODVOtQHDV
3URWRFRORGHLQYDOLGDFLyQSRUHVFULWXUDµZULWHLQYDOLGDWH
SURWRFRO¶
Cuando un procesador realiza una escritura en una línea,
esta acción invalida las copias de esa línea en las otras
cachés.
3URWRFRORGHDFWXDOL]DFLyQHQHVFULWXUDµZULWHXSGDWHSURWRFRO¶
RµZULWHEURDGFDVWSURWRFRO¶
Cuando un procesador realiza una escritura en una línea,
envía la nueva versión a las otras cachés.
13
Multiprocesadores
Arquitecturas centralizadas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDFHQWUDOL]DGD9
'LIHUHQFLDVHQWUHDPEDVRSFLRQHV
•Modificaciones sucesivas de un dato provocan el
correspondiente envío de líneas a través del bus si se usa el
protocolo de actualización. Si no hay lecturas entre medias,
el protocolo de invalidación no supone tráfico adicional.
•Modificaciones de varios datos en una misma línea suponen
otros tantos envíos con actualización, por una única recarga
por invalidación.
•La invalidación de una línea puede provocar retardos, ya que
el fallo de lectura en la caché destino se detecta (por la
invalidación) en el momento de realizar el acceso. Con
14
actualización no se produce el fallo.
7
Multiprocesadores
Arquitecturas distribuidas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDGLVWULEXLGD
En una máquina de memoria distribuida un nodo no puede
observar todas las transferencias entre los restantes nodos (en
general, la topología de la red no se lo va a permitir).
Por ello, si la memoria está distribuida se suele utilizar el protocolo
de directorios.
En este protocolo, existe una estructura de datos, el directorio, que
contiene información sobre el estado de cada bloque.
Esta estructura también puede estar distribuida.
15
Multiprocesadores
Arquitecturas distribuidas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDGLVWULEXLGD,,
•(OSURWRFRORGHGLUHFWRULRVQHFHVLWDTXHGHFDGDEORTXHGH
PHPRULDVHWHQJDODVLJXLHQWHLQIRUPDFLyQ
–(VWDGRGHOEORTXH si está sin usar, usado por un único
procesador, compartido entre varios, etc.
–3URFHVDGRUHVTXHWLHQHQHOEORTXHHQVXFDFKp para poderles
avisar en caso de modificaciones o invalidaciones.
•&RPRHOWDPDxRGHOGLUHFWRULRSXHGHOOHJDUDVHUPX\JUDQGH
VHVXHOHHQFRQWUDUGLVWULEXLGR&DGDPyGXORGHPHPRULDWLHQH
ODLQIRUPDFLyQGHORVEORTXHVTXHHVWiQXELFDGRVHQpO
•6HJ~QODFDQWLGDGGHLQIRUPDFLyQTXHVHDOPDFHQHHQHO
GLUHFWRULRH[LVWHQWUHVWLSRVGHSURWRFRORVGHGLUHFWRULRV
FRPSOHWRVOLPLWDGRV \HQFDGHQDGRV
16
8
Multiprocesadores
Arquitecturas distribuidas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDGLVWULEXLGD,,,
3URWRFRORVGHGLUHFWRULRVFRPSOHWRV
•(QHVWHSURWRFRORFDGDPyGXORGHPHPRULDWLHQHHOGLUHFWRULR
GHORVEORTXHVTXHFRQWLHQH
•3DUDFDGDEORTXHODHQWUDGDGHOGLUHFWRULRFRQWLHQH
–un bit por cada procesador en el sistema
–un bit de ‘sucio’, para escrituras
•$GHPiVODVFDFKpVWLHQHQELWVSRUEORTXH
–uno para indicar si el bloque es válido
–otro para indicar si se puede escribir en él
17
Multiprocesadores
Arquitecturas distribuidas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDGLVWULEXLGD,9
3URWRFRORVGHGLUHFWRULRVFRPSOHWRV,,
•&XDQGRXQSURFHVDGRUSLGHXQDFRSLDGHOEORTXHVHOHHQYtD\
VHDFWLYDVXELWFRUUHVSRQGLHQWH
•&XDQGRXQSURFHVDGRUSLGHXQDHVFULWXUDDOEORTXHVHERUUDQ
ORVELWVGHORVRWURVSURFHVDGRUHV\VHOHVDYLVD\VHDFWLYD
HOELWGHVXFLR
•(OELWGHVXFLR³GDSHUPLVR´RQRSDUDUHDOL]DUXQDHVFULWXUD
•&RQHOELWGHVXFLRDFWLYDGRVyORXQRGHORVELWVGHORV
SURFHVDGRUHVSXHGHHVWDUDFWLYDGR
18
9
Multiprocesadores
Arquitecturas distribuidas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDGLVWULEXLGD9,
3URWRFRORVGHGLUHFWRULRVOLPLWDGRV
•'HQXHYRFDGDPyGXORWLHQHHOGLUHFWRULRGHVXVEORTXHV
•3HURDKRUDFDGDHQWUDGDQRWLHQHXQELWSRUFDGDSURFHVDGRU
VyORSXHGHQWHQHUXQDFRSLDGHFDGDEORTXHXQQ~PHUROLPLWDGR
SGHSURFHVDGRUHV
•3DUDHOORFDGDHQWUDGDWLHQHHVSDFLRSDUDS LGHQWLILFDGRUHV
•6LOOHJDXQDSHWLFLyQGHOHFWXUD\WRGRVORVHVSDFLRVHVWiQRFXSDGRV
VHHOLPLQDXQR\VHDYLVDDOSURFHVDGRU(VXQPHFDQLVPR
SDUHFLGRDOGHXQDFDFKpDVRFLDWLYDSRUFRQMXQWRV
19
Multiprocesadores
Arquitecturas distribuidas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDGLVWULEXLGD9,,
3URWRFRORVGHGLUHFWRULRVHQFDGHQDGRV
•(QHVWHHVTXHPDODOLVWDGHORVSURFHVDGRUHVTXHWLHQHQXQD
FRSLDGHXQEORTXHHVWiGLVWULEXLGDHQWUHODVFDFKpV
•(OPyGXORGHPHPRULDTXHSRVHHHOEORTXHWLHQHORVGDWRV\HO
LQLFLRGHODOLVWDGHSXQWHURVDSURFHVDGRUHV
•&DGDSURFHVDGRUTXHSLGHXQDFRSLDGHOEORTXHUHFLEHHO
SXQWHURDODOLVWDHQVXHVWDGRDFWXDO
•(OPyGXORGHPHPRULDVHTXHGDFRQODGLUHFFLyQGHOSURFHVDGRU
TXHSLGHHOEORTXHTXHHVHOQXHYRLQLFLRGHODOLVWD
20
10
Multiprocesadores
Arquitecturas distribuidas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDGLVWULEXLGD9,,,
&RPSDUDFLyQGHORVWUHVSURWRFRORVGHGLUHFWRULRV
•(OSURWRFRORGHGLUHFWRULRFRPSOHWRWLHQHWRGDODLQIRUPDFLyQ
FHQWUDOL]DGDORTXHKDFHHILFLHQWHVXJHVWLyQ
–Añadir o eliminar procesadores a la lista es activar o desactivar
un bit.
–Pero requiere espacio para todos los procesadores en cada una de
las entradas (y la mayoría de los bits va a estar a 0 casi siempre).
•(OSURWRFROROLPLWDGRWDPELpQWLHQHODLQIRUPDFLyQFHQWUDOL]DGD
–Añadir y eliminar procesadores a la lista es sencillo.
–Puede haber dificultades si el número de espacios para
identificadores es pequeño.
21
Multiprocesadores
Arquitecturas distribuidas de memoria compartida
&RKHUHQFLDGHFDFKpHQPHPRULDGLVWULEXLGD9,,,
&RPSDUDFLyQGHORVWUHVSURWRFRORVGHGLUHFWRULRV,,
•(OSURWRFRORGHGLUHFWRULRVHQFDGHQDGRVWLHQHODLQIRUPDFLyQ
GLVWULEXLGD
–El espacio que ocupa la lista es proporcional al número de
procesadores que tiene una copia del bloque.
–Añadir y eliminar procesadores es un proceso largo.
22
11
Multiprocesadores
Sincronización
6LQFURQL]DFLyQ
•(VXQDIRUPDHVSHFLDOGHFRPXQLFDFLyQHQODTXHVHLQWHUFDPELD
LQIRUPDFLyQGHFRQWUROHQOXJDUGHGDWRV
•6HXWLOL]DSDUDFRQVHJXLUHOVHFXHQFLDPLHQWRFRUUHFWRGHORV
SURFHVRV\ORVSURFHVDGRUHV
•7DPELpQSHUPLWHHODFFHVRFRUUHFWRFRQH[FOXVLyQPXWXDDORV
GDWRVFRPSDUWLGRV
•1RHVXQDVXQWRH[FOXVLYRGHORVPXOWLSURFHVDGRUHV7DPELpQVH
WUDWDHQHOGLVHxRGHORVVLVWHPDVRSHUDWLYRV
23
Multiprocesadores
Sincronización
6LQFURQL]DFLyQ,,
•/RVPHFDQLVPRVTXHVHXWLOL]DQSXHGHQVHUVRIWZDUHGHQWURGHO
62RHQHOOHQJXDMHGHSURJUDPDFLyQRKDUGZDUH
•0HFDQLVPRVVRIWZDUHVRQORVVHPiIRURVRORVPRQLWRUHV
•0HFDQLVPRVKDUGZDUHVRQODVRSHUDFLRQHVDWyPLFDVGH
OHFWXUDHVFULWXUDRGHOHFWXUDPRGLILFDFLyQHVFULWXUDSULPLWLYDV
•(MHPSORODLQVWUXFFLyQWHVWVHWUHVHW
–OHHXQDYDULDEOH\FRPSUXHEDVLVXYDORUHV
–PLHQWUDVHOYDORUQRVHDVHTXHGDDKt
–FXDQGRHOYDORUVHDORYXHOYHDSRQHUD\FRQWLQ~DOD
HMHFXFLyQ
24
12
Multiprocesadores
Multicomputadores
0XOWLFRPSXWDGRUHV
•6RQXQWLSRHVSHFLDOGHVLVWHPDVFRQP~OWLSOHVSURFHVDGRUHV/DV
FDUDFWHUtVWLFDVTXHOHVGLVWLQJXHQVRQ
–la memoria es privada (es decir, cada procesador tiene un mapa
de direcciones propio que no es accesible directamente a los
demás)
–la comunicación entre procesadores es por paso de mensajes
a través de una red de interconexión.
•(QXQ PXOWLFRPSXWDGRUFDGDQRGRHVXQDFRPSXWDGRUDFOiVLFD
•/RVQRGRVFRODERUDQSDUDUHVROYHUMXQWRVXQPLVPRSUREOHPD
HMHFXWDUODPLVPDDSOLFDFLyQ
•/D FRPSDUWLFLyQ GHGDWRVHVH[SOtFLWD\DTXHHODFFHVRDGDWRV
FRPXQHVHVSRUSDVRGHPHQVDMHV
25
Multiprocesadores
Multicomputadores
0XOWLFRPSXWDGRUHV,,
Mem
Mem
Mem
Proc
Proc
Proc
Mem Proc
Proc Mem
Red de interconexión de
paso de mensajes
Mem Proc
Proc Mem
Mem
Mem
Mem
Proc
Proc
Proc
0RGHORJHQpULFRGHXQPXOWLFRPSXWDGRU
26
Figura tomada del Kai Hwang: $GYDQFHG&RPSXWHU$UFKLWHFWXUH
13
Descargar