arquitecturas-sisd%simd%misd%mimd

49
Procesamiento Paralelo Arquitecturas de Computadoras Paralelas Javier Iparraguirre Universidad Tecnol´ ogica Nacional, Facultad Regional Bah´ ıa Blanca 11 de Abril 461, Bah´ ıa Blanca, Argentina [email protected] http://www.frbb.utn.edu.ar/hpc/ March 22, 2011

Upload: universidad-centroccidental-lisandro-alvarado

Post on 13-Jun-2015

3.680 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: arquitecturas-SISD%SIMD%MISD%MIMD

Procesamiento ParaleloArquitecturas de Computadoras Paralelas

Javier Iparraguirre

Universidad Tecnologica Nacional, Facultad Regional Bahıa Blanca

11 de Abril 461, Bahıa Blanca, Argentina

[email protected]

http://www.frbb.utn.edu.ar/hpc/

March 22, 2011

Page 2: arquitecturas-SISD%SIMD%MISD%MIMD

Elementos Mınimos de una Computadora Paralela [1]

◮ Hardware◮ Multiples procesadores◮ Multiples memorias◮ Interconexion

◮ Software del sistema◮ Sistema operativo paralelo◮ Herramientas

◮ Aplicaciones

Objetivo

Resolver el problema lo mas rapido posible de manera eficiente

Page 3: arquitecturas-SISD%SIMD%MISD%MIMD

Dos Miradas a la Misma Realidad

◮ Organizacion Logica◮ Lo que ve el usuario de la maquina a traves del software

◮ Organizacion Fısica◮ El hardware de la maquina

◮ La arquitectura fısica es independiente de la arquitecturalogica

◮ Es necesario conocer el hardware si queremos que el softwarecorra de forma eficiente

Page 4: arquitecturas-SISD%SIMD%MISD%MIMD

Dos Miradas a la Misma Realidad

◮ Organizacion Logica◮ Lo que ve el usuario de la maquina a traves del software

◮ Organizacion Fısica◮ El hardware de la maquina

◮ La arquitectura fısica es independiente de la arquitecturalogica

◮ Es necesario conocer el hardware si queremos que el softwarecorra de forma eficiente

◮ La computadora ideal es aquella que nos oculta los detallesfısicos (si la ven, avisen!)

Page 5: arquitecturas-SISD%SIMD%MISD%MIMD

Lo que Viene

◮ Tipos de computadoras paralelas

◮ Modelos de Memoria

◮ Interconexion y Topologıas

◮ Costos comunicaciones

◮ Metricas

◮ Mapeos Basicos

◮ Procesadores actuales y clasificaciones

◮ Nota: Parte del material es cortesıa dehttps://computing.llnl.gov/tutorials/parallel_comp/

Page 6: arquitecturas-SISD%SIMD%MISD%MIMD

Arquitectua von Neumann (1945)

Page 7: arquitecturas-SISD%SIMD%MISD%MIMD

Arquitectua von Neumann (1945)

◮ Cuatro componentes principales◮ memoria◮ Unidad de Control◮ Unidad aritmetica◮ Entrada/Salida

◮ I/O: memoria de acceso aleatorio para almacenar datos einstrucciones

◮ La unidad de control trae instrucciones y datos de la memoria,decodifica las instrucciones y secuencialmente coordina lasoperaciones para llevar a cabo la tarea programada

◮ La Unidad aritmetica realiza las operaciones aritmeticasbasicas

◮ La entrada/salida es la interfaz con el humano

◮ Cache: ¿Ideas? ¿Comentarios? ¿Saben porque?

Page 8: arquitecturas-SISD%SIMD%MISD%MIMD

Taxonomıa de Flynn (1966)

◮ Se separan las instrucciones y los datos en dos dimensiones

◮ Pueden ser simples o multimples

◮ SISD: Single Instruction, Single Data

◮ SIMD: Single Instruction, Multiple Data

◮ MISD: Multiple Instruction, Single Data

