INSTITUTO TECNOLÓGICO DE CD. GUZMÁN

Slides:



Advertisements
Presentaciones similares
El modelo de Von Neumann
Advertisements

TEMA 1 Introducción a la Programación Concurrente
1.3. PROGRAMACION PARALELA
LENGUAJES PARALELOS Chang y Smith (1990) clasificación:
Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
II. ARQUITECTURAS PARALELAS
Multiprocesadores 3.1 Dominios de aplicación
LA COMPUTADORA.
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
PROCESADORES SUPERESCALARES
Programación Paralela Dr. Mario Rossainz López FCC- BUAP
INTRODUCCIÓN A LA COMPUTACIÓN
Computación PROGRAMACIÓN.
Fecha: 11/09/13.  Todos los sistemas distribuidos constan de varias CPU, organizadas de diversas formas.  La forma de interconectarlas entre sí. 
INFORMÁTICA II.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
EMISION MULTIPLE DE INSTRUCCIONES
Algorítmo de Mapeo Directo
Mejoras a las Máquinas Von Neumann
Tema 3. Optimización de Código
Composición Interna de un Procesador
Computadora Digital Arquitectura de John Von Neumann
Sistemas Distribuidos y Paralelos
Direcciones físicas y direcciones virtuales (lógicas)
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
Universidad de SonoraArquitectura de Computadoras1 PROGRAMA CION PARALELA Y DISTRIBUIDA PRESENTA: JESUS BECERRIL PACHECO MODELOS DE ACCESO A LA MEMORIA.
Arquitectura del Computador
Análisis y Diseño de Algoritmos
Centralizados y Distribuidos
ARQUITECTURAS SIMD TIPOS
Unidad III Administración de procesos
Procesamiento paralelo
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Administración de Memoria Memoria Virtual
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.),
Contenido Marco de referencia Arquitectura de computadoras paralelas
Asignación de Espacio No Contiguo
Hebras Cecilia Hernández. Qué es un proceso? Consiste Espacio de direccionamiento Código a ejecutar Datos estáticos y dinámicos Pila o stack CPU: PC,
TEMA 2: Organización de computadores
Organización de Computadoras
Características de un sistema operativo
SISTEMAS OPERATIVOS.
Una computadora MIMD intrínseca implica interacciones entre n procesadores debido a que todos los flujos de memoria se derivan del mismo espacio de datos.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Inst. Tec. de Morelia ISC BASES DE DATOS DISTRIBUIDAS VERANO DEL 2006 MC. Anastacio Antolino Hernández TAXONOMÍA DE FLYNN.
14 de diciembre de 2005 Universidad de Murcia1 Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de.
Arquitecturas Paralelas
Tema 3: Paralelismo en Multiprocesadores (I)
Arquitectura de Von Neumann
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Análisis y Diseño de Algoritmos
ARQUITECTURAS PARALELAS
“Organización y Arquitectura de Computadores” William Stallings
Universidad Politécnica de Tulancingo Catedrático Ing. Jorge Luis Neri Trejo Asignatura Ing. De Hardware III Tema Procesamiento Paralelo Presenta Verónica.
ARQUICTECTURA DE SERVIDORES
ORGANIZACIÓN DE SISTEMAS DIGITALES DRA. LETICIA FLORES PULIDO Dra. Leticia Flores Pulido / DCSCE / Primavera
1 Unidad II: La Computadora Personal. Tema: La Computadora Personal. Objetivos: Que el alumno conozca los elementos básicos que conforman un computador.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
Computadoras de Alto Rendimiento (HPC)
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
I Kamilo Osorio Restrepo 8°B Juan David Velez. TIPOS DE PROCESADORES Y SUS FUNCIONES PRINCIPALES CISC. Complex Instruction Set Computing. Posee un número.
Arquitectura básica de la computadora
ORGANIZACIÓN DE COMPUTADORAS DRA. LETICIA FLORES PULIDO.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Apuntes preparados por Néstor González Valenzuela slide 1 Arquitecturas de Sistemas Distribuidos y Paralelos.
Hiperpipeline Superescalares Arquitectura de Computadoras 2012.
Transcripción de la presentación:

INSTITUTO TECNOLÓGICO DE CD. GUZMÁN Sistemas Operativos II MC. Daniel Fajardo Delgado 1o de Mayo de 2004

COMPUTACIÓN PARALELA

Existe demanda de rapidez computacional... - Predicción numérica del clima. - Modelación de estructuras de ADN. - Predicción de movimientos de cuerpos astronómicos en el espacio. - Realidad virtual. - ... the grand challenge problems Los cálculos deben ser completados en un periodo de tiempo “razonable”. Para incrementar la rapidez computacional básicamente: Se divide el problema en partes, donde cada parte se desarrolla en un procesador separado en paralelo. Escribir programas de esa forma ~> parallel programming La plataforma donde se desarrolla ~> parallel computer La ciencia que engloba ésto ~> parallel computing

