arquitecturas-sisd%simd%misd%mimd
TRANSCRIPT
![Page 1: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/1.jpg)
Procesamiento ParaleloArquitecturas de Computadoras Paralelas
Javier Iparraguirre
Universidad Tecnologica Nacional, Facultad Regional Bahıa Blanca
11 de Abril 461, Bahıa Blanca, Argentina
http://www.frbb.utn.edu.ar/hpc/
March 22, 2011
![Page 2: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/6.jpg)
Arquitectua von Neumann (1945)
![Page 7: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/10.jpg)
SISD
![Page 11: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/12.jpg)
SIMD
![Page 13: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/14.jpg)
MISD
![Page 15: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/16.jpg)
MIMD
![Page 17: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/18.jpg)
UMA
![Page 19: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/20.jpg)
NUMA
![Page 21: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/23.jpg)
Memoria Distribuida
![Page 24: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/26.jpg)
Memoria Hıbrida Compartida-Distribuida
![Page 27: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/30.jpg)
Redes en una Foto
![Page 31: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/31.jpg)
Redes con un Bus o Canal
![Page 32: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/32.jpg)
Crossbar
![Page 33: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/33.jpg)
Multi-etapa
![Page 34: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/34.jpg)
Estrella y Totalmente Conectada
![Page 35: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/35.jpg)
Cartesianas
![Page 36: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/36.jpg)
Hypercubes
![Page 37: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/37.jpg)
Arboles
![Page 38: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/40.jpg)
Caracterısticas
![Page 41: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/43.jpg)
Opteron
![Page 44: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/44.jpg)
Fermi [3]
![Page 45: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/45.jpg)
Manada de Opterons! [2]
![Page 46: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/46.jpg)
Una Caracterizacion de Procesadores Actuales [4]
![Page 47: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/47.jpg)
CPU’s vs GPU’s [4]
![Page 49: arquitecturas-SISD%SIMD%MISD%MIMD](https://reader033.vdocuments.us/reader033/viewer/2022042815/557bbe31d8b42ace668b4fac/html5/thumbnails/49.jpg)
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.