Procesamiento Paralelo

Documentos relacionados
Procesamiento Paralelo

Arquitectura de Computadoras para Ingeniería

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Taller de Programación Paralela

Aspectos avanzados de arquitectura de computadoras Multiprocesadores (I) Facultad de Ingeniería - Universidad de la República Curso 2017

Multiprocesamiento en Lenguaje C Conceptos básicos de la computación paralela

Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas

Modelos de computadores paralelos

Taxonomía de las arquitecturas

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Computación de Altas Prestaciones Sistemas computacionales

MULTIPROCESADORES TIPOS DE PARALELISMO

Introducción a los sistemas de Multiprocesamiento Prof. Gilberto Díaz

Computación de Alta Performance Curso 2009 ARQUITECTURAS PARALELAS ARQUITECTURAS PARALELAS

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez.

Programación Paralela y Concurrente

MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML

Clasificación de Flynn de los computadores

Modelado de los computadores paralelos

07 y 08 Sistemas distribuidos y paralelos y tarea 02

ARQUITECTURA DEL COMPUTADOR

Computación de Altas Prestaciones Sistemas computacionales

Modelado de los computadores paralelos

Programación Gráfica de Altas Prestaciones

Lusitania. Pensando en Paralelo. César Gómez Martín

Introduccion a Sistemas Operativos. Ej: Linux

Motivación. Entre los temas que serán abarcados en este curso podemos mencionar

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

Organización del Computador. Máquina de von Neumann Jerarquía de Niveles

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

Redes de Altas Prestaciones

Tema 1: PROCESADORES SEGMENTADOS

Memoria compartida simétrica

MULTIPROCESADORES MODELOS DE INTERCONEXIÓN

Paralelismo _Arquitectura de Computadoras IS603

INTRODUCCION A LA COMPUTACION PARALELA. 2nd Workshop: New Frontiers of Bioinformatics in Latin America Gridding Biology. Dr.

Centro de Cálculo, Instituto de Computación Facultad de Ingeniería, Universidad de la República, Uruguay

Clasificación de las Arquitecturas

EVOLUCIÓN DE LOS PROCESADORES

Plataformas paralelas

Multiprocesadores de Memoria Compartida

Modelado de los computadores paralelos

TEMA 4 PROCESAMIENTO PARALELO

Programación Concurrente y Paralela. Unidad 1 Introducción

FUNDAMENTOS DE INFORMATICA UNIDAD I: Conceptos Introductorios ING. AGUILERA SERGIO OMAR

ORG. Y FUNC. DE COMPUTADORAS UNIDAD I: Conceptos Introductorios

Francisco J. Hernández López

HPC 101 Introducción a la computación de alto rendimiento

Prerrequisito (s): DOMINIOS COGNITIVOS (Objetos de aprendizaje, temas y subtemas) UNIDAD I: INTRODUCCIÓN

Paralelismo en el procesador

GRADO EN INGENIERÍA DE COMPUTADORES

ÍNDICE TEMÁTICO. 4 Salida Paralelos y Serie. 7 Programación de Microprocesadores 10 4 Características de los 4 8

Procesamiento Paralelo

TEMA 2: Organización de computadores

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción

CDI Arquitecturas que soportan la concurrencia. granularidad

Créditos prácticos: Gil Montoya María Dolores TEMA 1º: Análisis del Rendimiento de un computador.(5 horas)

Programa Educativo: Licenciatura en Sistemas PROGRAMA DE ESTUDIO

TEMA 4 PROCESAMIENTO PARALELO

MULTIPROCESADORES (MIMD)

Vista de Alto Nivel del Funcionamiento del Computador Interconectividad

INSTITUTO TECNOLÓGICO

Máquinas de alto rendimiento

Arquitectura de Computadoras

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

Unidad II Arquitectura de Computadoras

Departamento Ingeniería en Sistemas de Información

Arquitectura de computadores I

PROCESAMIENTO DISTRIBUIDO

