TEMA 4 PROCESAMIENTO PARALELO

Documentos relacionados
Granularidad y latencia

Computación de Alta Performance Curso 2009 MEDIDAS DE PERFORMANCE MEDIDAS DE PERFORMANCE

PROCESAMIENTO DISTRIBUIDO

Redes de Altas Prestaciones

Clústeres y procesamiento en paralelo XE1GNZ J O R G E F BARBOSA J ACOBO F E B R E R O DE 20 17

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

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

MULTIPROCESADORES MODELOS DE INTERCONEXIÓN

Tema 3: Sistemas de Alta Velocidad

GRADO EN INGENIERÍA DE COMPUTADORES

Modelos de computadores paralelos

Programación en Entornos Paralelos: MPI

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

6.1 Base De Datos Centralizada

Arquitecturas: Clusters. Edgar Valderrama Lucio Mederos

Multiprocesadores de Memoria Compartida

Computación de Altas Prestaciones Sistemas computacionales

Paralelismo _Arquitectura de Computadoras IS603

Relación de Ejercicios. Programación Paralela 4º de Grado en Ingeniería Informática.

Ingeniería en Computación

TEMA 4 PROCESAMIENTO PARALELO

COMPUTACIÓN DE ALTA PERFORMANCE

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

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

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

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

SD Examen 2 EVA. 1 of 11 2/5/2013 8:49 PM. Paralelo 1? Evaluaciones? SD Examen 2 EVA. Comenzado: Feb 5 en 8:50pm

Taller de Programación Paralela

Computación 1. Roles en la interconexión

Arquitectura de computadores I

Introducción a los Sistemas Multiprocesadores

Computación de Altas Prestaciones Sin miedo, es más fácil de lo que parece. Alex Ramírez Arquitecturas Heterogeneas Barcelona Supercomputing Centrer

Arquitecturas Paralelas: Redes de interconexión y Medición de performance

Multicomputadores. Características Generales. Redes de Interconexión. Topologías de Interconexión. Estrategias de Conmutación y Control de Flujo

Unidad IV: Arquitectura de los Sistemas de Bases de Datos (Tema 5) GESTIÓN DE BASES DE DATOS GRADO EN INGENIERÍA INFORMÁTICA UNED

Introducción al Computo Distribuido

Entornos de programación paralela basados en modelos/paradigmas

MULTIPROCESADORES TIPOS DE PARALELISMO

Universidad Nacional Autónoma de México Instituto de Geofísica

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

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

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

Hoja de respuestas. Examen tipo A

Programación Gráfica de Altas Prestaciones

Taxonomía de las arquitecturas

Balance Dinámico de Carga en Super-Cómputo

Procesamiento Paralelo

Evaluación del rendimiento de Algoritmos Paralelos y/o Concurrentes

PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela

Arquitectura de Computadoras

Topologías de Red. Hosts:

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

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

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

CARACTERIZACION DE PROBLEMAS A SOLUCIONAR MEDIANTE PROGRAMACIÓN MULTIPROCESO DE MEMORIA COMPARTIDA. Autor ERIKA VIVIANA RIAÑO BEJAR

Rendimiento y sus factores

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

PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización:

Cómputo Paralelo en Redes Locales de Computadoras

Tutorías con Grupos Reducidos (TGR) Parte 1: Evaluación de prestaciones

Taller de Programación Paralela

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

Diseño de Algoritmos Paralelos Prof. Gilberto Díaz

Introducción a los Sistemas Operativos y Redes. Clase 2: Topologías de Redes

Modelado de los computadores paralelos

ARQUITECTURA DEL COMPUTADOR

ALGORITMO DE COMPRESIÓN DE HUFFMAN PARA PLATAFORMAS DISTRIBUIDAS IMPLEMENTADO EN CLUSTER BASADO EN MPI

Diagrama de despliegue

José Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES

Computación de Altas Prestaciones Sistemas computacionales

TEMA 2: DEFINICIONES Y CONCEPTOS. Ing. Jonathan Quiroga Tinoco Conalep Tehuacán P.T.B. en SOMA

Clasificación de Flynn de los computadores

COMUNICACIONES TRANSMISIÓN DE DATOS REDES DE ORDENADORES INTERNET. Sistemas de transmisión de datos

Procesamiento Paralelo

