• No results found

Deregulation and Liberalisation – Concept and development

Jerárquica, con recálculo total

La arquitectura Maestro-Esclavo (MS) presenta diferencias topológicas respecto a las arquitecturas que preservan la topología arbórea del P sistema (arquitecturas P2P y HP2P). Esta diferenciación hace que exista un procesador que no contiene membranas, y sin embargo, contenga las referencias y la topología de todo el P sistema. Desde el punto de vista de la eficacia del uso del tiempo por la distribución, es éste el único procesador que puede contener toda la información necesaria, al ser el único que está conectado al resto.

Para plantearse realizar una redistribución de las membranas, con el fin de mejorar los tiempos de evolución, primero se deben tener datos del estado actual de los tiempos involucrados por cada membrana, y por cada procesador. Esta es la arquitectura que más facilita este estudio. Además de la idea de que cada procesador controle el tiempo que tarda cada membrana, y comunique éste al procesador maestro, el procesador maestro se puede encargar de este estudio para el conjunto de membranas de un procesador; pues el desencadenante de que se puede realizar alguna mejorara es que se produzcan retrasos en algún procesador. El procesador maestro realiza un recorrido por todos los procesadores esclavos, comunicando los nuevos objetos que deben recibir las membranas del proceso de comunicación, y las membranas disueltas, para que reajusten sus proxies. Después, pasa a un modo de espera activa hasta que los procesadores le comuniquen los objetos a transferir de la nueva transición. Si se ha podido realizar un reparto mejorado, como se muestra en la fórmula 4.7, el procesador maestro no esperará, pues cuando termine de comunicar con el último esclavo, el primer esclavo estará listo para realizar la comunicación. En el caso de que no se pueda dar este bucle continuo de comunicaciones, el procesador maestro deberá esperar a que el primer procesador esclavo termine su aplicación. También se puede dar el caso de que el primero si termine a tiempo para enlazar su comunicación a la del maestro con el último procesador esclavo, pero otro procesador esclavo

no disponga del tiempo suficiente.

El análisis de las posibles condiciones que permiten que se puedan realizar -o al menos intentar- buscar distribuciones mejores a partir de cierta evolución, se divide en los casos en los que la estimación considera que hay un retardo entre la comunicación de una etapa y la siguiente y los que no. En el caso de que se produzca retardo, el procesador maestro debe analizar donde se está produciendo dicho retraso, y los motivos. Como sabe el momento en el que debe empezar la comunicación de un procesador hacia él, puede cuantificar este tiempo. Esto debe ser realizado para cada uno de los procesadores, para saber si es algo común y constante en todos, o sin embargo, se está produciendo solo en alguno de ellos. Si solo se produce en alguno de ellos (i), no significa que los procesadores siguientes -recordando que los esclavos tienen un orden- (j >i) no tengan este inconveniente, puesto que si el retardo en alguno de los siguientes (retardo en j) es menor que el retardo eni, no será observado por el procesador maestro, pues el retardo de i ha provocado que a j le diera tiempo a terminar su aplicación. Una alternativa para evitar que exista algún j (procesador que tarda más en evolucionar que el tiempo estimado, pero que no es observado por el procesador maestro), es reordenar los procesadores, de forma que i pase a ser el último procesador de la lista, y no impida que el procesador maestro detecte la existencia de procesadores j. Esta forma de reordenar, provoca que los procesadores que menos tiempo necesitan para aplicar, y comunicar con el maestro, estén situados al principio. A partir de esta nueva situación, se puede plantear si una reubicación de membranas puede mejorar los tiempos globales. Existen múltiples alternativas para realizar la distribución, y debe ser realizada en base al conocimiento que se pueda tener del P sistema y la distribución actual. De entre las alternativas, está la de dividir los procesadores que más tarden, para que el tiempo de aplicación se reduzca en dicho procesador (si bien, aumenta el tiempo de comunicación, pues hay un procesador más). La alternativa clásica de buscar una nueva redistribución global, se considera descartada, pues se prevé que surjan los mismos problemas que se han encontrado en la arquitectura P2P. Otra de las alternativas existentes es la reubicación de una membrana del procesador esclavo que más tiempo necesita en el procesador que menos tiempo requiere. Por supuesto, la membrana a cambiar deberá ser elegida en función del tiempo necesario por cada membrana para aplicar, y por la consanguinidad de las membranas existentes en el procesador más eficiente. Por supuesto, siempre que se realiza cualquier estimación y medición real, hay que tener presente la aleatoriedad del sistema, que puede producir efectos, como que un procesador unas veces sea el más rápido y otras el más lento. También se debe tener que presente que para algunas de las indicaciones realizadas, es necesario conocer en detalle el tiempo invertido por cada procesador en la aplicación e incluso, el tiempo de cada membrana, y por tanto, es necesario que este tiempo sea enviado del procesador esclavo al maestro.