TEMA 1: EJECUCIÓN PARALELA: FUNDAMENTOS(I)

El microprocesador (CPU). Ingeniería Informática. Ing. Miguel Angel Mendoza Mendoza.

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

Trabajo de investigación Paralelismo en el procesador

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

Introducción a los Sistemas Multiprocesadores

Miguel Hermanns. 19 de abril de 2007

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU. Clase 0 Lanzamiento del Curso. Motivación

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso

Arquitectura de Computadores

Ing. Carlos Bacalla

6. Enumere tres ventajas de los ULT frente a los KLT.

Sistemas Operativos. Curso 2016 Introducción

Entornos de programación paralela basados en modelos/paradigmas

Revisión de Conceptos. Estructura de un Computador von Neumann. Arquitectura de Computadores I Introducción

Ingeniería en computación Tipos de sistemas operativos

Arquitecturas de Computadoras II

Introducción a las arquitecturas paralelas

ARQUITECTURA DE VON NEUMANN Y HARVARD

Arquitectura de Computadoras para Ingeniería

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús

Threads, SMP y Microkernels. Proceso

Introducción HPC. Curso: Modelización y simulación matemática de sistemas. Esteban E. Mocskos (emocskos@dc.uba.ar) Escuela Complutense Latinoamericana

Introducción a los Sistemas Distribuidos.

6.1 Base De Datos Centralizada

Es todo lo tangible, material, o físico que se puede tocar del equipo de computo, por ejemplo: monitor, ratón, teclado, bocinas, gabinete.

Bases de Datos Paralelas. Carlos A. Olarte BDII

Tema: Microprocesadores

Instituto Tecnológico de Morelia

Transcripción:

Procesamiento Paralelo Arquitecturas de Computadoras Paralelas Javier Iparraguirre Universidad Tecnológica Nacional, Facultad Regional Bahía Blanca 11 de Abril 461, Bahía Blanca, Argentina jiparraguirre@frbb.utn.edu.ar http://www.frbb.utn.edu.ar/hpc/ 21 de marzo de 2016

Marco Conceptual

Arquitectua von Neumann (1945)

Arquitectua von Neumann (1945) Cuatro componentes principales memoria Unidad de Control Unidad aritmética Entrada/Salida I/O: memoria de acceso aleatorio para almacenar datos e instrucciones La unidad de control trae instrucciones y datos de la memoria, decodifica las instrucciones y secuencialmente coordina las operaciones para llevar a cabo la tarea programada La Unidad aritmética realiza las operaciones aritméticas básicas La entrada/salida es la interfaz con el humano Cache: Ideas? Comentarios? Saben porqué?

Elementos Mínimos de una Computadora Paralela [1] Hardware Múltiples procesadores Múltiples memorias Interconexión Software del sistema Sistema operativo paralelo Herramientas Aplicaciones Objetivo Resolver el problema lo mas rápido posible de manera eficiente

Dos Miradas a la Misma Realidad Organización Lógica Lo que ve el usuario de la máquina a través del software Organización Física El hardware de la máquina La arquitectura física es independiente de la arquitectura lógica Es necesario conocer el hardware si queremos que el software corra de forma eficiente

Dos Miradas a la Misma Realidad Organización Lógica Lo que ve el usuario de la máquina a través del software Organización Física El hardware de la máquina La arquitectura física es independiente de la arquitectura lógica Es necesario conocer el hardware si queremos que el software corra de forma eficiente La computadora ideal es aquella que nos oculta los detalles físicos (si la ven, avisen!)

Lo que Viene Tipos de computadoras paralelas Modelos de Memoria Interconexión y Topologías Costos comunicaciones Métricas Mapeos Básicos Procesadores actuales y clasificaciones Nota: Parte del material es cortesía de https: //computing.llnl.gov/tutorials/parallel_comp/

Tipos de Computadoras Paralelas