Además de incrementar la rapidez para resolver un problema: - Permite obtener una solución con mayor precisión del problema. Las computadoras paralelas no son una idea nueva... - 1958 Gill (parallel programming) - 1959 Holland (parallel computer) - 1963 Conway (diseño de una parallel computer y su programación) - ... 1996 Flynn y Rudd (el futuro es paralelismo)

Computadora paralela. Colección de procesadores interconectados en cierta forma para coordinar tareas e intercambiar información. Sistema distribuido. Colección de procesadores distribuidos en una gran área geográfica. Los factores que contribuyen al desarrollo del procesamiento paralelo: - Hardware barato - Alta escala de integración - Limitaciones físicas de procesadores

TIPOS DE COMPUTADORAS PARALELAS Memoria principal Instrucciones del procesador. Los datos van y vienen al procesador. Procesador Una computadora convencional consiste de un procesador ejecutando un programa almacenado en memoria principal. Cada localidad de memoria principal en todas las computadoras es localizada mediante un número llamado dirección de memoria ( 0 – {2^n - 1})

Sistema multiprocesador de memoria compartida Un espacio de direcciones Módulos de memoria Red de interconexión Procesadores

Multicomputadora de paso de mensajes Red de interconexión Mensajes Procesador Computadoras Memoria local

Memoria distribuida-compartida Red de interconexión Mensajes Procesador Memoria distribuida

TAXONOMIA DE FLYNN ~> Fue introducida en 1972 y es una de las taxonomías más conocidas sobre arquitectura de computadoras. ~> Michael Flynn clasificó las arquitecturas en 4 categorías basadas sobre la presencia de uno o múltiples apuntadores a instrucciones y datos. Un apuntador a instrucción es un conjunto de instrucciones secuenciales a ser ejecutadas por sólo un procesador. El apuntador a datos es un flujo secuencial de datos solicitados mediante un apuntador a instrucción.

Las 4 categorias de Flynn son las siguientes: 1. SISD (Single Instruction stream – Single Data stream). ~> Es el concepto de la computadora secuencial de Von Neumann ~> Sólo una instrucción es ejecutada a la vez ~> Las máquinas SISD son de propósito general como las pc que normalmente utilizamos (aunque incluso las pc de hoy en día utilizan grados pequeños de paralelismo). 2. MISD (Multiple Instruction stream – Single Data stream). ~> Varias instrucciones operan sobre un conjunto simple de datos. ~> Distintas unidades de procesamiento reciben instrucciones distintas de operación sobre el mismo dato. (Es impráctico o imposible). ~> Existen algunas arquitecturas pipelined como el Systolic Array.

3. SIMD (Single Instruction stream – Multiple Data stream). ~> Sólo una instrucción es aplicada a datos diferentes al mismo tiempo. ~> Unidades sepadaras de procesamiento son llamadas por una unidad simple de control. ~> La misma operación es desarrollada en un momento dado sobre un conjunto grande de datos. 4. MIMD (Multiple Instruction stream – Multiple Data stream). ~> Incluye máquinas con varias unidades de procesamiento. ~> Múltiples instrucciones pueden ser aplicadas a distintos datos simultaneamente. ~> Multiprocesadores. ~> Multicomputadoras.

ACELERACIÓN, EFICIENCIA Y REDUNDANCIA Speedup (Sp, Aceleración): El factor dado por el tiempo necesario para resolver un problema dado usando el mejor algoritmo secuencial conocido y el tiempo necesario para resolver el mismo problema por un algoritmo paralelo usando p procesadores. Sea: Ts(N) tiempo requerido para resolver un problema de tamaño N por el mejor algoritmo secuencial. Tp(N) tiempo necesario para que el algoritmo paralelo usando p procesadores resuelva el mismo problema de tamaño N. Entonces Sp = Ts(N) / Tp(N)

Tal que: 1 <= Sp <= p Debido a la pérdida de tiempo en operaciones de: - Sincronización - Comunicación - overhead Si Sp > p se le llama speedup superlineal.

Eficiencia (Ep) La eficiencia de un algoritmo paralelo se define como el factor dado por el factor de aceleración y el número de procesadores. Ep = Sp / p 0 < Ep <= 1 Redundancia (Rp) La redundancia de un algoritmo paralelo se define como el factor dado por el número total de operaciones realizadas usando p procesadores (Op) y el número de operaciones realizadas usando un procesador. Rp = Op / O1 Rp >= 1

LEY DE AMDAHL Un número pequeño de operaciones secuenciales puede limitar el factor de aceleración de un algoritmo paralelo. Sea s el tiempo de ejecución de la parte secuencial del algoritmo. Sea p el tiempo de ejecutar la parte paralela del algoritmo. s + p = 1 que es la unidad del algoritmo completo. Así s y p son fracciones del cálculo total. Para n número de procesadores, se tiene: s + p 1 Sp = -------------- = --------------- s + p/n s + (1-s)/n

