1.3. PROGRAMACION PARALELA

Slides:



Advertisements
Presentaciones similares
Introducción a la Programación
Advertisements

TEMA 1 Introducción a la Programación Concurrente
¿Qué es Sofware? Son el conjunto de instrucciones que dirigen las actividades del Hardware Consiste en programas, módulos de soporte y archivos de datos,
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
Sistema operativo Componentes de un sistema operativo
Arquitectura de Computadores I
Arquitectura de Computadores I PIPELINING. Pipelining Un pipeline es una serie de etapas, en donde en cada etapa se realiza una porción de una tarea.
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Computación PROGRAMACIÓN.
INSTITUTO TECNOLOGICO DE MINATITLAN
Profesor: Ing. Matías Vallerga Ayudante: Lic. Cristian Kenny
Conceptos de Concurrencia
Introducción a la programación
EMISION MULTIPLE DE INSTRUCCIONES
Mejoras a las Máquinas Von Neumann
Composición Interna de un Procesador
APLICACIÓN DE PROCESAMIENTO EN PARALELO BASADO EN OPENMP EN EL MANEJO MATRICIAL USADO EN EL ANÁLISIS DE SISTEMAS ELÉCTRICOS Antonio Ramos Paz 1, Eustaquio.
Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.
Análisis y Diseño de Algoritmos
Paradigmas de Programación
Centralizados y Distribuidos
ARQUITECTURAS SIMD TIPOS
ARQUITECTURA DE MÁQUINAS COMPUTADORAS III
PROGRAMACION CONCURRENTE
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Unidad III Administración de procesos
CONCEPTOS FUNDAMENTALES FORMAS DE ALMACENAR INFORMACION UNIDAD BASE DE INFORMACION: BIT BYTE = 8 BITS UN KILOBYTE = 1024 BYTES UN MEGABYTE = 1024 KILOBYTES.
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Sistemas Concurrentes: programación concurrente
Tema 1 Entorno de la programación. Conceptos elementales Algoritmo  Secuencia ordenada de pasos exentos de ambigüedad que conduce a la resolución de.
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
Overview Sistemas Computacionales
LENGUAJE DE PROGRAMACIÓN
ARQUITECTURAS SIMD Clase Práctica No Vector Processor M-M 1. Estime el tiempo de ejecución de una suma vectorial en un Vector Processor M-M basado.
TEMA 2: Organización de computadores
Características de un sistema operativo
Introducción a los Sistemas Operativos
Sistemas Concurrentes: Conceptos fundamentales
PROGRAMACIÓNPROGRAMACIÓN FCC-BUAP. 1. INTRODUCCIÓN A LA PROGRAMACIÓN.
Sistemas Concurrentes I.T. Informática de Sistemas Curso
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
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
Lenguajes de programación Los procesos concurrentes pueden darse en un sistema de cómputo en los niveles de procesamiento siguientes: De trabajos De tareas.
 Un LENGUAJE DE PROGRAMACION es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas al cabo por maquinas como las computadoras.
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.
Universidad Politécnica de Tulancingo Catedrático Ing. Jorge Luis Neri Trejo Asignatura Ing. De Hardware III Tema Procesamiento Paralelo Presenta Verónica.
Estructura de los Sistemas Operativos
Metodología de la programación
Informática Clase Arquitectura de la Computadora.
Unidad 2 – Gestión de Procesos
1 5. UNIDADES DE PROGRAMAS. 2 Uso de mecanismos de control de secuencia de: Invocaciones Retornos Entre: PPSP 1 a) I R SP 1 SP 2 b) I R Unidades subordinadas.
ARQUICTECTURA DE SERVIDORES
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.
Principio unidad 1.
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
Funciones principales!
UNIDAD 1 Introducción a la Programación OBJETIVO: El estudiante identificará los elementos Básicos de todo lenguaje de programación. Comparando las posibles.
Aspectos de diseñó de los lenguajes de programación
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.
Estructura del sistema operativo
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

1.3. PROGRAMACION PARALELA El enfoque tradicional, consiste en extraer el paralelismo de los lenguajes actuales (C++, Fortran, Ada, Prolog, Lisp, etc). Esto se puede lograr con un compilador que detecte el paralelismo en un programa secuencial y que se produzca código objeto. Programa fuente Escritura en lenguaje C, Secuencial Fortan, Lisp, Prolog, SQL Compilador Detectar el paralelismo y cuando asignar recursos. Programa Objeto Paralelo Asigna recursos durante el tiempo de corrida. Sistema de Ejecución

