PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:

Slides:



Advertisements
Presentaciones similares
“Fundamentos de Sistemas Distribuidos”
Advertisements

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
LAN de computadores personales El objetivo de las LAN de computadores personales es el compartir recursos dentro de un entorno reducido, específicamente.
LAN de computadores personales El objetivo de las LAN de computadores personales es el compartir recursos dentro de un entorno reducido, específicamente.
Multiprocesadores 3.1 Dominios de aplicación
Presentación y organización del curso
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Módulo I: PRINCIPIOS Y CONCEPTOS BÁSICOS DE LA INFORMÁTICA (20%)
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors MOVING JAVA INTO MOBILE PHONES Josep Pinyol.
Fecha: 11/09/13.  Todos los sistemas distribuidos constan de varias CPU, organizadas de diversas formas.  La forma de interconectarlas entre sí. 
Ing. Katty Lagos Ortiz. Imagine un escenario en el que una organizaci ó n tiene 10 empleados que usan computadoras para realizar sus tareas diarias. Adem.
Tecnología Cliente Servidor
Mejoras a las Máquinas Von Neumann
Universidad Centroamericana
Sistemas Distribuidos y Paralelos
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.
Desarrollo de aplicaciones web en entorno servidor
Departamento de Computación, FACYT, Universidad de Carabobo
Tipos de Computadoras Deacuerdo a lo o que Procesan y su velocidad. Herramientas Computacionales 1 Instituto de Ciencias y Estudios Superiores de Tamaulipas.
Algoritmos Distribuidos Semana 1. Parte 2 Comunicación por Pase de Mensajes Claudia León Universidad Central de Venezuela Facultad de Ciencias Escuela.
Introducción a la Computación Paralela Germán Larrazábal Departamento Computación, FACYT, Universidad de Carabobo, Venezuela
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Procesamiento paralelo
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Asignación de Espacio No Contiguo
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
Desarrollo de aplicaciones para ambientes distribuidos
TEMA 2: Organización de computadores
Organización de Computadoras
Características de un sistema operativo
O Funcionamiento, ventajas y alcance o ESTUDIANTE: EDWIN ARAY VÉLEZ o PROFESOR: ING. JOSÉ MEDINA o FUNDAMENTOS TECNOLÓGICOS DE INFORMACIÓN.
Introducción a los Sistemas Operativos
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)
Telecomunicaciones y Trabajo Distribuido. Sistema Distribuido Recursos Servidor Red Servidor Nodo ANodo C Nodo B.
ARQUITECTURAS PARALELAS
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Sistemas Operativos Avanzados
Tema 5: Multiprocesadores
Escuela Normal “Profr. Darío Rodríguez Cruz”
Universidad Politécnica de Tulancingo Catedrático Ing. Jorge Luis Neri Trejo Asignatura Ing. De Hardware III Tema Procesamiento Paralelo Presenta Verónica.
Teoría de Sistemas Operativos Sistemas distribuidos.
Unidad 2 – Gestión de Procesos
REDES COMPUTACIONALES
ARQUICTECTURA DE SERVIDORES
 Estaciones de Trabajo: Cada computadora conectada a la red conserva la capacidad de funcionar de manera independiente, realizando sus propios procesos.
COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS.
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
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.
* UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNIC IONES ADMINISTRACION DE SERVIDORES «ARQUITECTURA DE COMPUTADORAS»
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
INTRODUCCIÓN A LAS REDES DE COMPUTADORAS. ·
Computadoras de Alto Rendimiento (HPC)
o Es un conjunto de operaciones distribuidas, con la finalidad de compartir hardware y software o Permite el intercambio de información ente ordenadores.
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
QUE ES UNA RED Una red es un grupo de equipos de sobremesa o portátiles (y otros dispositivos de red, como impresoras) conectados entre sí El propósito.
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,
Conociendo el modelo Cliente-Servidor
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
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:

PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida: OpenMP Programación en memoria distribuida: MPI

Uso de varios procesadores trabajando juntos para resolver una tarea común: –Cada procesador trabaja en una porción del problema. –Los procesos pueden intercambiar datos, a través de la memoria o por una red de interconexión. Muchas posibilidades: –Pipeline –Cachés –Paralelismo a nivel de instrucción –Ejecución fuera de orden –Especulación –Varios procesadores en un chip –LAN de altas prestaciones ¿Qué es la programación paralela?

Programación concurrente: Varios procesos trabajando en la solución de un problema, puede ser paralela (varios procesadores) Computación heterogénea: Varios procesadores con características distintas Programación adaptativa: Durante la ejecución el programa se adapta a las características del sistema Programación distribuida: Varios procesadores geográficamente distribuidos. Hay paso de mensajes pero se necesita infraestructura especial Computación en la web: Necesidad de herramientas que permitan la utilización de sistemas de computación en la web Computación cuántica o biológica ¿Qué es la programación paralela?

Límites para una única CPU –Memoria disponible –Prestaciones La programación paralela permite: –Resolver problemas que no caben en una CPU –Resolver problemas que no se resuelven en un tiempo razonable Se pueden ejecutar –Problemas mayores –Más rápidamente –Más problemas Necesidad de la programación paralela