En el caso de que todos los procesadores tarden menos en la fase de aplicación que el tiempo que el procesador necesita para comunicar con los demás esclavos, pueden surgir motivos para reorganizar la distribución. Este caso significa que se invierte demasiado tiempo en la comunicación, y que posiblemente una distribución con menos procesadores pueda ser más eficiente. Se debe estudiar por tanto cual es el grado de pérdida de tiempo y de rendimiento de los procesadores, por espera a que se realicen las comunicaciones. Si la pérdida es pequeña, una redistribución, posiblemente no mejore, pero si la pérdida es grande, es muy probable que haya mejoras. Aunque otra vez más, hay que tener presente que la redistribución no debe hacerse de inmediato, pues los tiempos de una transición variarán para la siguiente. Así, en vez de observar los valores para una configuración, se debe realizar un estudio sobre la tendencia mostrada. Por supuesto, para realizar esta comparativa, son los procesadores esclavos los que deben comunicar al procesador maestro los tiempos, pues éste no puede calcularlos. Una vez que se decide que se va a realizar la redistribución, se debe analizar cómo realizarla. En este caso, el objetivo es eliminar un procesador, en base a reubicar sus membranas. Se debe estudiar la consanguinidad de las membranas que contiene, y para cada membrana buscar los procesadores donde se encuentran las membranas con las que realiza la comunicación, y así evitar comunicaciones entre procesadores. También se debe tener presente la carga que soporta cada uno de los procesadores esclavos, pues ahora necesitarán más tiempo, para aplicar en las nuevas membranas. Respecto a qué procesador seleccionar para ser eliminado, la selección puede ser cualquiera de ellos. Sin embargo, los procesadores que tengan pocas membranas conllevan un menor trasiego de membranas, y por tanto, menos tiempos para realizar la reubicación. Aún así, cualquiera de los algoritmos desarrollados para la distribución estática, y teniendo presente que una vez que se selecciona cual es el procesador a eliminar no se variará la composición de los otros procesadores, son métodos eficientes para este objetivo.

Con la aplicación de redistribuciones, el caso de que existan retardos o no, irá alternándose. Cuando la distribución provoque que los procesadores esclavos introduzcan retrasos, con la redistribución, se pasará a una distribución con más procesadores, donde es posible que se eliminen estos retardos, e incluso, que el procesador esclavo no pare de comunicar, pudiendo dejar ociosos a los procesadores esclavos. En este caso, se reducirá el número de procesadores, y se puede pasar al caso original de que los procesadores esclavos provoquen retrasos (por la aplicación de reglas en las membranas que contienen). Como la reubicación de membranas y el estudio de la posible nueva disolución conlleva una pérdida de tiempo y por tanto del rendimiento del sistema, se debe ser cauto con estas redistribuciones, pues en base a estos principios, siempre es posible realizar una redistribución que mejore la situación actual (aunque empeore a posteriori). Además, el no determinismo del sistema hace que aunque en una configuración el tiempo sea uno, en otra configuración posterior el tiempo varíe. La propuesta es realizar este estudio de si es necesaria (y cómo) una redistribución cada cierto número de transiciones, con el fin de que el tiempo destinado para este estudio no sea excesivo comparando con el tiempo utilizado en la evolución del sistema.

Con esta arquitectura se puede realizar el análisis de la redistribución en cualquier momento, como se observa con los algoritmos reubicativos para dicha arquitectura. Incluso, se puede predecir y determinar que se va a realizar una redistribución, y realizar esta después, sin que por ello se alteren los resultados. Con esta premisa, y teniendo en cuenta que el procesador maestro en ciertos momentos está ocioso, o esperando por operaciones de entrada-salida (comunicaciones con otros procesadores), puede utilizar estos tiempos de ociosidad para determinar si es necesaria una redistribución, y para ejecutar los algoritmos distribuidores para decidir cuál sería esta nueva distribución.