Programación paralela ... Para la programación de computadoras paralelas, existen 5 tipos de estilos: Prog. Procedural. Se basa en los conceptos de, memoria global, asignaciones, estructuras de control secuenciales. Hay dos clases los llamados lenguajes secuenciales (C, Fortran, Basic) y los lenguajes concurrentes (ADA , OCCAM, C* ). POO. Basada en objetos que se comunican por medio de pasos de mensajes (Smalltalk, C++, OB-OCCAM). Programación Funcional. Opera con una colección de funciones. Existen dos clases: los lenguajes aplicativos (Lisp) y los lenguajes de asignación única para flujo de datos. Programación Lógica. Computación = Demostración. Prolog es el predominante en este estilo y esta basado en las cláusulas de Horn; calculo de predicados (Prolog). Programación Basada en Conocimiento. Lenguajes de sistemas de producción y los de redes semánticas.

Programación Procedural ... Programación paralela ... Programación Procedural ... Lenguajes Convencionales. Categoría que se desarrolló para la programación de computadoras de Von Neumann. Lenguajes Concurrentes. Programación de flujo de control con estructuras de control paralelas basadas en procesos, adicionando mecanismos de comunicación y sincronización.Los mecanismos más comúnmente usados son: pasos de mensajes, memoria compartida global no protegida, memoria compartida protegida por módulos o monitores, incluyen: señales, mensaje de sincronización, memoria auxiliar, eventos semáforos, condiciones, colas y regiones criticas. El estilo SCMD (del inglés Same-Code/Multiple-Data)es el más usado para máquinas SIMD-MIMD. SCMD consiste en distribuir los datos en la memoria de cada procesador (PRAM) y ejecutar el mismo programa en cada procesador.

Programación paralela ... Un programa SCMD consisten en bloques de código con llamadas a rutinas de paso de mensajes; los procesadores ejecutan de manera asíncrona el mismo bloque de código utilizando los datos disponibles en su memoria local, entonces se intercambian datos entre los procesadores; función de sincronización.1 Programador Compilador Programa fuente Paralelo Programa Objeto Realiza algoritmo paralelo para el problema particular Escritura en un lenguaje paralelo de C, Fortan, Lisp, etc. Preserva el paralelismo y cuando es posible asigna recursos. Asigna recursos durante el tiempo de corrida. Sistema de Ejecución

Paradigmas de la programación paralela: Mecanismos de procesamiento paralelo en máquinas monoprocesadores: Pipeline. Reducir el número de ciclos de reloj por Instrucciones. RISC. Inclusión de más de una ALU, procesamiento simultaneo de operaciones. Uso de DMA para dispositivos de I/O. Multiprogramación y tiempo compartido. Facilidad vectorial. La mayoría de las aplicaciones de cómputo las operaciones pueden manipularse por medio de matrices, las cuales pueden tratarse como vectores de tamaño N, donde en un instante un vector puede ser modificado en su totalidad. Máquinas con flujo de datos. Comprende tres fases: Selección: Instrucciones candidatas a ejecutarse. Discriminación: Instrucciones donde los operandos están completos pueden ejecutarse. Ejecución: La operación se realiza y el resultado es usado para despertar a otras instrucciones. Lenguajes funcionales.

Programación paralela ... Máquinas de reducción. Estas consideran que una instrucción es la aplicación de una función, la cual regresa un resultado. Esta selecciona un instrucción cuando esta es requerida por el resultado de otra. Se basa en el flujo de datos. En la mayoría de los sistemas paralelos existen primitivas para el Control del paralelismo: Funciones Fork y Join. Para sistemas con Granulo-Burdo. Funciones PARBEGIN, PAREND. Para indicar un procedimiento paralelo. Funciones COBEGIN, COEND. Para indicar un procedmiento concurrente. Funciones de sincronización, Semáforos y monitores. Funciones para Memoria compartida. Funciones de Señales para sincronización. Colas de mensajes para sincronización. Funciones de Barrera, para asegurar que todos los procesos están listos antes de continuar. Funciones de cerrojos para archivos.

Eficiencia de los sistemas Paralelos ... Uno de los criterios más utilizados para la evaluación de computadoras es el desempeño (Performance). Número de operaciones de punto flotante ejecutadas en un segundo (FLOPS). La máxima velocidad pico de un sistema se calcula por: Speed-UP = Tiempo del mejor programa secuencial / T del programa en P Sp = T1 / Tp. Efficiency = Speed-UP / Numero de Procesadores (P) Ep = Sp / p. Costo del programa paralelo = Tiempo * Número de procesadores. Cp = T * p. Una medida de comparación es el ratio: Sp / Cp = Ep * Sp/T1

Programación paralela … Investigar: OCCAM ADA C* Lenguajes para programación paralela Nuevos lenguajes y tendencias Elaborar un algoritmo Qsort Paralelo en un aquitectura de malla