◮ MIMD: Multiple Instruction, Multiple Data

Page 9: arquitecturas-SISD%SIMD%MISD%MIMD

SISD

◮ Una computadora serie (no hay paralelismo)

◮ Instruccion simple: solo una instruccion ejecutada por el CPUdurante cualquier ciclo del reloj

◮ Datos simples: solo una secuencia de datos es usada comoentrada durante cualquier ciclo de reloj

◮ Ejecucion determinıstica

◮ El modelo mas antiguo de la computacion

◮ Ejemplos: los primeros mainframes, la mayorıa de los moviles,las primeras PCs

Page 10: arquitecturas-SISD%SIMD%MISD%MIMD

SISD

Page 11: arquitecturas-SISD%SIMD%MISD%MIMD

SIMD

◮ Un tipo de computadora paralela

◮ Instruccion simple: solo una instruccion ejecutada por el CPUdurante cualquier ciclo del reloj

◮ Datos multiples: cada unidad de procesamiento puede operarsobre un conjunto de datos diferente

◮ Se adapta muy bien en problemas con un alto grado deregularidad, tales como graficos/imagenes

◮ Ejecucion sincronica y determinıstica

◮ Dos variantes: arreglo de procesadores o unidades vectoriales

◮ Las unidades de procesamiento de graficos (GPUs) empleanunidades de procesamiento SIMD

Page 12: arquitecturas-SISD%SIMD%MISD%MIMD

SIMD

Page 13: arquitecturas-SISD%SIMD%MISD%MIMD

MISD

◮ Una secuencia de datos unica es provista a unidades deprocesamiento multiples

◮ Cada unidad de procesamiento opera sobre los datos demanera independiente (contadores de programaindependientes)

◮ Pocos ejemplos practicos de este modelo de computadoraparalela

◮ Algunos usos posibles pueden ser:◮ Multiples filtos de frecuencia operado sombre una misma senal◮ Multiples algoritmos de criprografıa operado sobre un mensaje

codificado

Page 14: arquitecturas-SISD%SIMD%MISD%MIMD

MISD

Page 15: arquitecturas-SISD%SIMD%MISD%MIMD

MIMD

◮ Actualmente es el tipo de computadora paralela mas usado.Ma mayorıa de las computadoras caen aquı

◮ Instrucciones multiples: cada procesador puede estarejecutando una secuencia de instrucciones diferentes

◮ Datos multiples: cada unidad de procesamiento puede operarsobre un confunto de datos diferente

◮ La ejecucion puede ser sincronica o asincronica, determinısticao no-determinıstica

◮ Ejemplos: la masyorıa de las supercomputadoras actuales,clusters y grids, multi-core PCs

◮ Nota: muchas arquitecturas MIMD pueden contenercomponentes internos que ejecuten SIMD

Page 16: arquitecturas-SISD%SIMD%MISD%MIMD

MIMD

Page 17: arquitecturas-SISD%SIMD%MISD%MIMD

Caracterısticas Generales de Memoria Compartida

◮ En general la memoria compartida permite a los procesadoresacceder a la memoria como un espacio de direcciones global

◮ Procesadores multiples pueden operar independientementesobre recursos de memoria compartida

◮ Un cambio en la memoria producido por una unidad deprocesamiento es visible por el resto de los procesadores

◮ Hay dos clases de arquitecturas de memoria compartida:UMA y NUMA

Page 18: arquitecturas-SISD%SIMD%MISD%MIMD

UMA

Page 19: arquitecturas-SISD%SIMD%MISD%MIMD

UMA

◮ Un claro ejemplo son las machinas SMP (SymmetricMultiprocessor)

◮ Procesadores identicos

◮ Las prioridades y los tiempos de acceso son iguales para todos

◮ CC-UMA: Cache Coherent UMA (usualmente lo hace elhardware)

Page 20: arquitecturas-SISD%SIMD%MISD%MIMD

NUMA

