12.07.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!