Descargar

Programación paralela. Metodología de la programación

Enviado por Pablo Turmero


Partes: 1, 2

    edu.red

    Programación paralela Especificación de problema ? algoritmo paralelo.

    Programación paralela: no hay recetas, creatividad, aproximación metodológica.

    edu.red

    Fases Particionado: descomponer datos y tareas independiente del número de procesadores

    Comunicación: establecer comunicaciones entre tareas.

    Aglomeración: combinación de tareas para reducir costes.

    Mapeo: asignación de tareas a procesadores, maximizar balanceo, minimizar comunicaciones.

    edu.red

    Particionado

    Descomposición del problema de grano fino: gran número de tareas.

    Descomposición del dominio: primero se descomponen los datos y después las tareas.

    Descomposición funcional: primero se descomponen las tareas y después los datos.

    edu.red

    Descomposición del dominio Conjunto de datos del mismo tamaño.

    Tareas que trabajen sobre esos datos.

    Tareas pueden necesitar información de distintos conjuntos de datos.

    Posibles distintas particiones:

    Ejemplo: malla tridimensional.

    edu.red

    Descomposición funcional Puede haber datos distintos para las distintas funciones,

    o compartición de datos:

    Por duplicación,

    Por comunicación

    Ejemplo: modelado del clima, tratamiento de imágenes.

    edu.red

    Particionado, chequeo ¿Las tareas superan al menos en un orden de magnitud el número de procesadores? Si no, poca flexibilidad para los pasos posteriores.

    ¿Se evita duplicación de computación y de almacenamiento? Si no, puede dar lugar a algoritmo no escalable.

    ¿Son las tareas de tamaño similar? Si no, puede ser difícil hacer una asignación balanceada.

    ¿Aumenta el número de tareas con el tamaño del problema? Si no, puede dar lugar a algoritmo no escalable.

    ¿Se han estudiado distintas particiones? ¿y descomposición del dominio y funcional?

    edu.red

    Comunicación Se definen canales (directos o indirectos) entre tareas que tienen que comunicar datos. Se definen mensajes a enviar y recibir.

    En paralelismo de datos no se podrán crear los canales.

    Optimización de prestaciones:

    Distribuyendo comunicaciones (paralelismo en comunicaciones). El sistema puede limitarlo (redes).

    Comunicaciones globales: identificar conjuntos de tareas que intervienen en la comunicación. Utilizar rutinas optimizadas, o programarlas si no están disponibles.

    Solapar comunicación y computación (pipeline).

    edu.red

    Comunicación Ejemplos:

    Suma de n números.

    Relajación de Jacobi.

    Partes: 1, 2
    Página siguiente