Page 21: arquitecturas-SISD%SIMD%MISD%MIMD

NUMA

◮ Usualmete ocurre cuando se conectan dos o mas sistemasSMPs

◮ Un sistema SMP puede acceder directamente a la memoriadel otro

◮ No todos los procesadores tienen igual acceso a todas lasdirecciones de memoria

◮ El acceso a memoria a traves del vınculo (o bus) es mas lento

◮ CC-NUMA: Cache Coherent NUMA

Page 22: arquitecturas-SISD%SIMD%MISD%MIMD

Ventajas y Desventaja de Memoria Compartida

◮ Ventajas◮ Espacio de memoria global es amigable para el programador◮ El intercambio de datos entre las tareas es rapido y uniforma

debido a la proximidad entre CPUs

◮ Desventajas◮ El principal problema es que no se puede escalar el modelo.

Cuando se agregan CPUs el trafico se incrementageometricamente y comienzan los problemas de coherencia

◮ El programador es responsable de la sincronizacion de los datosy la coherencia en la memoria

Page 23: arquitecturas-SISD%SIMD%MISD%MIMD

Memoria Distribuida

Page 24: arquitecturas-SISD%SIMD%MISD%MIMD

Caracterısticas Generales Memoria Distribuida

◮ Hay varios modelos de memoria distribuida. El patron generales el uso de una red de comunicacion para conectar lasmemorias de los procesadores

◮ Los procesadores tienen su propia memoria local y no haycorrespondencia entre dos procesadores.

◮ Independencia de operacion, los cambios en un lugar noafectan al resto

◮ Cuando un procesador necesita un dato externo, elprogramador lo ordena explicitamente

◮ La red de comunicacion puede variar ampliamente, puede seruna red ethernet

Page 25: arquitecturas-SISD%SIMD%MISD%MIMD

Ventajas y Desventaja de Memoria Distribuida

◮ Ventajas◮ El modelo escala con los procesadores. A medida que se

agregan unidades de procesamiento la memoria escalaproporcionalmente

◮ Cada procesador accede a un dato en memoria sin interferir alresto de los componentes. Se eliminan las demoras por accesosmultiples

◮ Desventajas◮ El programador es responsable de muchos de los detalles

asociados a la comunicacion entre procesadores◮ Puede ser dificultoso mapear estructuras de datos basadas en

memoria global a esta organizacion de memoria

Page 26: arquitecturas-SISD%SIMD%MISD%MIMD

Memoria Hıbrida Compartida-Distribuida

Page 27: arquitecturas-SISD%SIMD%MISD%MIMD

Memoria Hıbrida Compartida-Distribuida

◮ Las principales supercomputadoras usan este modelo

◮ La memoria compartida es usualmente un SMP. Losprocesadores acceden a la memoria global tambien

◮ La memoria distribuida es la interconexion de multiples SMPs

◮ Ventajas y desventajas: las que aplican a los tiposinvolucrados

Page 28: arquitecturas-SISD%SIMD%MISD%MIMD

Interconexiones y Topologıas

◮ Suponiendo una maquina paralela ideal compuesta por nprocesadores

◮ Dependiendo en la forma que se maneja el acceso a memoria,se encuentran cuatro clases

◮ Exclusive-read, exlusive-write (EREW)◮ Concurrent-read, exclusive-write (CREW)◮ Exclusive-read, concurrent-write (ERCW)◮ Concurrent-read, concurrent-write (CRCW)

◮ Las escrituras concurrentes se resuelven por:Common/Arbitrary/Priority/Sum

Page 29: arquitecturas-SISD%SIMD%MISD%MIMD

Redes de Interconexion

◮ Concentan procesadores-procesadores y procesadores-memoria

◮ Estaticas◮ Conexiones punto a punto◮ Historicamente para conectar procesadores entre si

◮ Dinamicas◮ Se colocan elementos de conmutacion en la red◮ Historicamente para conectar los procesadores con la memoria

Page 30: arquitecturas-SISD%SIMD%MISD%MIMD

