next up previous contents
Next: 2.3.3.3 Consideraciones generales Up: 2.3.3 Consideraciones de utilización Previous: 2.3.3.1 Memoria compartida   Índice General

2.3.3.2 Paso de mensajes

El uso de arquitecturas MPP permite como principal ventaja una mayor escalabilidad de rendimiento por medio de la expansión del número de nodos. Sin embargo, debido a la arquitectura de un equipo MPP, se requiere un paradigma de programación diferente, que permita a los programas en cada nodo ejecutarse independientemente cuando lo necesiten, y explotar las facilidades de comunicación que son básicas para la arquitectura MPP cuando el diseño de la aplicación así lo requiera.

El esquema más utilizado en sistemas masivamente paralelos, o en general sistemas que constan de nodos independientes comunicados a través de algún medio, es el conocido como paso de mensajes.

Bajo el esquema de paso de mensajes, cada proceso se ejecuta independientemente, y únicamente se comunicará con otros procesos cuando el programa contenga instrucciones para hacerlo explícitamente. Esta comunicación se realiza a través de ``mensajes'' que contienen la información que requieran intercambiar los procesos. Un sistema de paso de mensajes proporciona funciones básicas, o ``primitivas'', para envío y recepción de mensajes. Es responsabilidad del programador el crear los mensajes con la información relevante, enviarlos a los procesos que requieren hacer uso de esta información, y asegurarse de que estos procesos empleen dicha información adecuadamente.

De estas características básicas se observa que el esquema de paso de mensajes se presta a las características de una máquina masivamente paralela; cada proceso se ejecutará, normalmente, en un nodo, con un solo procesador y área de memoria; y la comunicación entre procesos se realiza únicamente cuando estos así lo requieran, de forma que el bus de comunicaciones se emplea únicamente cuando es necesario.

A cambio de esta mayor eficiencia en el uso del bus de comunicaciones, que en sistemas MPP es el elemento que más se presta a ser un ``cuello de botella'', el esquema de paso de mensajes es más complicado de programar que un esquema de memoria compartida. Una aplicación hecha con paso de mensajes, que se compone de varios procesos ejecutándose independientemente, debe realizarse teniendo en cuenta algunos factores inherentes a la arquitectura MPP. Todo intercambio de información entre procesos debe realizarse explícitamente y planearse cuidadosamente, teniendo en cuenta qué procesos tendrán cierta información, y qué otros procesos pueden requerirla, a fin de realizar el intercambio de esta información.

La gran mayoría de los problemas requieren, además de intercambio de datos entre los procesos, sincronización de los mismos, en casos en los cuales algún proceso requiere que otros terminen sus tareas antes de poder continuar. Al nivel más básico, el esquema de paso de mensajes no proporciona primitivas para estas operaciones, de modo que el programador tiene que implementarlas utilizando mensajes, esto incrementa la complejidad de la aplicación.

Finalmente, si se tiene en mente que la ventaja de una máquina MPP es su escalabilidad, se debe diseñar la aplicación teniendo en cuenta el aprovechamiento de un crecimiento en cuando al número de elementos de procesamiento en el equipo. Si no se planean cuidadosamente las comunicaciones entre procesos, es posible que la aplicación sature el bus de comunicaciones si se incrementa la cantidad de nodos o elementos de procesamiento.


next up previous contents
Next: 2.3.3.3 Consideraciones generales Up: 2.3.3 Consideraciones de utilización Previous: 2.3.3.1 Memoria compartida   Índice General
2002-05-15