1.3. PROGRAMACION PARALELA - PowerPoint PPT Presentation

About This Presentation
Title:

1.3. PROGRAMACION PARALELA

Description:

1.3. PROGRAMACION PARALELA El enfoque tradicional, consiste en extraer el paralelismo de los lenguajes actuales (C++, Fortran, Ada, Prolog, Lisp, etc). – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 10
Provided by: HebertoFe
Category:

less

Transcript and Presenter's Notes

Title: 1.3. PROGRAMACION PARALELA


1
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
Detectar el paralelismo y
Compilador
cuando asignar
recursos.
Programa Objeto
Paralelo
Sistema de
Ejecución
2
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.

3
Programación Procedural ...
Programación paralela ...
  • 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.

4
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

5
Paradigmas de la programación paralela
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.

6
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.

7
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

8
(No Transcript)
9
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
Write a Comment
User Comments (0)
About PowerShow.com