Procesamiento Paralelo

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

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

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

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

07 y 08 Sistemas distribuidos y paralelos y tarea 02

Introduccion a Sistemas Operativos. Ej: Linux

EVOLUCIÓN DE LOS PROCESADORES

Modelado de los computadores paralelos

FUNCIONAMIENTO DEL ORDENADOR

Memoria compartida simétrica

Plataformas paralelas

MULTIPROCESADORES (MIMD)

Introducción a la arquitectura de computadores

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

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

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

Instituto Tecnológico de Morelia

Unidad II Arquitectura de Computadoras

Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Gustavo Antonio González Morales Eduardo Solis Lara Francisco Javier Merodio Molina

ESCUELA DE INGENIERIA Informática Y Sistemas

Tema: Microprocesadores

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

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

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

Organización del Computador I. Introducción e Historia

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Threads, SMP y Microkernels. Proceso

Sistemas Operativos. Curso 2016 Introducción

Velocidades Típicas de transferencia en Dispositivos I/O

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

Ing. Carlos Bacalla

Arquitecturas vectoriales, SIMD y extensiones multimedia

UNIDAD FORMATIVA 1: Instalación y Actualización de Sistemas Operativos

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.

Arquitectura de Computadores. Tema 15. Buses

MINUTA: Taller en UAEMEX, Toluca. Construcción de Tecnología HPC

Arquitectura de Computadoras para Ingeniería

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1

ENIAC, Primer computador electrónico y su panel de conexiones

COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

CAPITULO VI. REDES DE DATOS

Introducción a los Sistemas Operativos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Partes de una computadora. Conceptos Generales. Elementos de Computación (CU) Computación (TIG) El Hardware de una computadora

Estructura del Computador

La Máquina de Acceso Aleatorio (Random Access Machine)

MAGMA. Matrix Algebra on GPU and Multicore Architecture. Ginés David Guerrero Hernández

CONCEPTOS BÁSICOS DE UNA RED.

ESTRUCTURA BÁSICA DE UN ORDENADOR

Institución Educativa Distrital Madre Laura Tecnología e Inform ática GRADO 7

Introducción a Computación

TECNOLOGÍA DE REDES. Temario 21/03/2008. Unidad 2. LAS WAN Y LOS ROUTERS (Primera Parte)

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA. Ingeniería en Electrónica EL MICROCONTROLADOR PIC16F84 PRESENTA: M. C. Felipe Santiago Espinosa

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

Entrada y Salida! EC-2721 Arquitectura del Computador I! Entradas/Salidas: Problemas. Entradas salidas: Criterios. Amplia variedad de periféricos!

Procesador Concepto Tipos Velocidad de proceso Características funciones aritmético- lógicas y de control

HARDWARE: DISPOSITIVOS DE ENTRADA, PROCESAMIENTO Y SALIDA/ SOFTWARE: SOFTWARE DE SISTEMAS DE APLICACIONES. Ralph Stair y George Reynolds

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

Francisco Javier Hernández López

Objetivos Generales. Conocimientos Previos Recomendados. CONTENIDOS TEORICOS (Temporización)

Bibliografía básica de referencia: Fundamentos de Informática para Ingeniería Industrial, Fernando Díaz del Río et al.

TEMA 1: Concepto de ordenador

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías...

Unidad I: Organización del Computador. Ing. Marglorie Colina

SELECCIÓN DE COMPONENTES PARA ENSAMBLE DE EQUIPOS DE COMPUTO. Ing. Eduardo Cruz Romero

Fecha de entrega: Miércoles 4 de Septiembre. Campus: Villahermosa. Carrera : Ingeniería en Sistemas Compuacionales. Nombre del maestro: Carlos Castro

Tile64 Many-Core. vs. Intel Xeon Multi-Core

SISTEMAS OPERATIVOS II

Arquitectura Von Neumann

:Arquitecturas Paralela basada en clusters.

cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar

Introducción a los Sistemas Operativos

Arquitectura del Computador. Programación 1 er semestre 2013

Arquitectura del PLC. Dpto. Electrónica, Automática e Informática Industrial)

Procesamiento paralelo: Paralelismo en sistemas monoprocesadores Mecanismos de procesamiento en paralelo. Multiprogramación y Tiempo compartido.

Duración (en horas) Evaluación de los aprendizajes

Fundamentos de Hardware: Arquitectura de un ordenador

Fundamentos del Diseño de Computadores

Modelos de Programación Paralela Prof. Gilberto Díaz

SERVICIO NACIONAL DE APRENDIZAJE SENA MANUAL DE FUNCIONES COMPONENTES INTERNOS Y EXTERNOS DE UN COMPUTADOR INSTRUCTORA BLANCA NUBIA CHITIVA LEON

Tipos de Diseño. Ing. Elizabeth Guerrero V.

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

Introducción a las Arquitecturas Paralelas. Arquitectura de Computadoras II Fac. Cs. Exactas UNCPBA Prof. Marcelo Tosini 2015

Introducción a la computación paralela

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

Estructura de un Ordenador

Manejo de Entrada-Salida. Arquitectura de Computadoras

Tema 1: Arquitectura de ordenadores, hardware y software

Computadora y Sistema Operativo

Introducción. Universidad Nacional Tecnológica del Cono Sur de Lima JORGE AUGUSTO MARTEL TORRES 1

TECNOLOGÍA DE REDES. Temario 01/04/2008. Unidad 2. LAS WAN Y LOS ROUTERS (Segunda Parte)

SISTEMAS DE MULTIPROCESAMIENTO

Introducción a los Sistemas. Distribuidos

Primeros pasos con CUDA. Clase 1

MÉTODO DE CLÚSTER HÍBRIDO PARA LA SINTETIZACIÓN DE DATOS EN LA INDUSTRIA AUTOMOTRIZ UTILIZANDO

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

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/

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.

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!)

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

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

SIMD

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

MISD

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

MIMD

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

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

Procesadores actuales y clasificaciones

AMD: Zen

AMD: Zen

AMD: Zen

AMD: Naples

AMD: Naples

Intel: Xeon

Intel: Xeon Phi

UltaSPARC T2

NVIDIA: CUDA Core

NVIDIA: Kepler

NVIDIA: PCI-Express

NVIDIA: nvlink

NVIDIA: Tegra

Una Caracterización de Procesadores Actuales [2]

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] B. Spiers and D. Wallez. High-Performance Computing on Wall Street. Computer, 43(12):53 59, 2010.