Taxonomía de Flynn (1966) Se separan las instrucciones y los datos en dos dimensiones Pueden ser simples o múltiples SISD: Single Instruction, Single Data SIMD: Single Instruction, Multiple Data MISD: Multiple Instruction, Single Data MIMD: Multiple Instruction, Multiple Data

SISD Una computadora serie (no hay paralelismo) Instrucción simple: solo una instrucción ejecutada por el CPU durante cualquier ciclo del reloj Datos simples: solo una secuencia de datos es usada como entrada durante cualquier ciclo de reloj Ejecución determinística El modelo más antiguo de la computación Ejemplos: los primeros mainframes, la mayoría de los móviles, las primeras PCs

SISD

SIMD Un tipo de computadora paralela Instrucción simple: solo una instrucción ejecutada por el CPU durante cualquier ciclo del reloj Datos múltiples: cada unidad de procesamiento puede operar sobre un conjunto de datos diferente Se adapta muy bien en problemas con un alto grado de regularidad, tales como gráficos/imágenes Ejecución sincrónica y determinística Dos variantes: arreglo de procesadores o unidades vectoriales Las unidades de procesamiento de gráficos (GPUs) emplean unidades de procesamiento SIMD

SIMD

MISD Una secuencia de datos única es provista a unidades de procesamiento múltiples Cada unidad de procesamiento opera sobre los datos de manera independiente (contadores de programa independientes) Pocos ejemplos prácticos de este modelo de computadora paralela Algunos usos posibles pueden ser: Múltiples filtos de frecuencia operado sombre una misma señal Multiples algoritmos de criprografía operado sobre un mensaje codificado

MISD

MIMD Actualmente es el tipo de computadora paralela más usado. Ma mayoría de las computadoras caen aquí Instrucciones múltiples: cada procesador puede estar ejecutando una secuencia de instrucciones diferentes Datos múltiples: cada unidad de procesamiento puede operar sobre un cómputo de datos diferente La ejecución puede ser sincrónica o asincrónica, determinística o no-determinística Ejemplos: la mayoría de las supercomputadoras actuales, clusters y grids, multi-core PCs Nota: muchas arquitecturas MIMD pueden contener componentes internos que ejecuten SIMD

MIMD

Modelos de Memoria

Características Generales de Memoria Compartida En general la memoria compartida permite a los procesadores acceder a la memoria como un espacio de direcciones global Procesadores múltiples pueden operar independientemente sobre recursos de memoria compartida Un cambio en la memoria producido por una unidad de procesamiento es visible por el resto de los procesadores Hay dos clases de arquitecturas de memoria compartida: UMA y NUMA

UMA

UMA Un claro ejemplo son las machinas SMP (Symmetric Multiprocessor) Procesadores idénticos Las prioridades y los tiempos de acceso son iguales para todos CC-UMA: Cache Coherent UMA (usualmente lo hace el hardware)

NUMA

NUMA Usualmete ocurre cuando se conectan dos o más sistemas SMPs Un sistema SMP puede acceder directamente a la memoria del otro No todos los procesadores tienen igual acceso a todas las direcciones de memoria El acceso a memoria a través del vínculo (o bus) es más lento CC-NUMA: Cache Coherent NUMA

Ventajas y Desventaja de Memoria Compartida Ventajas Espacio de memoria global es amigable para el programador El intercambio de datos entre las tareas es rápido 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 tráfico se incrementa geométricamente y comienzan los problemas de coherencia El programador es responsable de la sincronización de los datos y la coherencia en la memoria

Memoria Distribuida

Características Generales Memoria Distribuida Hay varios modelos de memoria distribuida. El patrón general es el uso de una red de comunicación para conectar las memorias de los procesadores Los procesadores tienen su propia memoria local y no hay correspondencia entre dos procesadores. Independencia de operación, los cambios en un lugar no afectan al resto Cuando un procesador necesita un dato externo, el programador lo ordena expĺıcitamente La red de comunicación puede variar ampliamente, puede ser una red ethernet