Arquitectura de Computadoras para Ingeniería

Plataformas paralelas

Programa. Conjunto de elementos que interaccionan con una computadora ofreciendo una salida a una entrada ( programa ).

Arquitectura de Computadores (obligatoria)

TIPOS DE REDES Y TOPOLOGIAS

Antonio Carrillo Ledesma Ismael Herrera Revilla

ARQUITECTURA DE VON NEUMANN Y HARVARD

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

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos

TEMA 2: PROGRAMACIÓN PARALELA (Y III)

Universidad de Los Andes Facultad de Ciencia Forestales y Ambientales Escuela de Ingeniería Forestal

Programa Educativo: Licenciatura en Sistemas PROGRAMA DE ESTUDIO

Ingeniería en computación Tipos de sistemas operativos

HERRAMIENTAS SOFTWARE PARA SISTEMAS DISTRIBUIDOS

Miguel Hermanns. 19 de abril de 2007

Introducción a las Computadoras. Capítulo 3 Buses del Sistema

Servet: una suite de benchmarks para el soporte del autotuning en clusters de sistemas multinúcleo

MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML

ESCUELA DE INGENIERIA Informática Y Sistemas

AURELIO CHÁVEZ ACHA. Clasificación de redes de acuerdo a topología

Soluciones a ejercicios de Fundamentos

Introduccion a Sistemas Operativos. Ej: Linux

Tema III: Componentes de un Sistema Operativo

GRADUADO EN INGENIERÍA DE COMPUTADORES - FICHA TÉCNICA

Sistemas Operativos Distribuidos

Transcripción:

TEMA 4 PROCESAMIENTO PARALELO Tipos de plataformas de computación paralela Organización lógica Organización física Sistemas de memoria compartida Sistemas de memoria distribuida

Tipos de plataformas de computación paralela Organización lógica. Visión que tiene el programador La estructura de control Maestro/Esclavo SPMD Modelo de comunicación entre tareas Espacio de direcciones único y compartido (Memoria compartida) El paso de mensajes Organización física. Según la forma de acceso en un sistema multiprocesador a la región de memoria común a todos los procesadores Sistema de memoria compartido: un único sistema de memoria es compartido por todos los procesadores Sistema de memoria distribuida: cada procesador tiene su propia memoria física, inaccesible por el resto.

Sistema de memoria distribuida Cada procesador dispone de su propia memoria, independiente del resto y solo accesible por su procesador La comunicación se realiza por paso de mensajes También conocida como arquitectura de memoria privada o arquitectura de paso de mensajes

Sistema de memoria distribuida El paso de mensajes es la estrategia dominante en los sistemas con gran número de procesadores (mayor que 100) y en programas que pueden dividirse en subprogramas independientes Se intentará minimizar el número de mensajes y maximizar su tamaño

Sistema de memoria distribuida Procesadores masivamente paralelos (MPPs- Massively Parallel Processor) Un único computador con múltiples CPU s comunicadas por un bus de datos Cluster (múltiples computadores cada uno con su propio procesador, enlazados por una red de interconexión) De clase Beowulf (cada computador del cluster está exclusivamente dedicado al cluster) NOW (cada computador del cluster no está exclusivamente dedicado al cluster)

Un sistema Beowulf Conjunto de nodos minimalistas (placa base con cpu, memoria y dispositivo comunicación) conectados por un medio de comunicación barato Cada nodo de un Beowulf se dedica exclusivamente a procesos del supercomputador. Conexiones placa a placa por cable RJ-45 cruzado Se evita el hardware innecesario a cambio de una fuerte dependencia entre el software y la topología de la red

CLUSTERS Presentan distintas topologías en función de las conexiones punto a punto que se establezcan entre sus procesadores redes lineales, de anillo o en estrella hipercubos La implementación más natural y habitual de los clusters es como parte de una red de área local, en la que las máquinas que forman el cluster se conectan a una red de alta velocidad y la máquina que actúa como servidor se conecta además a la red exterior. Se utilizan como dispositivos de interconexión los switches (la comunicación entre procesadores dispone del 100% del ancho de banda del canal)

