5
Algoritmos Paralelos Ex´ amen Parcial Prof. Jos´ e Fiestas Universidad Nacional de Ingenier´ ıa 15/05/15 El ex´ amen dura 90 minutos los programas se grabaran en un directorio ”Apellido AP/” en la plataforma (en Apellido se ingresar´ a el apellido del alumno) La copia del ex´ amen contendr´ a las respuestas escritas as´ ı como todas las anotaciones necesarias con respecto a los problemas de programaci´ on 1 Conceptos de algoritmos paralelos Conteste las siguientes preguntas: (puntaje se especifica al final de la pregunta) Ilustre en un esquema (tiempo vs. n´ umero de nodos) en que caso el tiempo total de c´ omputo (tiempo de c´ alculo + tiempo de comunicaci´ on) se incre- menta al incrementar el n´ umero de nodos. Que representa el punto donde los tiempos de c´ alculo y comunicaci´ on se cruzan? 1 punto Respuesta: 1

AP Parcial

Embed Size (px)

DESCRIPTION

programacioncc++javaopenmpmpiuni

Citation preview

  • Algoritmos ParalelosExamen Parcial

    Prof. Jose FiestasUniversidad Nacional de Ingeniera

    15/05/15

    El examen dura 90 minutos los programas se grabaran en un directorio Apellido AP/ en la plataforma

    (en Apellido se ingresara el apellido del alumno)

    La copia del examen contendra las respuestas escritas as como todas lasanotaciones necesarias con respecto a los problemas de programacion

    1 Conceptos de algoritmos paralelos

    Conteste las siguientes preguntas: (puntaje se especifica al final de la pregunta)

    Ilustre en un esquema (tiempo vs. numero de nodos) en que caso el tiempototal de computo (tiempo de calculo + tiempo de comunicacion) se incre-menta al incrementar el numero de nodos. Que representa el punto dondelos tiempos de calculo y comunicacion se cruzan? 1 punto

    Respuesta:

    1

  • Un codigo realiza la siguiente operacion iterando un millon de veces

    (x2 + y2)/z + a3 b2 + 6 (1)

    Si el calculo en 10 nodos demora 1 s, calcule los FLOPS (reales) del algo-ritmo. Si las especificaciones de cada procesador indican FLOPS (teoricos)= 2.5 TFLOPS, cual es la eficiencia real de cada procesador ?1 punto

    Respuesta:

    La ecuacion realiza 10 operaciones, es decir 10 106 = 107 operacionesen total. Por ello, los FLOPS= #op.tiempo=10

    7/106 = 10 TFLOPS. Y porprocesador, 1 TFLOP. La eficiencia E = TrealTteorica =1/2.5 = 0.4, o 40 %

    En la siguiente funcionindique en que casos (para el vector a[]) se realizara el numero maximo

    y mnimo de operaciones. Note que el numero de operaciones varia solodentro de la condicion while. En el algoritmo se asume que siempre l esmenor que n.1 punto

    Respuesta

    El mejor caso es en el que el argumento de calculo() es positivo, ya que sia[i] >= 0, solo se realiza una operacion en while (mnimo de operaciones),mientras que si a[i] < 0, se realiza mas de una operacion (peor caso,maximo de operaciones).

    El costo de un algoritmo paralelo de ordenamiento (sort) de n elementosen p procesos esta dado por

    T (p) = (nlog2n

    p) (2)

    calcule la velocidad S(p) y eficiencia E(n, p), dado que el mejor algoritmosecuencial de ordenamiento tiene un costo (nlogn). Como depende elnumero de procesos p del numero de elementos n, si el costo S(p) es

    2

  • constante?2 puntos

    Respuesta:

    La velocidad esta dada por S(p) =TseqT (p) =

    (nlogn)(nlog2n/p)

    = ( plogn ) La

    eficiencia es E(p) =( plog )

    p = (1

    logn ) Y si S(p) es constante, entonces

    S(p) = ( plogn ) = (1), es decir p = (logn)

    2 Operaciones globales de reduccion

    Programe la reduccion de datos con las siguientes condiciones

    genere un vector de enteros, de dimension 10, y realize las siguientes op-eraciones con sus elementos:

    promedio de todos los elementos hallar el maximo y mnimo elemento factorial de sus elementos utilize para ello funciones MPI MIN, MPI MAX, MPI SUM y MPI PROD,

    en MPI Reduce

    3 puntos

    3 Comunicacion bloqueada

    Programe comunicacion P2P (MPI Send, MPI Recv) con las siguientes condi-ciones

    un proceso enva una variable real usuarios que represente el numero deusuarios del proceso actual, al proceso siguiente. Este ultimo acumula elvalor recibido con el suyo y lo enva al siguiente proceso. Por ejemplo,si el proceso rank=0 tiene 1000 usuarios y el rank=1, 2000; el procesorank=0 enviara 1000 usuarios al proceso rank=1, el rank=1 enviara 3000al rank=2, etc.

    Defina el numero de usuarios por proceso como 1000+100rank. Acumuleel valor del numero de usuarios e imprima el resultado cada vez que unproceso sea llamado

    ejecute el programa para 5 procesos y haga una tabla con columnas: rank,usuarios por proceso y suma acumulada

    4 puntos

    3

  • 4 Ecuacion de calor en una dimension

    La distribucion de temperatura (u) en un cuerpo solido en funcion del tiempo(t) y el espacio (x) esta determinada por la ecuacion

    du

    dt kd

    2u

    dx2= f(x, t) (3)

    Resuelva el sistema de ecuaciones formado aplicando el metodo de de-scomposicion de dominio en n*p intervalos iguales (p=numero total deprocesos) y 400 intervalos de tiempo. Cada proceso tendra a cargo n=10intervalos. Utilize las condiciones de frontera u[0] = 100 + 10 sin(t), yu[n+ 1] = 75, donde t es el tiempo actual

    El dominio total es x=[0,1], y el intervalo total de tiempo t=[0,10] Inicializela temperatura a 95 grados (constante en todo el espacio), y el tiempo encero. La constante k = 0.002. Tenga en cuenta que los lmites de intervaloen cada proceso dependen del numero del proceso (rank)

    Discretizar la funcion de la siguiente manerau new[i] = u[i] + (t k/(x)2) (u[i 1] 2.0 u[i] + u[i+ 1])) (4)

    new representa el ndice temporal j+1

    la paralelizacion se llevara a cabo utilizando comunicacion P2P (MPI Send,MPI Recv), donde cada proceso enva la solucion de su extremo izquierdoal su vecino izquierdo, y la solucion de su extremo derecho a su vecinoderecho, y a su vez, recibe la informacion respectiva de sus vecinos. Elprimer y ultimo proceso, sin embargo, utilizan las condiciones de frontera

    ejecute el problema y prepare una tabla con la distribucion de temperat-uras al final de la simulacion. I.e., columnas posicion y temperatura

    8 puntos

    4

  • 5