La velocidad de los computadores secuenciales convencionales se ha incrementado continuamente para adaptarse a las necesidades de las aplicaciones - Procesadores de E/S. Procesamiento en tiempo compartido. - Jerarquía de Memorias. Memorias cache. - División de la memoria principal en bloques. - Multiplicidad de unidades funcionales - Segmentación encauzada dentro de la CPU. Pipeline. Necesidad de la programación paralela

El rendimiento de los computadores secuenciales está comenzando a saturarse. Solución: Usar varios procesadores. Sistemas paralelos. Con la tecnología VLSI, el costo de los procesadores es menor. Aspectos a tener en cuenta en la computación paralela son: - Diseño de computadores paralelos. Escalabilidad y Comunicaciones. - Diseño de algoritmos eficientes. No hay ganancia si los algoritmos no se diseñan adecuadamente. ¿Mayor aceleración con mejores algoritmos que con mejores sistemas? - Métodos para evaluar los algoritmos paralelos: ¿Cómo de rápido se puede resolver un problema usando una máquina paralela? ¿Con qué eficiencia se usan esos procesadores? - Lenguajes para computadores paralelos. Flexibles para permitir una implementación eficiente y que sean fáciles de programar. - Herramientas para la programación paralela. - Programas paralelos portables. - Compiladores paralelizantes. Necesidad de la programación paralela

Computador secuencial: SISD Procesador Memoria Instrucciones: de memoria a procesador Datos: entre memoria y procesador

SIMD. Una única Unidad de Control. La misma instrucción se ejecuta síncronamente por todas las unidades de procesamiento. Sincronización automática. Requiere menos hardware porque sólo necesita una U.C global y menos memoria porque tiene una sola copia del programa. Computador paralelo: SIMD Procesador programa instrucciones datos

Computador paralelo: MIMD MIMD. Cada procesador ejecuta un programa diferente independientemente de los otros procesadores. Almacena el programa y el Sistema Operativo en cada procesador. Procesador programa instrucciones datos Procesador programa instrucciones datos Procesador programa instrucciones datos

PPPPPP BUS Memory Memoria compartida – un único espacio de memoria. Todos los procesadores tienen acceso a la memoria a través de una red de conexión: - Bus - Red de barras cruzadas - Red multietapa Memoria distribuida – cada procesador tiene su propia memoria local. Se utiliza paso de mensajes para intercambiar datos. Modelos de computadores

Modelos de memoria compartida Uniform memory access (UMA) Cada procesador tiene acceso uniforme a memoria. También se llaman symmetric multiprocessors (SMPs) Non-uniform memory access (NUMA) El tiempo de acceso depende de dónde están los datos. El acceso local es más rápido. Más fácil y barato de escalar que SMPs

Los sistemas no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. Problema de la coherencia de caché –Puede haber copia de una variable en varias cachés –Cuando un procesador escribe puede no ser visible al resto –Es necesario asegurar la visibilidad o la coherencia de caché Problemas de los sistemas UMA

Sistemas de memoria compartida Redes de barras cruzadas. Conecta p procesadores con b módulos de memoria. Utiliza una red de conmutadores. Normalmente b es mayor que p. El número total de conmutadores requeridos es  (pb). Conforme crece p, la complejidad de la red aumenta según  (p 2 ). Por tanto no son muy escalables en términos de costo.

Sistemas de memoria compartida Redes basadas en buses. Cuando un procesador necesita acceso global a memoria, genera una solicitud al bus. Esta red es atractiva, dada su simplicidad y capacidad para proporcionar acceso uniforme a la memoria compartida. Pero el bus sólo puede llevar una determinada cantidad de datos entre la memoria y los procesadores. El rendimiento se satura para un número pequeño de procesadores. Si los procesadores disponen de memorias locales caché se puede solventar el problema.

Sistemas de memoria compartida Redes de interconexión multietapa. Es un tipo de red intermedia en términos de escalabilidad en costo y rendimiento. El esquema general de un red multietapa tiene p procesadores y b módulos de memoria.

Ejemplo NUMA: SGI Origin 2000

Memoria distribuida anillo Diámetro: p/2

Memoria distribuida Malla Diámetro:  p Toro enlaces circulares Diámetro:  p /2

Memoria distribuida

Servidor de ficheros Estaciones de trabajo red

TOP500 Evolución de los computadores paralelos

Personal: –Uso de OpenMP y MPI en monoprocesadores, y ya bipros Empresas: –Redes o multiprocesadores de reducido tamaño (hasta 16 nodos) –Uso para manejo de volúmenes de datos grandes, sin programación paralela Universidad: –Cartagena: híbrido MC+MD, 4 nodos comunicados con PM y cada nodo 4 procesadores en MC –Murcia: híbrido MC+MD, 8 nodos comunicados con PM y cada nodo 4 procesadores en MC –Resolución de problemas científicos, uso mínimo de paralelismo Grupos de investigación: –Redes de ordenadores, hasta 16, para computación científica o paralelismo –COCI: Red 5 SUN1+1 SUN5, PC bipro, Tetra con 2 duales, 2 bipros; computación paralela y heterogénea En Murcia

Multicore –Actual: Biprocesador Intel, más SUN –En breve: Tetraprocesador Intel Procesadores específicos –Gráficos GPU –De tratamiento de señal DSP –De juegos PSP Computadores heterogéneos –CPU+GPU –Futuro: Plataformas híbridas Itanium2+Xeon con MC –Futuro: Híbridos con Distribuidos –Redes, Grid, Web –P2P, móviles Sistemas actuales y futuros