CLUSTERS Las exigencias de cálculo de las aplicaciones comerciales y científicas crecen día a día. Podemos aumentar la capacidad de la unidad de procesamiento aumentar la memoria o sustituir el procesador por otro de tecnología superior y/o de mayor velocidad de reloj hacer que varias unidades colaboren para la resolución conjunta de una tarea procesamiento en paralelo tecnología del pipelining procesamiento superescalar procesadores vectoriales paralelismo sobre un registro supercomputadores vectoriales y procesadores masivamente paralelos, MPPs clusters (alternativa de menor coste ampliamente utilizada y consolidada)

VENTAJAS DE LOS CLUSTERS Se pueden construir con un esfuerzo relativamente moderado. Son sistemas de bajo coste. Utilizan hardware convencional y accesible comunicación comercial Myrinet o Fast Ethernet) (sistema de Software de libre distribución Linux, PVM Machine) o MPI (Message Passing Interface) (Parallel Virtual Son sistemas escalables Cada máquina de un cluster puede ser un sistema completo utilizable o aprovechable para otros propósitos Es posible diseñar el cluster de tal forma que si un nodo falla, el resto continúe trabajando Que los programas escritos para un cluster funcionarán en cualquier otro con independencia del tipo de procesador de cada nodo sin más que recompilar el código

DESVENTAJAS DE LOS CLUSTERS Las redes ordinarias no están diseñadas para el procesamiento paralelo. La latencia de red es alta y el ancho de banda relativamente bajo En los sistemas operativos monoprocesador existe muy poco software para tratar un cluster como un único sistema

Cuándo y cómo utilizar un cluster? La razón de ser del procesamiento paralelo es acelerar la resolución de un problema. Con n procesadores es posible resolver el problema n veces más rápido que haciendo uso de uno sólo (salvo por el mínimo retraso que supone el reparto de trabajo inicial y la recolección de datos final), La aceleración superlineal: el programa se ejecuta aún más rápido que en régimen lineal Deceleración: encuentran los problemas que se paralelizan muy mal, es decir, necesitan estar continuamente compartiendo datos entre procesadores para obtener el resultado final. El tiempo de ejecución aumenta a medida que aumenta el número de procesadores Típica: cada procesador conozca, tras cada paso, el estado del sistema completo, con lo que todos los datos deben propagarse a todos los computadores (interacción gravitatoria o la culombiana)

PARALELIZAR APLICACIONES PARA USO EN CLUSTER Adaptar una aplicación propia de cálculo intensivo para sacar provecho de un cluster, y para ello no hay más remedio que recurrir a su paralelización Programar explícitamente el paso de mensajes Usando sockets o el dispositivo de red directamente Las bibliotecas de paso de mensajes PVM (Parallel Virtual Machine, máquina paralela virtual) y MPI (Message Passing Interface, interfaz para el paso de mensajes) Las bibliotecas de función colectiva AFAPI (Aggregate Function APZ, API de funciones colectivas). Utilizar herramientas que lo hagan Herramientas de paralelización automática (muy caros y, lo que es peor, funcionan realmente mal) Lenguajes de programación paralelos Nuevos lenguajes (Ora3 y Parallaxis4) Desarrollo de extensiones paralelas para lenguajes como Fortran o C» HPF (High Performance Fortran, Fortran de alto rendimiento).

RENDIMIENTO Y COSTES EN SISTEMAS PARALELOS Factores que influyen en la velocidad computacional Granularidad de los procesos. Factor de aceleración (speedup). Ley de Amdahl. Eficiencia. Coste. Escalabilidad. Balance de carga.

Granularidad de los procesos. Lo mucho que se ha dividido el problema en pedazos Granularidad gruesa: Gran número de instrucciones secuenciales que no necesitan de la comunicación con otros procesos para ser ejecutadas. Granularidad fina: Dispone de pocas instrucciones secuenciales Se trata de maximizar esa razón manteniendo el paralelismo suficiente. tiempo de computación tiempo de comunicaci ón t t comp com

Factor de aceleración (speedup). Medida del rendimiento relativo entre un sistema multiprocesador y un sistema con un único procesador ts S( M ) t La aceleración máxima absoluta con M procesadores S( M ) t t s s M p M

Factor de aceleración (speedup). Factores que aparecen como sobrecarga Existencia de partes secuenciales que no se pueden dividir y las tiene que ejecutar un único procesador Cálculos adicionales que aparecen en el programa paralelo y no en el secuencial Tiempo de comunicación para enviar mensajes

Ley de Amdahl Determina una cota inferior para el tiempo de ejecución, aun cuando no se utilicen al máximo las técnicas de paralelismo (no considera las sobrecargas) M: nº de procesadores f: fracción de código no paralelizable t p ( M ) f t s 1 f M t s

Ley de Amdahl El factor de aceleración viene dado S( M ) f t s t s M 1 f t 1 M 1 f M s lim S( M ) 1 f Según Amdahl la razón para aumentar el número de procesadores debe ser para resolver problemas de tamaño mayor y no para resolver más rápidamente un problema de tamaño fijo M

Eficiencia Normalización de la aceleración entre el número de procesadores E S( M ) M x100% t P ts M x100% 1 1 ( M 1) x100% Define la fracción de tiempo que se utilizan los procesadores durante la computación, es decir, da una medida de lo adecuadamente que han sido utilizados los procesadores f

Coste C= tiempo de ejecución x Número de procesadores utilizados C ts S M t s M E

Escalabilidad Indica un diseño hardware que permite ampliar su tamaño para obtener una mejora en el rendimiento. Un sistema es escalable si el rendimiento del mismo se incrementa linealmente con relación al número de procesadores usados para una cierta aplicación. Parámetros que afectan a la escalabilidad Tamaño del sistema Frecuencia del reloj Tamaño del problema Tiempo de CPU Capacidad de memoria Pérdidas (overhead) de comunicación Coste del sistema

Balance de carga Consiste en distribuir de una forma equitativa la carga computacional entre todos los procesadores disponibles y con ello conseguir la máxima velocidad de ejecución

Balance de carga Se puede hacer Balance de carga estático (mapeado del problema o planificación del problema) Difícil estimar de forma precisa el tiempo de ejecución Difícil incorporar la variable retardo de comunicación Algoritmos con número indeterminado de pasos computacionales (algoritmo de búsqueda) Balance de carga dinámico (reparto de tareas durante la ejecución del programa) Resulta en una alternativa mucho más eficiente que el balance de carga estático Balance de carga dinámico centralizado Balance de carga dinámico distribuido

Balance de carga Balance de carga dinámico (reparto de tareas durante la ejecución del programa) Balance de carga dinámico centralizado El proceso maestro reparte las tareas, al acabarlas se les dará más. Programación por demanda o bolsa de trabajo. Es mejor repartir primero las tareas de mayor carga computacional. Balance de carga dinámico distribuido

Balance de carga Balance de carga dinámico (reparto de tareas durante la ejecución del programa) Balance de carga dinámico centralizado Balance de carga dinámico distribuido Un grupo de maestros controla a un grupo de esclavos.

Costes de la comunicación mediante pasos de mensajes Tiempo de inicialización t s Tiempo en preparar el mensaje, tiempo ejecución algoritmo enrutamiento, tiempo de conexión entre el emisor y el enrutador Tiempo de salto t h Tiempo que tarda la cabecera de un mensaje en viajar entre dos nodos directamente conectados en la red Tiempo de transferencia por palabra t w Inverso del ancho de banda (inverso de cantidad de palabras por segundo)

Costes de la comunicación mediante pasos de mensajes ALGORITMOS DE ENRUTAMIENTO Almacenamiento y reenvío (store-andforward) t mt t s w h l Hasta que no se ha recibido el mensaje y almacenado no se envía. t com t Corte y continuación (cut-through) t com t s s lt mlt h w mt w

examen septiembre 2012

COSTES DE LA COMUNICACIÓN MEDIANTE MEMORIA COMPARTIDA El cálculo es mucho más complejo que cuando se usa paso de mensajes por: El programador tiene control reducido sobre la localización de los objetos en memoria Si el tamaño de la caché es mayor que el tamaño de los datos se produce hiperpaginación La sobrecarga por operaciones de coherencia de caché (invalidad y actualizar) es difícil de cuantificar La latencia de acceso a las diferentes palabras de una caché puede variar La lectura anticipada de palabras (depende del compilador y la disponibilidad de recursos) El fenómeno de false-sharing (diferentes procesadores acceden a distintos datos almacenados en el mismo bloque de caché) puede incluir una sobrecarga La competición por los recursos (depende de la ejecución del programa)