La arquitectura Maestro-Esclavo Jerárquica (HMS) es una variante de la arquitectura MS, que presenta grandes dificultades para la distribución dinámica. En primer lugar, esta arquitectura utiliza intervalos fijos de comunicación, tanto en los procesadores esclavos como en los maestros. Aunque una alternativa es eliminar estos intervalos fijos escalonados y que todos los niveles comuniquen a la vez, la pérdida de rendimiento general sería mayor a la ventaja de una nueva redistribución. En esta arquitectura, el procesador maestro principal, o raíz del árbol de procesadores, es el encargado de realizar la reubicación de objetos entre las distintas membranas (comunicación de objetos), así como la indicación de las membranas disueltas. Es este procesador el que puede contener toda la información del P sistema y de la distribución, así como de la eficiencia del mismo. Por ello, es este procesador el encargado de estudiar si es necesaria una redistribución, y decidir cuál; además de comunicar la decisión al resto de procesadores de forma jerárquica. En esta arquitectura jerárquica, la modificación de la topología del P sistema sería posible, considerando que las membranas están ubicadas exclusivamente en los procesadores esclavos. Una reconfiguración del árbol de procesadores maestros podría obtener mejores resultados, aún si modificar los procesadores esclavos. Pero a pesar de esta posibilidad, el recálculo, y reconfiguración de dicho árbol sería demasiado costoso y complicado, comparado con las posibles ventajas que se podrían obtener. Una alternativa sería balancear el árbol, es decir, que todos los procesadores maestros tuvieran el mismo número de hijos, con el fin de que el añadir más procesadores redujera el tiempo de aplicación en los procesadores, cuando éste fuera el problema detectado. Aunque como se usan estimadores que se corresponden con el máximo tiempo posible, este problema no sucede.

Los problemas de que las estimaciones no se correspondan con los tiempos reales, y por tanto, en el sistema se produzcan retardos en las comunicaciones que conllevaría a que no se pudiera utilizar un tiempo fijo, es que una membrana se disuelva, y por tanto, las comunicaciones ya no se realizan entre membranas madre-hija, sino entre abuela-nietas, según la configuración inicial. Es posible que, la distribución original contemple que las dos membranas involucradas estén en el mismo procesador, pero sin embargo, después de la disolución de una de ellas (la hija), la comunicación sea entre membranas ubicadas en distinto procesador, cuyo tiempo de comunicación no ha sido contemplado. Si sucediera este caso, el procesador maestro podría detectarlo, y para solventarlo, aumentar el intervalo de comunicación para cada procesador, comunicándoselo a todos, por supuesto. Aún a pesar de detectar este inconveniente, se podrían producir colisiones. La dinámica del P sistema, provocada por su no determinismo, conlleva a que esta arquitectura sea complicada de tratar. Se debe controlar que no ocurren comunicaciones que sobrepasan el tiempo destinado a ellas. Y en caso de que esto ocurra, paralizar la evaluación, calcular el nuevo tiempo necesario y comunicarlo a todos los

procesadores, para que no se vuelvan a producir colisiones. Por ello, el procesador maestro raíz debe estar pendiente de la existencia de estos inconvenientes. Además de ser utilizado como detector, debería ser el encargado de realizar un análisis con el fin de detectar si el sistema puede mejorar sus tiempos de evolución. Este procesador dispone de una gran cuota de tiempo ocioso, lo que le permite realizar este análisis después de realizar su fase de comunicación a todos sus procesadores hijos, con los objetos utilizados en la comunicación. Así, aún a pesar de realizar el análisis con datos de la transición anterior, es posible que realice un buen análisis de los datos, debido a la alta cuota de proceso que les dedica. Además, como ocurre con el resto de arquitecturas, por ser algo inherente a los P sistemas, no se deben tomar decisiones en base a las estimaciones de una sola evolución, pues dependen de decisiones no deterministas, que pueden revertirse en la siguiente evolución. El procesador maestro, más que replantearse la redistribución de membranas, debe encargarse de tener perfectamente acotado el tiempo máximo de comunicación y aplicación, de forma que no se produzcan colisiones, pero que tampoco se haga demasiada espera innecesaria, pues esto repercutiría en el rendimiento del sistema. Así, la mayor ventaja que este proceso de monitoriación conseguiría, es reducir el tiempo de evolución gracias a la reducción del intervalo de tiempo que cada procesador dispone para comunicar. Además, sería posible, si se observara que un procesador es capaz de ralentizar a los demás, que se optara por una redistribución de alguna membrana, con el fin de buscar un mejor equilibrio entre el consumo de tiempo por los procesadores. En este caso, la idea inmediata es mover alguna membrana del procesador que más tarda, al procesador que menos tarda. Si bien, hay que observar las repercusiones que tiene, puesto que movilizar una membrana que solo comunica con membranas de su mismo procesador, aumentaría los tiempos de comunicación. Así, se debe buscar un equilibrio entre la ganancia de movilizar una membrana a otro procesador que dedique menos tiempo a la aplicación de reglas, y la pérdida de tiempo por la comunicación. Si bien, es posible que incluso se produzcan mejoras. Es importante, por motivos similares a los mostrados, el analizar si es posible colocar alguna membrana en otro procesador, pues la disolución de membranas provoca que las comunicaciones entre membranas varíen. Por ejemplo, el procesador maestro raíz, aprovechando su tiempo ocioso, podría comprobar que ocurriría si un alguna membrana ascendiente o descendiente de las membranas disueltas en esas transición fuera reubicada en otro procesador.