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

Introducción a la programación paralela




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    Metodología de Diseño

    Monografias.com

    Etapas de la Paralelización
    Partición/Descomposición: La computación se descompone en pequeñas
    tareas que forman las unidades de concurrencia.

    Coordinación: Incorporación de mecanismos para la denominación, comuni-
    cación y sincronización de las tareas.

    Aglomeración/Asignación: Las tareas se agrupan en procesos más grandes
    para optimizar el rendimiento y/o reducir costes de desarrollo.

    Proyección: Los procesos se asignan a los procesadores disponibles de forma
    que se maximice la utilización y minimice los costes de comunicación.

    Monografias.com

    Partición/Descomposición
    ¿Cómo particionar la Computación?
    Código Estructurado: Sugerido por el código mismo (lazos, estructuras
    de datos, ..)
    Código no Estructurado: Siempre se puede recurrir a heurísticas dinámicas.
    ¿Qué ocurre con los datos?
    Pase de Mensajes: Deben particionarse con las computaciones (localidad)
    Memoria Compartida: La localidad es siempre un factor de rendimiento
    Estrategias de Particionamiento
    Descomposición en Dominios : Se particionan las estructuras de datos y se
    generan las tareas a partir de las computaciones asociadas a cada partición.
    Descomposición Funcional : Se particionan las computaciones en tareas
    funcionales y se asocian los datos maximizando la localidad.

    Monografias.com

    Descomposición en Dominios
    Método:
    1. Los datos se particionan en grupos pequeños de tamaño similar
    2. Se diseñan las tareas, a partir de cada uno de los grupos anteriores y
    todas sus computaciones asociadas.
    Estilo usual en la programación SPMD
    Elección de los Datos:
    Es preferible la mayor estructura de datos o la que se accede con mayor
    frecuencia
    En códigos grandes puede ser más eficiente manejar varias descomposiciones
    diferentes.

    Monografias.com

    Descomposición Funcional
    Método:
    1. Las computaciones se descomponen en tareas disjuntas
    2. Los datos se estructuran en función de las tareas diseñadas
    En computación numérica, es más usual la descomposición en dominios.

    La descomposición funcional se suele combinar con la descomposición
    en dominios en una jerarquía en dos niveles.
    Modelo Atmosférico
    Modelo
    Hidrológico
    Modelo
    Oceánico
    Modelo de Superficie
    Terrestre
    Modelo
    Climático

    Monografias.com

    Ejemplo de descomposición funcional
    Procedure search (A)
    begin
    if (solution (A) ) then
    score = eval (A)
    report solution and score
    else
    foreach child A (i) of A
    search (A(i))
    endfor
    endif
    end
    Algorithm 1.1
    A recursive formulation of a simple search
    algorithm. When called to expand a search
    tree node, this procedure checks to see
    whether the node in question represents a
    solution. If not, the algorithmmakes recur-
    sive calls to the same procedure to expand
    each of the offspring nodes.
    Task estructure for the search example.
    Each circle represents a node in the search
    tree and hence a call to the search proce-
    dure. A task is created for each node in the
    tree as it is explored. At any one time, some
    tasks are actively engaged in expanding the
    tree further (these are shaded in the figure);
    others have reached solution nodes and are
    terminating, or are waiting for their offspring
    to report back with solutions. The lines re-
    present the channels used to return solutions.

    Monografias.com

    Checklist de la partición
    1) Define su partición al menos un order de magnitud más de
    tareas que procesadores en su sistema paralelo?

    2) Elimina su partición redundancia en computación y almace-
    namiento?

    3) Son las tareas de tamaño comparable?

    4) Escala el número de tareas con el tamaño del problema?

    5) Ha identificado varias particiones alternativas?

    Monografias.com

    Coordinación
    Comunicación/Sincronización:
    Memoria compartida: Mientras la comunicación es implícita, la sincroniza-
    ción suele implementarse mediante construcciones específicas (exclusión
    mutua y sincronización de sucesos)
    Pase de Mensajes: La comunicación y sincronización de sucesos utilizan el
    mismo mecanismo (mensajes explícitos), mientras que la exclusión mutua se
    verifica por defecto.

    Algunos lenguajes modernos (ej., lenguajes
    de paralelismo de datos) hacen transparente
    la comunicación y sincronización explícita
    Influencia de la Descomposición
    Descomposición en Dominios: La organización eficiente de la comunicación
    es usualmente compleja, debido a las dependencias entre las tareas.
    Descomposición Funcional: La organización eficiente de la comunicación es
    inmediata, consecuencia directa de la descomposición y corresponde al flujo
    de datos entre tareas

    Monografias.com

    Esquemas de Comunicación
    Comunicación Local/Global
    Comunicación Local: Cada tarea se comunica con pocas tareas
    Comunicación Global: Cada tarea se comunica con muchas ( o todas las)
    tareas.
    Categorización de las necesidades de comunicación
    Comunicación Estructurada/No estructurada
    Comunicación Estructurada: Una tarea y sus vecinos forman una estructura
    regular
    Comunicación No estructurada: El patrón de comunicaciones es irregular.
    Comunicación Estática/Dinámica
    Comunicación Estática: La identidad de las tareas comunicantes no cambia
    con el tiempo
    Comunicación Dinámica: El patrón de comunicaciones cambia durante la
    ejecución del programa.
    Comunicación Síncrona/Asíncrona
    Comunicación Síncrona: Los productores y consumidores operan de forma
    coordinada (cooperan)
    Comunicación Asíncrona: El consumidor obtiene datos sin la cooperación
    del productor

    Monografias.com

    Coordinación
    Debemos establecer el acceso a datos, y la comunicación y sin-
    cronización entre las tareas.

    Alternativas
    Memoria Compartida: Los datos se distribuyen a lo largo del espacio de
    memoria física, y la comunicación/sincronización se produce implícitamente
    a través de variables definidas en el espacio compartido.
    Pase de mensajes: Los datos deben distribuirse explícitamente en las memo-
    rias locales y la comunicación/sincronización debe establecerse explícitamente
    (las tareas deben saber cómo están distribuidos los datos)
    La distribución de datos no es esencial en un modelo
    de memoria compartida, pero sí recomendable

    Monografias.com

    Comunicación Global
    Reducción Paralela
    S = ? Xi
    N-1
    i =0
    S
    0
    2
    1
    3
    5
    4
    7
    6
    0
    2
    1
    3
    5
    4
    7
    6
    0 1 2 3 4 5 6 7
    Algoritmo Centralizado y
    Secuencial
    6 5 4 3 2 1 0
    Algoritmo Distribuido
    (segmentado)

    Monografias.com

    0
    2
    1
    3
    5
    4
    7
    6
    S
    S
    S
    S
    S
    S
    S
    1 1 1 1
    2 2
    0 0 0 0 0 0 0 0
    Algoritmo Divide &Conquer

    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