Prof. Gilberto Díaz gilberto@ula.ve Departamento de...

Post on 28-Aug-2020

18 views 1 download

Transcript of Prof. Gilberto Díaz gilberto@ula.ve Departamento de...

Universisdad de Los AndesFacultad de IngenieríaEscuela de Sistemas

Introducción a los sistemas deMultiprocesamiento

Prof. Gilberto Díazgilberto@ula.ve

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