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

Programación de Sistemas de Memoria Compartida




Enviado por Pablo Turmero



Partes: 1, 2, 3


    Monografias.com
    ? 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.

    Monografias.com
    ? Alternativas:
    • usar un lenguaje paralelo nuevo, o modificar la sintaxis de uno secuencial (HPF, UPC… / Occam, Fortran M…).
    • usar un lenguaje secuencial junto con directivas al compilador para especificar el paralelismo.
    • usar un lenguaje secuencial junto con rutinas de librería.

    Monografias.com
    ? En el caso de memoria compartida, tenemos más opciones:
    > trabajar con procesos (UNIX)
    > usar threads: Pthreads (POSIX), Java, OpenMP…

    Monografias.com
    (Gp:) heap
    (Gp:) pila
    (Gp:) IR
    (Gp:) proceso j
    (Gp:) rutinas interrup.
    (Gp:) código
    (Gp:) ficheros

    ? procesos concurrentes: Fork / Join
    ? gran overhead, son muy “caros”

    Monografias.com
    (Gp:) heap
    (Gp:) rutinas interrup.
    (Gp:) código
    (Gp:) ficheros

    (Gp:) pila
    (Gp:) IR
    (Gp:) thread 1

    (Gp:) pila
    (Gp:) IR
    (Gp:) thread 2

    ? los threads son más “ligeros”
    ? la sincronización (variables compartidas) es sencilla
    ? habitual en el S.O. (solaris, windows XP…)

    Monografias.com
    ? Para los sistemas de memoria distribuida, el estándar actual de programación, mediante paso de mensajes, es MPI.
    ? Para los sistemas de memoria compartida, de tipo SMP, la herramienta más extendida es OpenMP.
    ? En ambos casos hay más opciones, y en una máquina más general utilizaremos probablemente una mezcla de ambos.

    Monografias.com
    ? Qué esperamos de una “herramienta” para programar aplicaciones en máquinas de memoria distribuida (MPI):
    • un mecanismo de identificación de los procesos.
    • una librería de funciones de comunicación punto a punto: send, receive…
    • funciones de comunicación global: broadcast,, scatter, reduce…
    • alguna función para sincronizar procesos.

    Monografias.com
    ? Qué esperamos de una “herramienta” para programar aplicaciones en máquinas de memoria compartida:
    • un mecanismo de identificación de los threads.
    • un método para declarar las variables como privadas (private) o compartidas (shared).
    • un mecanismo para poder definir “regiones paralelas”, bien sea a nivel de función o a nivel de iteración de bucle.
    • facilidades para sincronizar los threads.

    Monografias.com
    ? Qué no esperamos de una “herramienta” para programar aplicaciones paralelas:
    • un analizador de dependencias entre tareas (queda en manos del programador).

    Monografias.com
    Introducción
    ? OpenMP es el estándar actual para programar aplicaciones paralelas en sistemas de memoria compartida tipo SMP.

    Entre otras características, es portable, permite paralelismo “incremental”, y es independiente del hardware.

    Participan en su desarrollo los fabricantes más importantes: HP, IBM, SUN, SG…

    Partes: 1, 2, 3

    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