Descargar

El diseño de algoritmos paralelos

Enviado por Pablo Turmero


Partes: 1, 2

    edu.red

    El Modelo Tarea/Canal El modelo tarea/canal consiste de “tareas” y “canales”. Una tarea consiste de un programa, una memoria local y una coleccion de puertas de entrada/salidas. Un canal es una cola de mensajes que conecta la puerta de salida de una tarea a la puerta de entrada de otra tarea.

    edu.red

    Tareas Bloqueadas Una tarea que recibe está bloqueada, si trata de recibir un mensaje que no ha llegado Una tarea que envia nunca bloquea aun si mensajes que mandó previamente por el mismo canal no se han recibido. Recibir es una operación sincrona y enviar es una operación asincrona

    edu.red

    La Metodologia de Diseño de Foster Particionar la computación y los datos en pedazos Determinar los patrones de comunicaciónes entre las tareas Aglomerar tareas Asignar tareas a procesadores. Ian Foster, Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering, Addison-Wesley,1995

    edu.red

    Particionar Es el proceso de dividir la computación y los datos en pedazos. Descomposición de dominio consiste de dividir los datos en pedazos y luego determinar como asociar computaciones con los datos. Descomposición funcional consiste de dividir la computación en pedazos y luego asociar datos con las computaciones.

    edu.red

    Particionar (cont) Los pedazos de computación se llaman tareas primitivas.

    Es deseable determinar tantas tareas primitivas como sea posible para maximizar el grado de paralelismo.

    edu.red

    Lista de Cotejos para Evaluar la Calidad de Particionar Hay un orden de magnitud de tareas primitivas mayor que la cantidad de procesadores en la computadora que se usará Computaciones redundantes y estructuras de datos redundantes se han minimizados Tareas primitivas son aproximadamente del mismo tamaño La cantidad de tareas es una función creciente del tamaño de problema.

    edu.red

    Comunicaciones Determinar los patrones de comunicaciones entre tareas primitivas. Cuando un número pequeño de tareas necesitan valores de otras tareas se crean canales entre las tareas envueltas. Esta es comunicación local. Comunicación global occure cuando todas o casi todas tareas necesitan valores de las otras tareas.

    edu.red

    Lista de Cotejos para Evaluar la Calidad de Comunicaciones Deben ser balanceadas entre las tareas. Cada tarea comunique con un número pequeño de sus vecinos. Las tareas pueden llevar a cabo sus comunicaciones en paralelo. Las tareas pueden llevar a cabo sus computaciones en paralelo.

    Partes: 1, 2
    Página siguiente