Archivos de la categoría ‘Grid Computing’

h1

Simulador agentes en el Grid disponible para descarga en sourceforge, versión alpha

Marzo 10, 2007

Ya anunciamos en un post de hace un par semanas que teníamos completado un simulador de agentes en el Grid.

Hemos completado la fase de documentación y hemos añadido un manual de usuario que esperamos sea de utilidad. El release está ahora mismo disponible para descarga en souceforge.

Incluye:

- código fuente

- manual de usuario/tutorial

Debería de ser posible para cualquiera (con algo de background en Grid y manejo de java/eclipse) procesar el manual y ejecutar simulaciones básicas en unos 30 minutos. Animaros a probarlo!

Si encontrais agún problema intentando llevar esto acabo, agradecemos especialmente vuestro feedback.

Si os meteis a inspeccionar el código y tenéis sugerencias y/o recomendaciones, también son especialmente bienvenidas

Si os interesa lo que veais, el proyecto seguirá vivo en sourceforge, estáis invitados a participar activamente. En paralelo iremos informando por el blog de avances importantes :)

h1

IA en el Grid, que aplicaciones existen?

Marzo 2, 2007

El comentario de Luis sobre la necesidad o no de aplicaciones de IA en el Grid nos pareció tan bueno que decidimos responder al reto con un post completo, listando 10 aplicaciones de IA en el Grid, que no serían lo mismo sin ella. Los colocamos en el orden descendente de prioridad. Entendemos aquí prioridad como la necesidad práctica de la solución que se propone para el escenario Grid actual o de futuro próximo, por contraposición a aplicaciones más potentes en un futuro, pero también más inciertas o especulativas. Invitamos a los lectores a discutir sobre la necesidad o no de las aplicaciones propuestas, y eventualmente a variar el orden de las prioridades. Aquí van:

1. “Scheduling” de tareas en el Grid:
Si se quiere que escale a entornos heterogéneos y dinámicos, es preciso dotar a los componentes de control de habilidades de adaptación a los cambios en el sistema.
Cuando la escala del sistema es grande ( >> 1000 nodos) o muy grande ( >> 10000 nodos) esa adaptación debe de ser automática (no supervisada por administradores, o sólo supervisada para cuestiones cruciales) si se quiere mantener el sistema con garantías. Los agentes de software proporcionan numerosas técnicas para esto, manteniendo la autonomía de cada entidad del Grid, algo seguramente muy importante para los administradores de cada organización que participen en un mismo Grid: mantener el control de sus recursos.
Nosotros estamos desarrollando con buenos resultados de momento agentes basados en Reinforcement Learning para scheduling automático en el Grid. Sistemas reales de e-science en el Grid como Pegasus en Chicago ya se han apuntado en algunos trabajo académicos como potenciales beneficiarios de estas técnicas en sus Grids de gran escala.

2. QoS en el Grid:
Grid vs P2P
. La diferencia la marca la calidad de servicio para escenarios generales e interoperables, objetivo principal de la tecnología Grid y responsable de buena parte de sus complejidades. Para gestionar la calidad de servicios entre multiples servicios, se necesitan como mínimo capacidades de negociación automática.

3. Gestión de SLAs:
Los SLAs estandarizan los contratos de provisión de recursos en el Grid, y es un tópico de gran interés en la industria Grid ahora mismo. De nuevo la gestión de SLAs entre servicios de manera automática requiere de coordinación y negociación, ambos escenarios muy desarrollados en la tecnología de sistemas multiagente.

4. Mercados Grid:
Si lo que tenemos es un mercado de recursos en un escenario virtual, porqué no organizarlo como un mercado usando los modelos económicos disponibles? Implementar esto es, de hecho, implemenar un sistema multiagente.

5. Mobile/pervasive/ubiquitous Grid Computing:
Este escenario es favorito de TiG. Avances técnicos importantes en el campo de virtualización son pre-condición para disponer de todos esos dispositivos en un Grid. Pero cuando todo esté listo…. ese escenario es si cabe más dinámico e impredecible que cualquier otro. Capacidad de adaptación será un requisito importante, y cada dispositivo será por supuesto autónomo. Agentes … sí.

6. Organizaciones virtuales en el Grid:
Antes o después esto será una realidad en el mundo globalizado poblado por compañías ávidas de asociarse para obtener ventajas competitivas. Garantizar un mínimo de órden requerirá bastante automatización y capacidad de adaptación por parte de las herramientas de coordinación de políticas en las VOs.

