El Diseño de Algoritmos Paralelos

Slides:



Advertisements
Presentaciones similares
1.3. PROGRAMACION PARALELA
Advertisements

Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
I11 A y i 11 B Séptimo semestre.
Sistema operativo Componentes de un sistema operativo
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Introduction to Microprocessors (Conference 2) From: Wikipedia, the free encyclopedia.
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
LA COMPUTADORA.
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
3.4.- Administración de Memoria Virtual.
Introducción a los Algoritmos
Programación Paralela Dr. Mario Rossainz López FCC- BUAP
Computación PROGRAMACIÓN.
Tipos de Métricas.
Programación modular Procedimientos y Funciones
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Gestión de Entrada / Salida
METODOLOGIA DE LA PROGRAMACION
Las computadoras y sus componentes Home Mobile Power
Scheduling and Mapping Introducción Marco de referencia Módulos independientes Tareas con precedencia sin costo Precedencia de tareas y retardos en la.
Búsqueda de Aproximaciones: Algoritmos
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Análisis y Diseño de Algoritmos
Tema 10: Gestión de Memoria
Tres Algoritmos Paralelos para Multiplicación Matriz Vector
UNIVERSIDAD ALAS PERUANAS FACULTAD DE INGENIERIAS Y ARQUITECTURA FACULTAD DE INGENIERIAS Y ARQUITECTURA ESCUELA PROFESIONAL DE INGENIERIAS DE SISTEMAS.
Algoritmos Distribuidos Semana 1. Parte 2 Comunicación por Pase de Mensajes Claudia León Universidad Central de Venezuela Facultad de Ciencias Escuela.
2. ASYNCRONOUS TRANSFER MODE 2.1Características generales 2.2 Modelo de referencia del protocolo 2.3 Categorías de servicio ATM.
PARTICION FIJA DE MEMORIA La partición fija de memoria consta en seccionar la memoria total en hojas o localidades indivisibles con tamaños predeterminados.
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
1 John Freddy Duitama U.de.A. Facultad de Ingeniería Optimización Algebraica. Profesor: John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. Profesor:
Análisis de Algoritmos
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Analisis de Rendimiento.
Profesor: Rodrigo Sanhueza Figueroa
DISEÑO DE SOFTWARE 1ª. Parte
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (apunts de l’assignatura en format transparència) Beowulf Vs Clusters.
Administración de Memoria
Planificación de Procesos
Capítulo 7 Gestión de memoria.
Gestión de procesos Sistemas Operativos Edwin Morales
Servicio horario NTP - Protocolo NTP Luis Villalta Márquez.
Arquitectura de Von Neumann
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
COMPONENTES DEL SISTEMA OPERATIVO.
Sistemas Distribuidos
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Punteros Recomendado: 1. Nivelación Funciones
Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)
Departamento de Informática Universidad de Rancagua
Tendencias Generales Dotación física Software lógica Más pequeño
Rendimiento de la CPU y sus factores
Unidad 2 – Gestión de Procesos
LSI. Freddy Veloz Sistemas Operativos
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Clasificación de software
3.2.1 Administración de almacenamiento
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Proceso de desarrollo de Software
DISPOSITIVOS PERIFERICOS
Fundamentos de Ingeniería de Software
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Gestión de Memoria – Parte 2
#REDES.. ¿Qué es una red? Conjunto de computadores, equipos de comunicaciones y otros dispositivos que se pueden comunicar entre sí, a través de un medio.
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección.
Transcripción de la presentación:

El Diseño de Algoritmos Paralelos Capítulo 3

El Modelo Tarea/Canal El modelo tarea/canal consiste de “tareas” y “canales”. Una tarea consiste de un programa, una memoria local y una coleccion de puertas de entrada/salidas. Un canal es una cola de mensajes que conecta la puerta de salida de una tarea a la puerta de entrada de otra tarea.

Tareas Bloqueadas Una tarea que recibe está bloqueada, si trata de recibir un mensaje que no ha llegado Una tarea que envia nunca bloquea aun si mensajes que mandó previamente por el mismo canal no se han recibido. Recibir es una operación sincrona y enviar es una operación asincrona