Redes en una Foto

Page 31: arquitecturas-SISD%SIMD%MISD%MIMD

Redes con un Bus o Canal

Page 32: arquitecturas-SISD%SIMD%MISD%MIMD

Crossbar

Page 33: arquitecturas-SISD%SIMD%MISD%MIMD

Multi-etapa

Page 34: arquitecturas-SISD%SIMD%MISD%MIMD

Estrella y Totalmente Conectada

Page 35: arquitecturas-SISD%SIMD%MISD%MIMD

Cartesianas

Page 36: arquitecturas-SISD%SIMD%MISD%MIMD

Hypercubes

Page 37: arquitecturas-SISD%SIMD%MISD%MIMD

Arboles

Page 38: arquitecturas-SISD%SIMD%MISD%MIMD

Definiciones (1 de 2)

◮ Diametro◮ La maxima distancia entre dos nodos (mejor cuando es menor)

◮ Conectividad◮ El numero mınimo de arcos que se deben remover para partir

en dos redes desconectadas (mejor cuando es mayor)◮ Mide las multiplicidad de caminos

Page 39: arquitecturas-SISD%SIMD%MISD%MIMD

Definiciones (2 de 2)

◮ Ancho de biseccion◮ El numero mınimo de arcos que se deben remover para partir

la red en dos mitades iguales (mejor cuando es mayor)

◮ Ancho de banda de biseccion◮ Aplica a redes con enlaces medidos por velocidad de

transferencia◮ El mınimo volumen de comunicacion permitidos entre dos

mitades de una red (mejor cuando es mayor)

◮ Costo◮ El numero de enlaces en una red (mejor cuando es menor)

Page 40: arquitecturas-SISD%SIMD%MISD%MIMD

Caracterısticas

Page 41: arquitecturas-SISD%SIMD%MISD%MIMD

Advertencia y Comentarios

◮ Hay varios caminos para encarar el procesamiento paralelo

◮ Un camino es el teorico y analıtico

◮ Otro es desde las tecnologıas

◮ Otro es desde el software

◮ Otro es desde los sistemas operativos

◮ Otro es desde el hardware

Page 42: arquitecturas-SISD%SIMD%MISD%MIMD

Advertencia y Comentarios

◮ Hay varios caminos para encarar el procesamiento paralelo

◮ Un camino es el teorico y analıtico

◮ Otro es desde las tecnologıas

◮ Otro es desde el software

◮ Otro es desde los sistemas operativos

◮ Otro es desde el hardware

◮ Todas son herramientas utiles. Lo importante es aprender ausarlas todas!!

Page 43: arquitecturas-SISD%SIMD%MISD%MIMD

Opteron

Page 44: arquitecturas-SISD%SIMD%MISD%MIMD

Fermi [3]

Page 45: arquitecturas-SISD%SIMD%MISD%MIMD

Manada de Opterons! [2]

Page 46: arquitecturas-SISD%SIMD%MISD%MIMD

Una Caracterizacion de Procesadores Actuales [4]

Page 47: arquitecturas-SISD%SIMD%MISD%MIMD

CPU’s vs GPU’s [4]

Page 48: arquitecturas-SISD%SIMD%MISD%MIMD

Gracias!

◮ ¿Consultas?

◮ Contacto: [email protected]

Page 49: arquitecturas-SISD%SIMD%MISD%MIMD

G. Ananth, G. Anshul, K. George, and K. Vipin.Introduction to parallel computing, 2003.

P. Conway, N. Kalyanasundharam, G. Donley, K. Lepak, andB. Hughes.Cache hierarchy and memory subsystem of the AMD Opteronprocessor.Micro, IEEE, 30(2):16–29, 2010.

J. Nickolls and W.J. Dally.The GPU computing era.Micro, IEEE, 30(2):56–69, 2010.

B. Spiers and D. Wallez.High-Performance Computing on Wall Street.Computer, 43(12):53–59, 2010.