7. Social Network Grid Computing:
Cuando una red social está compuesta no solo personas sino también de máquinas, aplicaciones, sensores… esperamos que interaccionen con nosotros de una manera mínimamente “personalizada”. Sin una inteligencecia artificial mínima ese “nivel de satisfacción” para los usuarios del redes sociales en un Grid nunca se podrá alcanzar.

8. Grid y Web 2.0 :
Hype o no, es muy relevante la cantidad de mashups de los que uno ya dispone para facilitarle la vida en la red. Y si un día los mashups los construyen los propios servicios Grid según lo vayan necesiatando? Ciencia ficción, o no, Grid 2.0. Lo colocamos de 8, por eso eh :P
9. Grid 3.0, semantic Grid:
Semantic Web (Web 3.0 como dicen algunos ahora) convergiendo con el Grid. Hay mucha gente que dice que ese es el escenario definitivo… veremos. Lo que está claro es que hará falta mucha, mucha IA para convertir esto en realidad.

10. Pues aquí ya nos hemos cansado/quedado sin aplicaciones :) Sin embargo aprovechamos para filosofar y condensar los 9 puntos anteriores: Si en algó está de acuerdo la comunidad Grid, es que es importante ofrecer servicios interoperables. Si tenemos servicios interoperables, significa que pueden interoperar. Si mi google reader se lee solo los feeds sin que yo me preocupe de qué está pasando gracias a que hay un estandar RSS, por qué se tendría que terminar ahí la diversión? Si los recursos en Grids de gran escala estuvieran estandarizados, lo lógico sería aprovechar para automatizar muchas cosas. Entonces los futuros servicios Grid, para aprovechar todo ese potencial, deberán ser activos, aprender de las respuestas de los usuarios y de otros servicios, de los cambios en su entorno… deberá tener IA.

En resumen, cuando se requiere coordinación o toma de decisiones automatizada en sistemas de gran escala, dinámicos y heterogéneos (como pasa ya en algunos escenarios Grid, y pasará cada vez más), la IA resulta muy útil. Ahí quedan las 10 aplicaciones, se abre la veda de las discusiones ;)

h1

Web Services, sockets y ThinkInGrid (II)

Diciembre 29, 2006

Creo que los comentarios e inquietudes expuestas por Luís y Lluís se merecían un nuevo post.  Nos hemos sentado Albert y yo, un par de vasos de Coca-cola y este es el resultado:

Web Services e interoperabilidad… ese gran dilema. No creas que no hemos hablado de ello. Si una cosa está clara es que los web Services fueron definidos para solucionar la interoperabilidad. Y después de mucho darle vueltas, creemos que Axis cubre nuestras expectativas. Así, como funcionalidad, se puede desplegar el framework como web service. Esto nos permite conectarnos a un framework remotamente a través de una interface web (pudiendo administrar o requerir ejecuciones).

Como dice Luís "…no es un problema atacar un SW implementado en Java desde un cliente .Net, Python o Symbian C++.." . Yo incluso creo que cosas sencillas y un poco complicadas, que realmente por mi justa experiencia creo que cubrimos el 90% de las necesidades de todos nuestros clientes potenciales. Pero ya puestos a pedir, y espero que no me cobres por ello , conoces alguna tecnología que te cubra todo el abanico de posibilidades?

La API de aplicaciones (ya hablaremos más adelante de que lenguajes soportaremos) permitirá la representación en objetos para su manipulación,  que en última instancia se traduciran a mensajes xml a enviar al FW (a través del puerto nativo). Por lo tanto destacar que tanto los mensajes que llegan a través del web service como en socket son equivalentes.

Lo que se comentaba sobre la API REST, quizás no me he explicado bien. Es justamente lo que tenemos :). Un servidor web + AXIS + XML. Todo y eso, creemos que no debemos olvidar tener un soporte clásico de sockets, porque como dices tu en otras palabras, no se puede pedir todo en esta vida y menos a los web Services.

Ligero, si, ligero, ligero, ligero. Por suerte, el diseño de nuestra arquitectura requiere de un módulo ligero en cada nodo de la red (El middleware) pero nos podemos permitir el lujo de decidir que FW exponen sus servicios en forma de web services, que es la parte central (que no centralizada) de nuestra arquitectura.

Los beneficios que nos aportaba tener sockets y SOA era mayor a los perjuicios de no hacerlo. Encima, está montado de tal forma que se reaprovecha gran parte del código en las dos interfaces (Que en el fondo es una pero con dos puertos de entrada).

La liberación de código está planificada para finales del mes siguiente (si todo va según lo planificado). Como comentábamos en el post del KICK OFF, de entrada no liberaremos el framework.

Sin más me despido. Gracias por vuestros comentarios :)

h1

Web Services, sockets y ThinkInGrid

Diciembre 28, 2006

hspace="4Creo que de entre todas las cosas que estamos desarrollando en ThinkInGrid la más importante se encuentra en la pasarela de entrada (API) a nuestra arquitectura basada en la comunicación por mensajes XML y donde esperamos que empresas de todo el mundo programen sus aplicaciones.

Como conseguir llegar a ser lo suficientemente específicos para que nuestra arquitectura sea sencilla de usar y como llegar a ser lo suficientemente abiertos para no limitar las mentes perturbadas (En las  que me incluyo) a la hora de diseñar una nueva aplicación.

Llegados a este punto y como si de un hijo se tratara actualmente estamos trabajando en ello. Es por eso que hoy quiero mostraros un par de pinceladas sobre la decisión tomada sobre el acceso a la API.

La decisión… no cerrarnos a un solo tipo de acceso. Es por ello que hemos preparado un entorno que permitirá trabajar con web services o con el sistema tradicional de sockets (Habilitando un puerto para dicho proposito). Por supuesto…a gusto del consumidor.

Sobre la primera, el motivo es claro, subirnos al carro de las nuevas arquitecturas SOA, facilitar la comunicación entre máquinas en una red y ofrecer al desarrollador la posibilidad de brindarle las ventajas que proporciona dicha tecnología. Para ello,  mediante un servidor de aplicaciones (Tomcat, WebLogic, etc.), nuestro framework y Axis ofrecemos la posibilidad de interactuar fácilmente con toda la arquitectura grid que pueda tener un dominio o grupo de dominios determinado. Como ejemplo de uso y que nos servirá para accelerar implantaciones en cliente estamos desarrollando un entorno web para el mantenimiento de dominios Grid.

Los sockets, para los nostálgicos, para los que prefieren seguir realizando comunicaciones entre máquinas sin depender de un servidor web, o simplemente para los que por necesidad de entorno precisan de esta comunicación.

¿Que creéis vosotros? En ThinkInGrid creemos que no podíamos descartar ninguna de las dos opciones y es por eso que hemos dedicado nuestro tiempo a implementar las dos posibilidades. Por ejemplo, Albert está acabando unos scripts muy chulos con el ANT para facilitar la carga del framework.

Y eso es todo lo que os puedo contar… seguimos en contacto.

h1

Pole en Grid Computing

Diciembre 20, 2006

En la próxima F1, Alonso ganará las carreras para McLaren, pero muchas más carreras serán corridas antes para posibilitar que su infraestructura, su coche, llegue a las óptimas condiciones que posibilitan al fenómeno asturiano hacer efectivo su potencial. Muchas más incluso de las que correrá el excelente probador del equipo, Pedro de la Rosa. La mayor parte, sin duda, se correrá en los simuladores del equipo Mclaren. Correr una prueba real en la F1 real es caro y limitado por el tiempo disponible; un buen puñado de opciones han de ser pre-seleccionadas para que los probadores determinen la óptima. Estos simuladores son usados en el desarrollo de todos los componentes del monoplaza, así como las pruebas sobre diferentes estrategias.

Con el Grid pasa exactamente lo mismo. Desplegar el middleware de Grid en la infraestructura real es caro en recursos y en tiempo. Realizar mediciones es complicado y muchas veces poco fiable. Las pruebas de prototipo deben de minimizarse, como mucho a un pequeño conjunto de candidatas pre-seleccionadas. La investigación especulativa es prácticamente inabordable a nivel de prototipo. Pero las buenas ideas nacen de buenas especulaciones. Para poder validarlas con un mínimo de fiabilidad, en Thinkingrid hemos completado un nuevo hito: el desarrollo de nuestro simulador de Grid. Incorpora el estado del arte de modelos de alto nivel del Grid, principalmente extraído de las publicaciones deSimGrid. La novedad más importante que aporta nuestro simulador es que está desarrollado sobre Repast, una plataforma de simulación especialmente diseñada para la investigación en sistemas multiagente. Damos las gracias a ambos proyectos por proporcionarnos herramientas tan útiles. Y la pregunta clave, ¿para qué vamos a usar este simulador?

Tenemos dos objetivos principales:

1) Testear y validar estrategias inteligentes de gestión de recursos y meta-scheduling en el Grid.

En el Grid tradicional, Grid-enabled HPC (High Performance Computing), las tareas son distribuidas mediante colas en los recursos y ejecutadas según disponibilidad. Si una tarea tiene problemas, se cancela y se vuelve a lanzar en el mismo u otro nodo. El tipo de aplicaciones que corren en HPC Grid Computing son de “machacar” gran numero de datos, del tipo Biotecnología. Física o análisis financiero. Las tareas son independientes y el costo de hacer un re-scheduling es despreciable comparado con el tamaño global de la tarea.

El middleware y Framework de Thinkingrid permiten extender el Grid a todo tipo de dispositivos. Esto abre el abanico de aplicaciones al Grid transaccional, donde las tareas no son independientes y no es válida la cancelación y el re-scheduling sin más, dado que puede afectar a otras tareas. Es preciso manejar con precisión y flexibilidad el scheduling y balanceo de las diferentes tareas en el Grid.

Los componentes del framework permiten controlar dónde, cuándo y cómo se van a ejecutar las tareas en el Grid, así como la reacción ante eventuales complicaciones. La respuesta automática y escalable (en dimensiones tanto físicas como organizacionales) vendrá dado por el uso de técnicas de IA en el Grid. Para evaluar y optimizar las diferentes técnicas, el simulador es la pieza clave.

2) Grid a la carta

Un escenario bastante común para una empresa que desee mover su infraestructura de IT al Grid es la preocupación de saber de antemano cual será el efecto de esta re-organización. ¿Qué aumento de rendimiento voy a conseguir? ¿Cómo se va a hacer? ¿Cuánto tiempo va a tardar? Si se tuviera que hacer todas las pruebas a nivel del prototipo en la infraestructura de la empresa, la respuesta sería: “no lo sabemos seguro, solo podemos estimarlo… vamos a probar” para todas las cuestiones. Con un simulador validado la situación cambia: “Dime que infraestructura tienes ahora y  te diré que puedes conseguir y como lo puedes conseguir”. El grueso de las pruebas se llevan a cabo en el simulador, cambios y evoluciones se llevan al cabo en el simulador. El costo para la actual infraestructura de la empresa es 0, nada se interrumpe. Cuando se tiene claro lo que se quiere y cómo se quiere, simplemente se despliega la solución optimizada.

Resumiendo, tenemos una nueva herramienta que permitirá que tanto Sergio como yo mismo, que actualmente perseguimos nuestro doctorado en el área de de IA aplicada al Grid, incorporemos en el framework de ThinkinGrid el estado del arte (y mas allá!) de esta materia. Vamos a por la pole :)

Para quien tenga curiosidad en éste área y en el simulador en sí, mantendremos una sección detallada al respecto en la inminente web corporativa de Thinkingrid… stay tuned.

h1

Kickoff (I)

Diciembre 13, 2006

We are getting ready for our leap towards public releases. What we expect to have just after Christmas is:

  • Our open-source multiplatform middleware, along with the binaries for Windows, Mac, Unix/Linux and others such as PSP or Symbian S60; the documentation in Doxygen and the source code
  • A developer portal in Track for the maintenance and improvement of the middleware
  • A limited version of our framework interface available on the Web.
  • Our corporative web, replacing the dull "visit our blog"

We are working hard in the middleware for this "kickoff". We are migrating it to as many platforms as possible, and working hard on the documentation, in and out of the code. Our goal is to get the grid community enrolled in this project.

Borja pointed out that there was not enough talking about how grid standards are being implemented in our middleware. In fact, the first release will not implement the standards, but we have specified, designed and implemented having OGSA and WSRF in mind. The papers about them have always occupied a main place in our desks. Therefore, we have planned to implement the wrapper - that will give the middleware support for the standards - before February 2007.

Last but not least, in this our first kickoff preview, here are the technological specifications of the middleware:

  • Written in ISO C++
  • Size of the binaries: varies, aprox. 400-500kb in Unix/Linux x86 - aprox. 55kb in PSP 1.5
  • Four resource classes fully available in this release: shared memory, disk storage, process execution, MySQL database (their availability depends on the platform)
  • Installation wizard for Windows, Preference Pane for Mac, configure + make scripts for Unix/Linux

In the next kickoff preview, we’ll talk about the inner design of the middleware. Stay tuned.

h1

Instalar nuestro middleware grid en una PSP

Noviembre 17, 2006

Tal y cómo hemos comentado en anteriores ocasiones, uno de los requisitos de nuestro middleware era que fuese posible instalarlo en cualquier dispositivo, incluidos los embedded.

middleware instalado en psp

Al estar programado en ISO-C++ la tarea de portarlo ha sido relativamente sencilla. Los principales quebraderos de cabeza los hemos tenido al utilizar la PSP-SDK por su complejidad y su escasa documentación en algunos aspectos.

