Introducción - Departamento de Lenguajes y Sistemas Informáticos
Introducción - Departamento de Lenguajes y Sistemas Informáticos
Introducción - Departamento de Lenguajes y Sistemas Informáticos
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Programación Concurrente. I.T. <strong>Sistemas</strong> y Gestión. Relación <strong>de</strong> Problemas 11Tema 4. <strong>Sistemas</strong> <strong>de</strong> Paso <strong>de</strong> Mensajes35. Consi<strong>de</strong>rar un conjunto <strong>de</strong> n procesos conectados en forma <strong>de</strong> anillo. Cada proceso tieneun valor local almacenado en su variable local mi_valor. Deseamos calcular la suma <strong>de</strong>los valores locales almacenados por los procesos <strong>de</strong> acuerdo con el algoritmo que seexpone a continuación. Los procesos realizan una serie <strong>de</strong> iteraciones para hacer circularsus valores locales por el anillo. En la primera iteración, cada proceso envía su valor localal siguiente proceso <strong>de</strong>l anillo, al mismo tiempo que recibe <strong>de</strong>l proceso anterior el valorlocal <strong>de</strong> éste. A continuación acumula la suma <strong>de</strong> su valor local y el recibido <strong>de</strong>s<strong>de</strong> elproceso anterior. En las siguientes iteraciones, cada proceso envía al siguiente procesosiguiente el valor recibido en la anterior iteración, al mismo tiempo que recibe <strong>de</strong>l procesoanterior un nuevo valor. Después acumula la suma. Tras un total <strong>de</strong> n-1 iteraciones, cadaproceso conocerá la suma <strong>de</strong> todos los valores locales <strong>de</strong> los procesos. Implementar estealgoritmo en MPI.mi_valor=0suma3= 00mi_valor=1suma =113suma = 3 suma = 120mi_valor=3suma =ITERACIÓN 3 12mi_valor=2suma = 2suma = 5 suma = 31ITERACIÓN 22suma = 5 suma = 4suma = 6 suma = 613suma = 6 suma = 30ITERACIÓN 2suma = 6 suma = 6RESULTADO