Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Herramientas para la programación de aplicaciones paralelas




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    ? Como sabemos, los sistemas paralelos MIMD presentan dos arquitecturas diferenciadas: memoria compartida y memoria distribuida.
    ? El modelo de memoria utilizado hace que la programación de aplicaciones paralelas para cada caso sea esencialmente diferente.
    Programación aplicaciones paralelas

    Monografias.com

    ? Para los sistemas de memoria distribuida (MPP), el “estándar” de programación, mediante paso de mensajes, es MPI.
    ? Para los sistemas de memoria compartida tipo SMP, la herramienta más utilizada es OpenMP.
    ? Otras opciones:
    UPC (Unified Parallel C)
    shrmem (Cray)
    Tarjetas gráficas: CUDA / OpenCL
    Programación aplicaciones paralelas

    Monografias.com

    Earth Simulator
    Programación aplicaciones paralelas

    Monografias.com

    OpenMP
    una pequeña introducción

    Monografias.com

    ? OpenMP es el estándar actual para programar aplicaciones paralelas en sistemas de memoria compartida.
    Introducción
    ? No se trata de un nuevo lenguaje de programación, sino de un API (application programming interface) formado por:
    ? directivas para el compilador
    (C) #pragma omp < directiva>

    ? unas pocas funciones de biblioteca
    ? algunas variables de entorno

    Monografias.com

    ? El modelo de programación paralela que aplica OpenMP es Fork – Join.

    En un determinado momento, el thread master genera P threads que se ejecutan en paralelo.
    (Gp:) thread master

    FORK
    JOIN
    (Gp:) región paralela

    (Gp:) thread master

    Introducción

    Monografias.com

    ? Todos los threads ejecutan la misma copia del código (SPMD). A cada thread se le asigna un identificador (tid).
    ? Para diferenciar las tareas ejecutadas por cada thread:

    ? if (tid == 0) then … else …
    ? constructores específicos de reparto de tareas (work sharing).
    Introducción

    Monografias.com

    ? En resumen, partiendo de un programa serie, para obtener un programa paralelo OpenMP hay que añadir:
    ? directivas que especifican una región paralela (código replicado), reparto de tareas (específicas para cada thread), o sincronización entre threads.
    ? funciones de biblioteca (include < omp.h>): para gestionar o sincronizar los threads..
    Introducción

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter