lunes, 7 de noviembre de 2011

GRID en Optimización



La tecnología actual, y principalmente la informática, ha contribuido de forma única a la resolución de millones de problemas en diferentes ámbitos y disciplinas, constituyendo hoy en día el motor de procesamiento y fuente de recursos absolutamente imprescindible.

Desde sus orígenes, la informática ha visto la luz de su evolución en las actividades científicas, más precisamente en sus necesidades de almacenamiento y procesamiento de datos. Y si bien en la mayoría de los casos la ciencia y otra variedad de disciplinas han visto satisfechos sus requerimientos, aún quedan desafíos abordables que esperan a ser atendidos. Un claro ejemplo es la capacidad de procesamiento requerida en ambiciosos proyectos de investigación científica, simulaciones a gran escala, toma de decisiones a partir de grandes volúmenes de información y cientos de casos imaginables que no encuentran una solución, o quizá parte de ella, en las herramientas disponibles en la tecnología actual.

Este artículo está basado en la  “computación grid” (En castellano: rejilla, tramado, entrelazado, enrejado). Varios conceptos similares coexisten acerca de qué es un grid. Uno de ellos, elaborado por el Grid Computing Information Centre, una de las asociaciones dedicada exclusivamente al desarrollo de esta tecnología, llama grid a un “tipo de sistema paralelo y distribuido que permite compartir, seleccionar y reunir recursos ‘autónomos’ geográficamente distribuidos en forma dinámica y en tiempo de ejecución, dependiendo de su disponibilidad, capacidad, desempeño, costo y calidad de servicio requerida por sus usuarios”. Según esta definición, se busca aprovechar la sinergia que surge de la cooperación entre recursos computacionales y proveerlos como servicios.
La aplicación de Grid en la que vamos a profundizar es en la optimización. Al optimizar procesos cuyo comportamiento no está determinado a priori, es necesario considerar la incertidumbre asociada a la predicción de dicho comportamiento. Esto conlleva la construcción de modelos de gran tamaño que tengan en cuenta esa incertidumbre y ofrezcan resultados que sean óptimos frente al abanico de situaciones posibles. Ejemplos de este tipo de problemas  son la planificación y operación de sistemas eléctricos, la planificación de la producción, la logística del transporte, la gestión de carteras de valores… Como consecuencia de su gran tamaño, en muchas ocasiones es necesario descomponer los problemas de optimización estocástica para poder resolverlos. Las posibilidades que ofrecen los grid para resolver estos problemas son muy importantes, las cuales son entornos de cálculo distribuido que reúnen gran cantidad de recursos de cálculo.
Los entornos grid son sistemas de cálculo distribuido formados por gran cantidad de equipos que se emplean como un gran ordenador virtual. Las características que definen un grid son:
  • Está compuesto por una gran cantidad de equipos que pueden tener características muy diferentes en cuanto a prestaciones hardware y de la plataforma sobre la que se ejecutan.
  • Estos equipos pueden estar dispersos geográficamente en las distintas organizaciones que participen en ese grid, lo que complica su gestión y coordinación.
  • Los equipos están disponibles de forma dinámica, porque como medio de comunicación se emplea habitualmente Internet, que no fue diseñado para mantener unos requisitos de fiabilidad. Además, ni el número de equipos ni su estado de carga es conocido a priori por el usuario cuando lanza trabajos al grid.
  • Es un sistema que debe ser escalable, es decir, debe estar pensado para poder crecer de tamaño con facilidad, ya que su objetivo es agrupar la mayor cantidad posible de recursos.
Por encima de los componentes físicos del grid (ordenadores, red de comunicaciones y otros recursos disponibles) se encuentra un middleware que es el software encargado de su gestión. La estructura de este software de gestión puede tener distintos grados de complejidad en función de las necesidades y dimensiones del grid en el que se ejecute, pero por lo general consta de al menos estos componentes.

ü  Un gestor que mantiene una lista de los recursos disponibles en el grid y que los asigna a las peticiones que reciba.
ü  Un componente que ejecuta los trabajos en cada uno de los equipos de cálculo.
ü  Otro componente que permite el acceso de las aplicaciones al grid, teniendo en cuenta la política de seguridad del sistema.

El método por el cual se utilizan los entornos grid para resolver problemas de optimización, consiste en la descomposición por escenarios completos, esto permite resolver el subproblema de cada escenario de forma independiente y asignar cada subproblema a un equipo diferente. En la resolución de cada subproblema se realizan dos tipos de cálculos:
  •  En primer lugar, se resuelve el subproblema de cada escenario completo.
  • En segundo lugar, se procede a calcular las consecuencias de las desiciones propuestas por los demás subproblemas, como si el propio subproblema fuese en esta ocasión el problema esclavo de los demás. Para esto se modifica el subproblema, eliminando los nodos comunes con nada uno de los demás escenarios, y se resuelve el problema resultante para las propuestas de los subproblemas de esos escenarios.

Con este algoritmo de solución se combinan varias resoluciones tradicionales simultáneas. El segundo punto conlleva un coste computacional adicional que no tiene sentido si este procedimiento no puede ser resuelto en paralelo. Sin embargo, por medio del cálculo paralelo se distribuye esa carga computacional y puede obtenerse mejoras en el tiempo total de ejecución, como se mostrara en el apartado de resultados. Para conseguir esta paralelización, se envía cada subproblema a un equipo, que se encarga de ejecutar las dos fases del cálculo que se han comentado para su subproblema: primero se calcula una nueva propuesta de decisiones propuestas por los demás escenarios en la iteración anterior. Este proceso iterativo continúa hasta que se alcanza una precisión suficiente en los valores de las soluciones de los subproblemas, que significa que se ha conseguido un acuerdo suficiente en los valores de las variables comunes a los diferentes escenarios.

REFERENCIAS BIBLIOGRÁFICAS
  • www.icai.es/publicaciones/anales_get.php?id=1537. Optimización bajo incertidumbre. Técninas de descomposición y aplicación en Grid.

No hay comentarios:

Publicar un comentario