La siguiente operación realizada por un P sistema en su evolución no se realiza internamente en la membrana, sino que se realiza entre todas las membranas del sistema. En el micropaso de comunicación de objetos, cada membrana comunicará a sus adyacentes los objetos generados, en función de los destinos de los mismos indicados en sus reglas de evolución. Es este paso el que marca la diferencia entre las simulaciones secuenciales o paralelas con memoria compartida de las implementaciones distribuidas. En los primeros casos, para realizar las operaciones de comunicación no se deben tener en cuenta más que las limitaciones marcadas por el secuenciamiento de operaciones o por el acceso a la memoria compartida, que ya han sido tenidas en cuenta en la aplicación de reglas. Sin embargo, en las implementaciones distribuidas, en la comunicación de objetos influyen varios procesadores y el medio de transmisión, lo que lo diferencia de la etapa de aplicación de reglas.
Las primeras implementaciones distribuidas ([Syropoulos et al., 2004] y [Ciobanu and Guo, 2004]) se basaban en colocar cada membrana en un procesador. Aunque la intuición propone crear una conexión bidirecional entre cada dos membranas conectadas, como la tecnología no permitía (ni permite) esta imple- mentación, realizaron una comunicación mediante una red Ethernet, donde todos los procesadores estaban conectados a la misma red. Ciobanu encontró problemas en la comunicación por colisiones entre los mensajes enviados por las membranas, y por tanto, los tiempos de evolución en algunos casos eran desorbitados. En palabras de Ciobanu:
The response time of the program has been acceptable. There are, however, executions that could take a rather long time due to unexpected network congestion.
Tejedor [Tejedor et al., 2008] estudió los problemas de la comunicación en las implementaciones, y propo- ne que las membranas no deben ser distribuidas tan ligeramente, sino que debe observarse el comportamiento global del sistema, y propone una arquitectura para la distribución de las membranas en procesadores y la forma en que estos deben comunicar para evitar las conexiones y mejorar el tiempo de evolución del sistema.
Así pues, el tiempo de comunicación de objetos vendrá determinado por la arquitectura de distribución de membranas utilizada. Del estudio de Tejedor se concluye que hay 3 elementos importantes para las arqui- tecturas de distribución, y por ello, el resto de investigadores del área las han tenido en cuenta para sus propuestas. Estos elementos son: la distribución de membranas, el uso de proxies, y el paso de tokens en la comunicación.
Aunque en los trabajos previos se propone ubicar una membrana en cada procesador (o todas en el mismo, en los simuladores secuenciales), Tejedor propone que es mejor buscar un equilibrio entre el tiempo que el sistema tarda en aplicar reglas y el que tarda en comunicar (los objetos); de forma que dependiendo de las características del P sistema y de la arquitectura elegida, se pueden conseguir mejores resultados (menores tiempos de evolución) ubicando varias membranas en el mismo procesador.
Para comunicar dos membranas que se encuentran en distintos procesadores, la comunicación no se realiza de forma directa, sino que en los procesadores existen proxies encargados de realizar la comunicación. El uso de proxies permite controlar el flujo de la comunicación, pero sobre esto se hablará más adelante.
El paso de tokens para la comunicación es un mecanismo para evitar las colisiones. En cada momento solo un procesador puede estar comunicando, de forma que el uso del canal compartido en cada instante del tiempo solo es usado por uno de los integrantes. Cuando las membranas terminan su fase de aplicación, deberían pasar a la fase de comunicación, y por ello, transmitir mensajes por la red. Con el uso de proxies y el secuenciamiento de mensajes entre los procesadores, se evitan las colisiones. Un procesador solo podrá transmitir cuando tenga el token. Esto limita el número de comunicaciones a solo una (la del procesador que tiene el token), por lo que limita el paralelismo del sistema, dejándolo en un proceso secuencial. Sin embargo, otros investigadores han encontrado arquitecturas donde el paso de objetos puede ser realizado en paralelo por varios procesadores evitando la colisión, pero requiriendo un orden en el envío de mensajes.
Existen cuatro arquitecturas destacables, que se basan en los principios mencionados, pero que muestran una topología lógica de conexiones diferente y hace uso de los elementos descritos, aunque con diferente aplicación. Estas arquitecturas son: comunicación entre iguales o Peer-to-Peer, comunicación entre igua- les jerárquica o Hierarchical Peer-to-Peer, maestro-esclavo o Master-Slave y maestro-esclavo jerárquico o Hierarchical Master-Slave.
Entre iguales (Peer-to-Peer - P2P)
La primera arquitectura propuesta para la distribución de membranas en procesadores es la que presentó Tejedor junto al estudio mencionado anteriormente en su artículo titulado “An architecture for attacking the bottleneck communication in P System” [Tejedor et al., 2008]. Esta arquitectura posteriormente pasó a llamarse Peer-to-Peer (P2P) por la consideración de que todos los procesadores son iguales, en contraposición con otras arquitecturas. En esta arquitectura se utilizan los elementos importantes mencionados para las arquitecturas de distribución tal y como han sido nombrados, puesto que es en este escrito donde surgieron por primera vez. La característica principal de esta arquitectura es que propone que los procesadores formen un árbol (independientemente de la conexión física que la sustente). Para que las comunicaciones sean mínimas, según la teoría de grafos, el número de conexiones debe ser P−1, donde P es el número de procesadores. Para que se cumpla esta condición, la distribución de membranas en procesadores debe preservar la topología arbórea. La figura 4.2 muestra como sobre el mismo P sistema se pueden hacer distribuciones que preserven la topología de árbol.
Como pueden existir dos o más membranas en un procesador que comuniquen con sus respectivas membranas hijas localizadas en el mismo procesador hijo, el proxy organiza la comunicación para que solo exista una comunicación entre dos proxies alojados en diferentes procesadores. En el ejemplo de la figura 4.2, las membranas2y3alojadas en el procesador1, comunican con las membranas4y5respectivamente,
alojadas en el procesador 2. Para reducir el número de comunicaciones, los proxies se encargan de las
Figura 4.2: Ejemplo de distribución de un P sistema en procesadores sin conservar la topología
arbórea (izquierda) y preservándola (derecha). [Fuente: [Tejedor et al., 2008]]
Figura 4.3: Ejemplo de cómo el uso de proxies para la comunicación del ejemplo de la figura
4.2 reduce el número de comunicaciones. [Fuente: [Tejedor et al., 2008]]
Con esta arquitectura, el tiempo que un P sistema tarda en pasar de una configuración a otra es
T=kTapl+2(P−1)Tcom (4.1)
dondek es el número de membranas por procesador, considerando que hay una distribución del número de membranas uniforme; Tapl es el tiempo máximo de aplicación de la membrana que más tarda;Tcom es
el tiempo máximo de comunicación entre dos proxies; y P es el número de procesadores. Aunque aquí se está utilizado Tcom como el tiempo máximo de comunicación entre dos proxies, no es el concepto original
introducido por Tejedor [Tejedor et al., 2008], sino que él lo denominaba Tcompr o, mientras que Tcom es el tiempo máximo que tardaría un procesador en comunicar con otro si cada procesador contuviera sólo una membrana. Así, en los términos de Tejedor, Tcompr o=cTcom, donde c es una constante que vendrá determinada por las comunicaciones entre las membranas alojadas en diferentes procesadores, siendo su valor mucho más pequeño quek, y siempre mayor o igual que1.
En base a esta fórmula, se puede estimar el tiempo mínimo (Fórmula 4.2) necesario por el P sistema, y cuáles son los valores dek (Fórmula 4.3) yP (Fórmula 4.4) para obtener este tiempo óptimo.
Tmi n=2 q
2M TaplTcom−2Tcom (4.2)
kopt= &s 2M Tcom Tapl ' (4.3) Popt= &s M Tapl 2Tcom ' (4.4)
Peer-to-Peer Jerárquica (Hierarchical Peer-to-Peer - HP2P)
En base a la arquitectura propuesta por Tejedor, Bravo introduce una variante a la misma, mejorando los tiempos de comunicación y el rendimiento global del sistema. La mejora introducida consiste en la comunicación simultánea entre varios procesadores sin colisiones. El modelo propuesto [Bravo et al., 2007a] realiza una distribución simétrica de los procesadores, dando lugar a la arquitectura P2P Jerárquica o HP2P. Es decir, considerando el árbol de procesadores, cada procesador contendrá A procesadores hijos. En otros términos, se hará una distribución de amplitud A. Se tendrá un árbol balanceado de altura L (o L niveles, considerando la raíz el nivel1) y amplitud A. Un ejemplo conL=4 y A=3se aprecia en la figura 4.4
Los dispositivos switches para redes, permiten aislar subredes, eliminando las colisiones. Si la subred formada por los procesadores 3, 4, 5 y 6 de la figura 4.4 están comunicándose entre sí, con el uso de
switches, los procesadores7,8,9y10podrían hacerlo simultáneamente con la garantía de que no existirían
colisiones.
En base al uso de este componente electrónico, Bravo propone realizar comunicaciones en paralelo, pero con un cierto orden, para evitar las colisiones. Sobre el modelo propuesto por Bravo, en [Peña et al., 2011] se hace un reordenamiento de las comunicaciones, para contemplar la fase de disolución de las membranas, y que la comunicación y disolución puedan realizarse con una sola comunicación como se verá con el uso del proxy. En la figura 4.5 se observa el orden de mensajes que se enviarán entre los procesadores (serán los proxies los encargados de enviar dichos mensajes).
En esta arquitectura se siguen utilizando los principios marcados por Tejedor de distribuir varias mem- branas en cada procesador que serán evolucionadas secuencialmente, y después, realizar una comunicación de objetos y aplicar la distribución a partir de proxies. La distribución de membranas se hará manteniendo la topología arbórea del P sistema. La diferencia entre ambas arquitecturas radica en el orden de envío de
Figura 4.4: Distribución de procesadores en forma de árbol con4niveles de altura y amplitud
3. [Fuente: [Bravo et al., 2007a]]
Figura 4.5: Cronograma de la arquitectura HP2P con
4
niveles y amplitud
3. [Fuente:
mensajes, permitiendo Bravo la concurrencia de éstos, y variando el concepto de token en la comunicación, puesto que serán múltiples tokens los que se utilicen. Esta variante, por supuesto, varía los tiempos de evo- lución del sistema, mejorándolos. El tiempo vendrá determinado por el número de procesadores utilizados, que está descrito en base a AyL. La fórmula 4.5 define el tiempo necesario para cada paso de evolución.
TH P2P=
TaplM(A−1)
AL−1 +(L A+L−2)Tcom (4.5)
Para obtener los mejores resultados, es necesario localizar los valores de A y L que minimicen dicha función. Sin embargo, el procesado no da una fórmula sencilla por la limitación de A y L como valores enteros, y la mejor forma de observarlo para utilizarlo, es mediante la gráfica de la figura 4.6.
Figura 4.6: Amplitud y número de niveles para obtener el mínimo tiempo usando la arqui-
tectura HP2P. [Fuente: [Peña et al., 2011]]
Maestro-Esclavo (Master-Slave - MS)
En contraposición a las arquitecturas P2P donde se debe realizar una distribución de membranas que preserve la topología en forma de árbol del P sistema, Bravo en [Bravo et al., 2007b] propone la arqui- tectura Maestro-Esclavo (MS). En esta arquitectura la primera diferencia es la utilización de dos tipos de procesadores: el maestro (PM) y los esclavos (PS). El procesador maestro será el encargado de organizar la
comunicación entre los esclavos, organizando los multiconjuntos, mientras que los esclavos serán los únicos que contendrán membranas. Además, las conexiones estarán limitadas, existiendo solo una entre el maestro y cada esclavo, mientras que dos esclavos no se comunicarán entre sí.
Como el resto de arquitecturas, cada procesador esclavo contendrá también el mismo número k de membranas, y utilizará un proxy para las comunicaciones. Con estas características, la mayor aportación de esta arquitectura es que cualquier distribución de membranas pueda ser válida. Bravo, muestra en la fórmula 4.6 el tiempo necesario para que una membrana evolucione. Además, como se observa en la figura 4.7, se pueden solapar las etapas de aplicación y evolución, mejorando los tiempos. Y con una correcta selección de membranas, se puede reducir el tiempo global del sistema, haciendo un solapamiento total. En el caso de solapamiento total, el mejor de los resultados vendrá determinado por la ecuación 4.7.
Figura 4.7: Cronograma de la arquitectura Maestro-Esclavo, con
4
esclavos. [Fuente:
[Bravo et al., 2007b]]
T =2P Tcom if(P−1)Tcom>kTapl (4.7)
En base a la fórmula general del comportamiento de la membrana con esta arquitectura (fórmula 4.6, Bravo obtuvo los parámetros para la mejor distribución, que vienen determinados por los mejores valores para k (fórmula 4.8) y el número de procesadores esclavos Ps (fórmula 4.9). A partir de estos valores, se
puede determinar el tiempo mínimo necesario para un paso de evolución del P sistema, que está determinado en la fórmula 4.10. k= &s M Tcom Tapl ' (4.8) PS= &s M Tapl Tcom ' (4.9) Tmi n=2 q
M TaplTcom+Tcom (4.10)
Maestro-Esclavo Jerárquica (Hierarchical Master-Slave - HMS)
Bravo observó que en su modelo Maestro-Esclavo las comunicaciones eran realizadas secuencialmente, lo que ampliaba el tiempo de comunicación en escenarios con muchos procesadores esclavos, provocando esperas en las membranas. Para evitar ese comportamiento lineal de las comunicaciones decidió utilizar una arquitectura distribuida de forma jerárquica [Bravo et al., 2008] unificando las ventajas del modelo Maestro- Esclavo, con el modelo Peer-to-Peer Jerárquico. Utilizaría un árbol de procesadores balanceado con factores A yL de forma semejante a la arquitectura HP2P. En el último nivel, colocaría los procesadores esclavos, siendo el resto procesadores maestros. Con este modelo permite agrupar procesadores, creando subredes, y utilizar switches para realizar comunicaciones en paralelo. Utiliza las ventajas de la arquitectura MS, para la distribución dek membranas en cada procesador, sin la limitación de la preservación de la topología marcada por el P sistema. Aunque Bravo propone un secuenciamiento de mensajes entre los diferentes procesadores, en [Peña et al., 2011] se añade la etapa de disolución de membranas adjuntándolas al envío de objetos. El nuevo orden de comunicación está indicado en la figura 4.8.
Figura 4.8: Cronograma de la arquitectura HMS con
4
niveles y amplitud
3. [Fuente:
[Peña et al., 2011]]
En estas condiciones, el número de procesadores esclavos y maestros viene determinado por las fórmulas 4.11 y 4.12 respectivamente, dando un total de procesadores en términos de A y L según se indica en la fórmula 4.13. Ps=AL−1 (4.11) Pm= AL−1−1 A−1 (4.12) P=A L −1 A−1 (4.13)
Según estos parámetros, el tiempo necesario en cada paso de evolución es el indicado en la fórmula 4.14. TH M S=
M Tapl
AL−1 +(L A+L−2)Tcom (4.14)
Para obtener la mejor distribución de membranas, que dará el menor tiempo de evolución, es necesario conocer los valores óptimos de AyL, considerando que estos deben ser enteros. Para ello, se puede utilizar la gráfica de la figura 4.9.
En la propuesta inicial de Păun [Păun, 2000] sobre el funcionamiento de las membranas, cada uno de los micropasos descritos se ejecutan secuencialmente, aunque haya paralelismo dentro de cada micropaso.
Figura 4.9: Amplitud y número de niveles para obtener el mínimo tiempo usando la arqui-
tectura HMS. [Fuente: [Peña et al., 2011]]
Estos micropasos se ejecutan en paralelo en todos los procesadores. Sin embargo, en las implementaciones software y hardware, los recientes estudios han demostrado que algunos micropasos pueden ser agrupados, y ejecutados en paralelo -con nuevos algoritmos- de manera que el tiempo total se reduzca, sin perder las propiedades del sistema. Por ejemplo, para la selección de reglas, como se muestra en [Frutos et al., 2009], y se utiliza en este trabajo. En la figura 4.8 se observa cómo mientras algunos procesadores están comunicando, otros pueden realizar su fase de aplicación. En concreto esta figura muestra como un procesador cuando observa que ha terminado la comunicación, empieza la aplicación de reglas. Pero ocurre que aunque haya terminado la comunicación en la subred en la que él está conectado, la fase de comunicación no ha terminado, puesto que en otra subred se siguen produciendo comunicaciones. Por ejemplo, la subred de procesadores del
3al6 (P3−P6), termina en el tiempo 15de comunicación (t=15). En este instante, los procesadores 4,5
y6pueden empezar su fase de aplicación de reglas al pensar que la fase de comunicación ha terminado. Sin
embargo, en otras subredes, hay procesadores que aún no han terminado de comunicar, como el procesador
7.
Esta idea, que reduce los tiempos de comunicación, superpone las etapas de comunicación y aplicación. Si un procesador no espera a que termine la comunicación en la subred a la que pertenece, y empieza su etapa de aplicación de reglas en el momento en el que termina su comunicación, se puede reducir aún más el tiempo global de evolución. En el mismo ejemplo, el procesador 4 podría empezar su fase de selección
y aplicación de reglas en t=13. La figura 4.10 muestra como queda el cronograma de ejecución con esta
superposición de etapas. Así, entre t=13y t=19se están produciendo simultáneamente comunicación en
unos procesadores, y aplicación de reglas en otros procesadores. Entre que un procesador termina su fase de comunicación, y la red está disponible para una nueva fase de comunicación, transcurren:
T=(A−1)Tcom
Es decir, lo que tardan en comunicar el resto de procesadores esclavos de la subred. En el ejemplo, el procesador 4puede volver a comunicar en t=15si hubiera terminado su fase de aplicación de reglas. Esto
provoca dos tipos de distribuciones posibles en la arquitectura maestro-esclavo jerárquica: las que superponen totalmente la comunicación y la aplicación, y en las que solo hay una superposición parcial. En las del primer grupo, la utilización de la red es máxima, no estando ociosa esperando a que un procesador termine su fase de aplicación. Además, utilizando intervalos fijos de tiempo para la comunicación, cada procesador puede iniciar la comunicación en su tiempo asignado sin observar el estado de la red, y con la certeza de que no se producirán colisiones. Si por el contrario la aplicación de reglas tarda más, y la superposición es parcial, es
Figura 4.10: Cronograma de la arquitectura HMS con4niveles y amplitud3con solapamiento
de etapas. [Fuente: [Peña et al., 2011]]
necesario que el procesador monitorice el estado de la red para no iniciar su comunicación antes del tiempo indicado. Al existir estos dos tipos de superposición de etapas, el tiempo utilizado en cada paso de evolución vendrá determinado por la fórmula 4.15.
TH M S= ( (AL+L−2)Tcom si M Tapl AL−1 ≤(A−1)Tcom M Tapl
AL−1 +(L A+L−A−1)Tcom en otro caso
(4.15) Sobre estas dos opciones, y para cada caso, se debe analizar cuál es la que reduce el tiempo global de evolución. En la figura 4.11 se muestra en función del número de membranas y el cociente entreTapl yTcom,
la mejor combinación de procesadores para minimizar el tiempo de evolución. En concreto, se muestran los valores de la amplitud y la altura. Comparándolo con la evolución sin solapamiento, aumenta la amplitud considerablemente para que el tiempo en el que otros procesadores comunican, se realice la aplicación de reglas.
Observando los cronogramas de las arquitecturas HP2P y HMS, que se encuentran en las figuras 4.5 y 4.8 respectivamente, se observa que salvo la primera evolución del sistema, en el resto, las comunicaciones que se producen requieren el mismo tiempo. La diferencia existente en el comportamiento de ambas arquitecturas reside en el número de membranas localizadas en cada procesador. Mientras que en la arquitectura HP2P se pueden ubicar membranas en todos los procesadores, en el modelo HMS solo se pueden ubicar en los procesadores esclavos. Esto reduce el comportamiento del modelo HMS, solo pudiendo ubicar A−1 veces
Figura 4.11: Amplitud y número de niveles para obtener el mínimo tiempo usando la arqui-
tectura HMS con solapamiento de etapas. [Fuente: [Peña et al., 2011]]
de ambos sistemas son similares, pero en la arquitectura HP2P se obtienen los mejores resultados. Por contra, en la arquitectura HP2P se debe mantener la topología arbórea del P sistema, lo que complica la distribución de membranas en procesadores, mientras que en la arquitectura HMS cualquier distribución proporcionada sería válida.
Con el avance del solapamiento de etapas que se realiza en la arquitectura Maestro-Esclavo Jerárquica, se mejoran los tiempos de evolución del sistema, pudiendo incluso dar tiempos mejores que la arquitectura