Prof. Gilberto Díaz [email protected] Departamento de...
Transcript of Prof. Gilberto Díaz [email protected] Departamento de...
Universisdad de Los AndesFacultad de IngenieríaEscuela de Sistemas
Introducción a los sistemas deMultiprocesamiento
Prof. Gilberto Dí[email protected]
Departamento de Computación, Escuela de Sistemas, Facultad de IngenieríaUniversidad de Los Andes, Mérida 5101 Venezuela
Arquitectura de Von Neumann
El procesador ejecuta un programa que especifica una secuencia de lecturas y escrituras sobre la memoria
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Sistemas multiprocesamiento
CPUCPU
fetchfetch
executeexecute
MemoriaRAM
Arquitectura de Von Neumann
La memoria es utilizada para almacenar tanto el programa como los datosEl programa son datos codificados que indican al procesador qué hacer
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Sistemas multiprocesamiento
fetchfetch
executeexecute
MemoriaRAM
MemoriaRAM CPUCPU
Arquitectura de Von Neumann
Los datos es la información utilizada por el programaEl procesador obtiene las instrucciones y los datos de la memoria, decodifica las instrucciones y las ejecuta secuencialmente
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Sistemas multiprocesamiento
CPUCPU
fetchfetch
executeexecute
MemoriaRAM
Taxonomia de Flynn
Distingue las arquitecturas multiprocesamiento de cuerdo a las instrucciones y datos. Cada uno de estos criterios puede tomar dos estados:
SencilloMúltiple
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Sistemas multiprocesamiento
SISD: Single Instruction Single Data
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Instrucción
Datos Resultado
Taxonomia de Flynn
CPU
SISD: Single Instruction Single Data
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Taxonomia de Flynn
Load ALoad BC = A + BStore CA = B * 2Store A
Tiempo
Tiempo
P1P1
SIMD: Single Instruction Multiple Data
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Taxonomia de Flynn
Instrucciones
Datos
CPUCPU
Resultados
CPUCPUCPU
SIMD: Single Instruction Multiple Data
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Taxonomia de Flynn
Load A(1)Load B(1)C(1)=A(1)+B(1)Store C(1)
Tiempo
Tiempo
Load A(2)Load B(2)C(2)=A(2)+B(2)Store C(2)
Load A(n)Load B(n)C(n)=A(n)+B(n)Store C(n)
P1P1 P2P2 PnPn
MISD: Multiple Instruction Single Data
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Instrucciones
Datos
CPUCPU
Resultados
Taxonomia de Flynn
CPUCPUCPU
SIMD: Multiple Instruction Single Data
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Taxonomia de Flynn
Load A(1)C(1)=A(1)*1Store C(1)
Tiempo
Tiempo
Load A(1)C(2)=A(1)*2Store C(2)
Load A(1)C(n)=A(1)*nStore C(n)
P1P1 P2P2 P3P3
MIMD: Multiple Instruction Multiple Data
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Instrucciones
Datos
CPUCPU
Resultados
Taxonomia de Flynn
CPUCPUCPU
SIMD: Multiple Instruction Multiple Data
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Taxonomia de Flynn
Tiempo
Tiempo
Call funcAX = W*ZStore X
Do 10 i=1,Nvar=i+10Var2 = C(i)
P1P1 P2P2 P3P3
Load A(1)Load B(1)C(1)=A(1)+B(1)Store C(1)
Los sistemas paralelos se distinguen en 3 categorias de acuerdo a la forma como los procesadores utilizan la memoria para gestionar los datos
Memoria CompartidaMemoria DistribuidaMemoria Compartida Distribuida
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria
Memoria Compartida
Los procesos tienen acceso a la misma memoria física. Los procesos pueden correr en un sólo procesador (tiempo compartido)
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria
Proceso1
Proceso2
Memoria
Procesador1
Memoria Compartida
Los procesos pueden correr en procesadores distintos dentro del mismo computador
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria
Proceso1 Proceso2
MemoriaProcesador1 Procesador2
Memoria Compartida
Se debe tener cuidado en esta categoría con la consistencia de los datos.
Se debe utilizar mecanismos como: semáforos, barreras, etc. para tal fin.
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria
Memoria Distribuida
En esta categoría cada procesador tiene su propia memoria.
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria
Red
Procesador1 Procesador2
Memoria Distribuida
Si un procesador require un dato que se encuentra en una localidad de memoria remota, debe solicitarlo.
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria
Red
Procesador1 Procesador2
Memoria Compartida Distribuida
Se utiliza una capa implantada en software para crear un espacio de memoria compartida virtual. Cada procesador aporta un espacio de memoria
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria
Red
Memoria Compartida Distribuida
Las implantaciones son generalmente bibliotecas: LINDA, munin, etc.
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria
Red
Dentro del modelo de memoria compartida existen varias categorías.
Uniform Memory Access (UMA)
Non Uniform Memory Access (NUMA)
Cache Only Memory Access (COMA)
Cache Coherent Non-Uniform Memory Access (ccNUMA)
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria Compartida
Uniform Memory Access (UMA)
Todos los procesadores tienen acceso directo a un sólo bloque de memoria compartida.
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria Compartida
MemoriaMemoria
Procesadores
Uniform Memory Access (UMA)
Todas las localidades de memoria son equidistantes en términos de tiempo de acceso
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria Compartida
MemoriaMemoria
Procesadores
Non Uniform Memory Access (NUMA)
En esta arquitectura cada procesador tiene su propio espacio de memoria
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria Compartida
MemoriaMemoriaMemoriaMemoriaMemoriaMemoriaMemoriaMemoria
Procesadores
bus
Non Uniform Memory Access (NUMA)
Algunas regiones de memoria se encuentran físicamente en buses distintos a otras regiones
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria Compartida
MemoriaMemoriaMemoriaMemoriaMemoriaMemoriaMemoriaMemoria
Procesadores
bus
Shared Memory Paradigm
In the Shared Memory paradigm there are different categories:
Uniform Memory Access (UMA)
Non Uniform Memory Access (NUMA)
Cache Coherent Non-Uniform Memory Access (ccNUMA)
Cache Only Memory Access (COMA)
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Memory
Shared Memory Paradigm
Uniform Memory Access (UMA)
All processors have direct access to a common block of memory.
Processors
Bus
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Shared Memory Paradigm
Uniform Memory Access (UMA)
All locations in memory are equidistant in terms of access time.
Memory
Processors
Bus
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Shared Memory Paradigm
There are some caveats:
Bus could be a bottle neck.
More than one processor could need the data placed in the same memory location.
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Memoria Shared Memory Paradigm
One of the mechanisms added by developers to keep busy the processors was faster memory placed near of them (cache memory)
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Shared Memory Paradigm
Non Uniform Memory Access (NUMA)Each processor has its own local memory
Memory
Processors
Bus
CacheCacheCacheCache
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Shared Memory Paradigm
Some memory regions are located in different buses, therefore, terms like local memory and remote memory are used.
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Shared Memory Paradigm
Una vez más, más de un proceso puede necesitar el mismo dato y para gestionar esto una máquina NUMA incluye hardware especializado que mueve la información desde una memoria cache a otra.
Procesadores
Bus
CacheCacheCacheCache
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Modelos de Memoria
Sin embargo, esta operación puede afectar seriamente el rendimiento de una aplicación.
Por esto, el incremento en la acelearción de la ejecución de un proceso, debido al uso de NUMA, depende en gran medida de la naturaleza de la aplicación.
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Modelos de Memoria
Controlar la ubicación de los procesos o hebras a priori puede mejorar el rendimiento de la ejecución. Para esto el usuario debe aprovechar su
conocimiento de la arquitectura de la máquina para hacer una asignación adecuada.
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Modelos de Memoria
Cache Coherence NUMA (ccNUMA)En los casos en que más de un proceso utilice un mismo dato, se debe mantener la consistencia entre las múltibples copias.
Procesadores
Bus
CacheCacheCacheCache3 3 3 3
Lectura
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Modelos de Memoria
Cache Coherence NUMA (ccNUMA)Cuando uno de los procesadores cambia una copia, se debe invalidar el resto.
Procesadores
Bus
CacheCacheCacheCache3 3 3 4
Escritura
Invalidar
Super Computing and Distributed Systems Camp - Universidad de Costa Rica Turrialba – Costa Rica
Non Uniform Memory Access (NUMA)
Por esto se utilizan los términos memoria local y memoria remota
Depto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto DiazDepto Computación – Escuela de Sistemas – Universidad de Los Andes – Mérida – Venezuela - Gilberto Diaz
Modelos de Memoria Compartida
MemoriaMemoriaMemoriaMemoriaMemoriaMemoriaMemoriaMemoria
Procesadores
bus