La Metodologia de Diseño de Foster Particionar la computación y los datos en pedazos Determinar los patrones de comunicaciónes entre las tareas Aglomerar tareas Asignar tareas a procesadores. Ian Foster, Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering, Addison-Wesley,1995

Particionar Es el proceso de dividir la computación y los datos en pedazos. Descomposición de dominio consiste de dividir los datos en pedazos y luego determinar como asociar computaciones con los datos. Descomposición funcional consiste de dividir la computación en pedazos y luego asociar datos con las computaciones.

Particionar (cont) Los pedazos de computación se llaman tareas primitivas. Es deseable determinar tantas tareas primitivas como sea posible para maximizar el grado de paralelismo.

Lista de Cotejos para Evaluar la Calidad de Particionar Hay un orden de magnitud de tareas primitivas mayor que la cantidad de procesadores en la computadora que se usará Computaciones redundantes y estructuras de datos redundantes se han minimizados Tareas primitivas son aproximadamente del mismo tamaño La cantidad de tareas es una función creciente del tamaño de problema.

Comunicaciones Determinar los patrones de comunicaciones entre tareas primitivas. Cuando un número pequeño de tareas necesitan valores de otras tareas se crean canales entre las tareas envueltas. Esta es comunicación local. Comunicación global occure cuando todas o casi todas tareas necesitan valores de las otras tareas.

Lista de Cotejos para Evaluar la Calidad de Comunicaciones Deben ser balanceadas entre las tareas. Cada tarea comunique con un número pequeño de sus vecinos. Las tareas pueden llevar a cabo sus comunicaciones en paralelo. Las tareas pueden llevar a cabo sus computaciones en paralelo.

Aglomeración Aglomeración es el proceso de agrupar tareas en tareas mas grandes para mejorar el rendimiento o simplificar la programación.

Las Metas de Aglomeración Reducir la cantidad de comunicaciones (“overhead”) Mantener la escabilidad del diseño paralelo Reducir el costo de ingenieria de software

Reducir la Cantidad de Comunicaciones Aglomerar tareas primitivas que se comuniquen una con otra. Es decir, aumentar localidad. Combinar grupos de recibos y envios.

Mantener la Escabilidad del Diseño Paralelo De la enciclopedia Wikipedia: “…scalabiity is a desirable property of a system, a network, or a process, which indicates its ability to handle growling amounts of work in a graceful manner…” Un diseño paralelo es escalable si el mismo diseño funciona cuando se aumenta el número de procesadores.

Reducir el Costo de Ingenieria de Software Por ejemplo, hacer uso de código secuencial existente.

Lista de Cotejos para Evaluar la Calidad de Aglomeración La aglomerición que se ha llevado a cabo ha aumentado localidad. Computaciones replicadas requieren menos tiempo que las comunicaciones que se reemplazan. La cantidad de datos replicados es suficientemente pequeña para que el algoritmo se pueda escalar

Lista de Cotejos para Evaluar la Calidad de Aglomeración (cont) Tareas aglomeradas tienen costos de computación y comunicación parecidos La cantidad de tareas es tan pequeña como sea posible, pero tan grande como la cantidad de procesadores disponibles

Asignar Tareas a Procesadores La meta es maximizar la utilización de procesores y minimizar las comunicaciones entre procesadores. Balancear la computación entre los procesadores maximiza la utilización de procesador (el porcentaje de tiempo que los procesadores están ocupados). Comunicaciones entre procesadores decrecen cuando dos tareas se asignan al mismo procesador.

Asignar Tareas a Procesadores (cont) Aumentar la utilización de procesadores y a la vez reducir las comunicaciones entre procesadores pueden conflijar uno con otro. Por ejemplo, si se asigna cada tarea al mismo procesador, entonces, no hay comunicaciones entre procesadores, pero la utilicación de procesadores es 1/p, donde p es el número de procesadores. El problema de optimizar la asignación de tareas a procesadores es NP-hard.

“Dynamic Load Balencing” Se necesita cuando tareas se crean y destruyen durante de la ejecutación. Ejemplo: La paradigma “gerente-trabajador”: El gerente mantiene una lista de tareas que hay que llevar a cabo y las asigna a los trabajadores. Cuando un trabajador termina una tarea, pide otra del gerente,