Corolario de la ley de Amdahl. Un pequeño número de operaciones secuenciales puede limitar de manera significativa el speedup alcanzado por un algoritmo paralelo.

MODELS FOR PARALLEL COMPUTATION Susanne E. Hambrusch

MODELOS PARALELOS ~> Son mucho más complejos que los modelos secuenciales (RAM) ~> Es deseable que los modelos (paralelos) tengan las siguientes características: * Simples * Independientes del hardware * Implementables

RAM. Random Access Machine P M PRAM. Parallel Random Access Machine M P1 P2 P3 P4 Pn

Grafos Acíclicos Dirigidos (DAG's) Entradas. Las hojas del árbol. Operación. Nodos con aristas de entrada. Salidas. Nodos sin aristas de salida. Indegree (Grado de entrada). # de aristas que entran a un nodo. Outdegree (Grado de salida). # de aristas que salen de un nodo. - No se permiten saltos. - Se fijan restricciones de precedencia (orden de ejecución). - Independiente del hardware.

+ + A5 + + A4 + + + A3 A1 A2 A3 A4 A1 A2

Modelo de RED Están muy relacionados al hardware Modelo Log P

Modelo PRAM (Parallel Random Access Machine) - Existen p procesadores - Cada procesador tiene memoria local - Cada procesador comparte un espacio de memoria común - Cada procesador puede acceder a la memoria compartida para leer o escribir en una cierta dirección de memoria.

Existen distintas clasificaciones de poder dentro del modelo: EREW(Exclusive Read, Exclusive Write). No se permiten las lecturas y escrituras simultaneas a una misma dirección de memoria. Es el modelo más restrictivo y el más próximo a las máquinas actuales. CREW (Concurrent Read, Exclusive Write). No se permiten las escrituras simultaneas a una misma dirección de memoria; sólo las lecturas simultaneas son permitidas. ERCW (Exclusive Read, Concurrent Write). El acceso en lectura a la memoria compartida es exclusivo; sólo las escrituras simultaneas a una misma dirección en memoria son permitidas. CRCW (Concurrent Read, Concurrent Write). Las escrituras y lecturas simultáneas a una misma dirección de memoria son permitidas.

Poder computacional en la PRAM Fácil de implementar Menor poder computacional EREW CREW ERCW CRCW Difícil de implementar Mayor poder computacional

Ejemplo 1: Reducción paralela

PROBLEMA 1. Dado un arreglo A de n = 2^k números, y una PRAM con n procesadores {P1, P2, ..., Pn}, se desea calcular la suma S = A(1) + A(2) + ... + A(n). Cada procesador Pi ejecuta el mismo algoritmo. ?

Algoritmo en PRAM Input: Un arreglo A de orden n = 2^k almacenados en memoria compartida de una PRAM con n procesadores. Las variables locales inicializadas son n y el número de procesador i. Output: La suma de las entradas de A almacenados en la localidad de compartida S. El arreglo A mantiene sus valores iniciales. Begin 1. read (A(i), a) 2. write (a, B(i)) 3. for h = 1 to log n do if(i <= n / 2^h) then begin read(B(2i – 1), x) read(B(2i), y) Set z:= x + y write(z, B(i)) end 4. if i = 1 then write(z, S)

Algoritmo en PRAM Begin 1. read (A(i), a) O(1) u.t. 2. write (a, B(i)) O(1) u.t. 3. for h = 1 to log n do O(log n) u.t. if(i <= n / 2^h) then begin read(B(2i – 1), x) read(B(2i), y) Set z:= x + y write(z, B(i)) end 4. if i = 1 then write(z, S) O(1) u.t.

Cómo sería el BROADCAST ???

? PROBLEMA 2. Suma de prefijos (prefix sum) Sea {x1, x2, ..., xn} un conjunto de elementos y sea “*” una operación binaria asociativa => la suma de prefijos S es una secuencia tal que S = x1 * x2 * ... * xi para 1 <= i <= n ?

Algoritmo en PRAM Input: Un arreglo de n = 2^k elementos (x1, x2, ..., xn) donde k es un entero no negativo. Output: La suma de prefijos sumai, para 1 <= i <= n. Begin 1. if n = 1 then{ set sumai:=x1; exit } 2. for 1 <= i <= n/2 pardo set yi := x_{2i-1} * x_{2i} 3. Recursivamente, calcula la suma de prefijos de {y1, y2, ..., y_{n/2} } y se almacenan en z1, z2, ..., z_{n/2} 4. for 1 <= i <= n pardo{ i even : set sumai := z_{i/2} i = 1 : set suma1 := x1 i odd > 1 : set sumai := z_{(i-1)/2} + xi } end

TOP500 http://www.top500.org