Ingredientes:

  • Sony PSP FW 1.5
  • KDevelop
  • PSP-SDK
  • Nuestro middleware ;-)

Read the rest of this entry ?

h1

Grid en la PSP

Noviembre 9, 2006

Después de varios días investigando sobre la SDK para PSP que corre por Internet, hace unos minutos hemos conseguido compilar y probar con éxito la primera versión de nuestro middleware para la pequeña de Sony. Recibe y procesa las peticiones del framework perfectamente. Sólo nos falta integrar nuestros plugins para poder aprovechar los recursos de la PSP de la mejor manera posible.

Ahora ya es tarde, pero prometo ampliar este logro con un post mas largo :D

h1

Aún no piensan en Grid

Octubre 14, 2006

hspace="6Acabo de ponerme a leer la prensa matutina de la red y en ella destaco la noticia que recalca el periódico en portada: El ‘cerebro’ del metro crece para guiar trenes sin conductor de la L-9.

Parece ser que Barcelona empieza a asomar la patita por debajo la puerta en materia de nuevas tecnologías. Es curioso el titular porque si necesitan 2 plantas más para abastecer de inteligencia la nueva línea 9 no me imagino que pasará cuando ha alguien se le ocurra ampliar la infraestructura.

Me gustaría destacar que la noticia habla de la palabra "cerebro". Y no se… a mi me suena a sistema centralizado… Y no me gusta. No quiero hacer suposiciones sin conocer el detalle,  pero espero que a alguien se le haya ocurrido disponer de un soporte descentralizado, aunque solo sea como otra medida de protección en caso de emergencia, porque todos sabemos que si el cerebro falla…

Quien sabe, quizás les falto ThinkInGrid

h1

¿Agentes en el Grid?

Octubre 10, 2006

El Grid se presenta como la infraestructura que permitirá (alcanzado un cierto nivel de estandarización) la siguiente evolución de Internet.  Metáforas simplificadoras  de los comienzos de la computación Grid que identifican al Grid como un provedor de "electricidad" computacional bajo demanda (Utility computing) corren el peligro de inspirar modelos de negocio pobres, fácilmente agotables y para nada disruptivos.

La verdadera fuerza del Grid está en aportar valor en un nivel superior al de internet convencional. Los servicios Grid estandarizados ofrecen algo más que otro mecanismo de interacción. Una clara diferencia entre internet y el Grid es que, mientras la capas por encima de Internet (la Web ,correo electrónico, chats, etc) están pensadas para estandarizar la representación de la información y facilitar la interación hombre-red, el Grid estandariza la representación de servicios(incluyendo recuros computacionales, datos e incluso aplicaciones completas) y abre un enorme abanico de posibilidades para la interacción automática entre máquinas.

Es aquí donde surge la cuestión, como se pueden gestionar estas nuevas posibilidaes de manera eficiente, que tecnologías pueden ser relavantes? Los sistemas de multiagentes proporcionan la respuesta. Para coordinar los servicios ofrecidos en un Grid nada mejor que contar con programas que exhiban un comportamiento inteligente. Esto viene a traducirse en 4 cualidades básicas de un agente:

  1. autonomía: tiene poder de decisión y control
  2. pro-actividad: el agente es efectivamente capaz de iniciar interacciones por si sólo (diferencia crucial entre un agente de software y un Objeto en POO)
  3. habilidades sociales: un agente debe de ser capaz de exhibir uno o varios métodos de comunicación con su entorno u otros agentes
  4. aprendizaje: un agente se adapta a su entorno y modifica su comportamiento con tal de conseguir algún objetivo (que a su vez puede ser variable)

Buenos sitios para profundizar más en el tema de agentes son Agentcities.ES (en español) y Multiagent.com (en inglés).

La revolución Grid vendrá al aprovechar profundamente las posibilidades de su infraestructura. La inminente llegada del World Wide Grid propiciará un escenario ópitmo para el florecimiento de todo tipo de aplicaciones exhibiendo comportamientos inteligentes, adaptativos y autónomos que resultarán claves para superar el actual (y creciente) bache de complejidad que atenaza el universo de los sistemas informáticos. En el contexto de ThinkingGrid, está prevista  la aplicación de los agentes de software para la gestión y coordinación eficiente del grueso de las  opreaciones de las Organizaciones Virtuales en el Grid. El objetivo:  generar valor mediante sinergias, aprovechamiento de nuevas cobinaciones de recursos , ventaja competitiva en las empresas… en definitiva generar pasta. Más sobre esto en el próximo post XDD