Ventajas y Desventaja de Memoria Distribuida Ventajas El modelo escala con los procesadores. A medida que se agregan unidades de procesamiento la memoria escala proporcionalmente Cada procesador accede a un dato en memoria sin interferir al resto de los componentes. Se eliminan las demoras por accesos múltiples Desventajas El programador es responsable de muchos de los detalles asociados a la comunicación entre procesadores Puede ser dificultoso mapear estructuras de datos basadas en memoria global a esta organización de memoria

Memoria Híbrida Compartida-Distribuida

Memoria Híbrida Compartida-Distribuida Las principales supercomputadoras usan este modelo La memoria compartida es usualmente un SMP. Los procesadores acceden a la memoria global también La memoria distribuida es la interconexión de múltiples SMPs Ventajas y desventajas: las que aplican a los tipos involucrados

Interconexiones y Topologías

Interconexiones y Topologías Suponiendo una máquina paralela ideal compuesta por n procesadores 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

Redes de Interconexión Concentan procesadores-procesadores y procesadores-memoria Estáticas Conexiones punto a punto Históricamente para conectar procesadores entre si Dinámicas Se colocan elementos de conmutación en la red Históricamente para conectar los procesadores con la memoria

Redes en una Foto

Redes con un Bus o Canal

Crossbar

Multi-etapa

Estrella y Totalmente Conectada

Cartesianas

Hypercubes

Arboles

Definiciones (1 de 2) Diámetro La máxima 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

Definiciones (2 de 2) Ancho de bisección 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 bisección Aplica a redes con enlaces medidos por velocidad de transferencia El mínimo volumen de comunicación permitidos entre dos mitades de una red (mejor cuando es mayor) Costo El número de enlaces en una red (mejor cuando es menor)

Características

Modelos usados en HPC

Que es HPC? HPC es equivalente a High Performance Computing [?] Consta en agregar poder de cómputo con el fin lograr resultados mucho más rápido de los que se logra con una computadora de escritorio típica. Generalmente involucra grandes problemas en ciencia, ingeniería o negocios. Se puede dividir las estrategias de procesamiento en 3 tipos generales: SMP, Heterogéneo y pasaje de mensajes.

Multiprocesamiento simétrico (SMP)

Multiprocesamiento simétrico (SMP) Varias unidades de procesamiento idénticas comparten un único espacio de memoria. Todas las unidades tienen acceso a los dispositivos de entrada y salida (E/S). Un sistema operativo común. Caso típico: procesadores multi-núcleo.

Heterogéneo

Heterogéneo Unidades de propósito general manejan la memoria y la E/S. Otras unidades especializadas computan tareas específicas. Espacio de memoria compartido y sistema operativo común. Caso típico: PC con GPU.

Pasaje de mensajes

Pasaje de mensajes Múltiples nodos se comunican a través de una red por pasaje de mensajes. Los nodos no comparten memoria. No es necesario compartir el sistema operativo. Caso típico: cluster.

Procesadores actuales y clasificaciones

Opteron

AMD Opteron

Intel Xeon

UltaSPARC T2

Manada de Opterons! [2]

Fermi [3]

NVidia Kepler

Tegra

Una Caracterización de Procesadores Actuales [4]

CPU s vs GPU s [4]

500 TOP 500 Green 500 Graph 500

Muchas gracias! Preguntas? jiparraguirre@frbb.utn.edu.ar

Referencias y Créditos

Referencias I [1] G. Ananth, G. Anshul, K. George, and K. Vipin. Introduction to parallel computing, 2003. [2] P. Conway, N. Kalyanasundharam, G. Donley, K. Lepak, and B. Hughes. Cache hierarchy and memory subsystem of the AMD Opteron processor. Micro, IEEE, 30(2):16 29, 2010. [3] J. Nickolls and W.J. Dally. The GPU computing era. Micro, IEEE, 30(2):56 69, 2010. [4] B. Spiers and D. Wallez. High-Performance Computing on Wall Street. Computer, 43(12):53 59, 2010.