I
NVESTIGACIÓN DE TECNOLOGÍAS DE COMPUTACIÓN
GRID Y VIRTUALIZACIÓN
ENERO
–
DICIEMBRE
2009
DIRECTOR EJECUTIVO DIRECTOR DE INVESTIGACIÓN INICTEL-UNI INICTEL-UNI - DIDT
I
NG.
T
OMASP
ALMAG
ARCÍAI
NG.
D
ANIELD
ÍAZA
TAUCURIJEFE DEL ÁREA DE APLICACIONES TELEMÁTICAS
I
NG.
E
LMERG
UIDOA
LEJANDROR
OJASINVESTIGADORES
J
OELE
NYELBERT
ELLESC
ASTILLOE
DUARDOM
ENDOZAV
ILLAIZANC
ARLOSB
ERNARDOS
ÁNCHEZG
ONZALES
Lima, Diciembre 2009
Memoria Descriptiva
Resumen El presente proyecto busca desarrollar una plataforma GRID, que permita brindar de manera permanente recursos informáticos de alta capacidad de procesamiento y almacenamiento de datos, independientemente de su ubicación geográfica. Grupo de TrabajoNombre y Apellidos Perfil Área
Elmer Guido Alejandro Investigador Principal DIDT‐AAT
Joel Telles Castillo Investigador/Analista DIDT‐AAT
Carlos Sánchez Gonzales Investigador/Analista/Programador DIDT‐AAT
Eduardo Mendoza Villaizan Investigador DIDT‐AAT
Objetivos
Implementar una plataforma GRID para potenciar la capacidad de cálculo y procesamiento entre el IMCA e INICTEL‐UNI. Brindar al IMCA las facilidades de acceso, conectividad y procesamiento del Grid del laboratorio de Aplicaciones Telemáticas del INICTEL‐UNI. Producción de conocimientos científicos‐tecnológicos. Promover la formación de Clusters Científicos Multidisciplinarios. Brindar facilidades de acceso a la comunidad científico‐académicas que no cuenten con una infraestructura de cómputo de acuerdo a sus necesidades de investigación. Material y Métodos 08 servidores HP modelo Proliant 150 01 servidor de Aplicaciones HP modelo Proliant 380 01 KVM 8 Puertos 02 Swich 01 Router 01 Monitor Red Académica Avanzada Peruana Enlace Inalámbrico INICTEL‐UNI Al IMCA
La metodología a utilizar para el desarrollo del presente proyecto se encuentra enmarcada dentro de las fases de la metodología científica de desarrollo: Documentación. Experimentación del Grid Piloto Implementado. Análisis y pruebas de la Implementación. Implementación de algoritmo paralelizables. Reporte de análisis y resultados.
Aplicación del Proyecto
Dentro del contexto tecnológico actual la informática, contribuye en gran medida 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. 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.
En estos casos, ni aún la supercomputadora más sofisticada disponible en el mercado podría satisfacer la capacidad de procesamiento necesaria en casos donde el volumen de datos manipulado es de varios petabytes. Si bien un gran acercamiento a la resolución de estos problemas de enorme potencia de cálculo fue logrado mediante “clusters” o “granjas” de computadoras, surgidos a principios de los 80, aún seguían conservándose los recursos en forma dedicada. Existen también otras situaciones en que no sólo se persigue gran procesamiento, sino que también se busca lograr niveles de conectividad y cooperación entre proyectos científicos y académicos de gran escala que no han podido lograrse ni siquiera mediante Internet.
Muchas aplicaciones difundidas a través de Internet han ofrecido un modo más descentralizado para lograr gran potencia de cálculo gracias al aprovechamiento del tiempo de CPU inactiva aportado por sus usuarios, pero a pesar de este avance de importancia revolucionaria existen objetivos más ambiciosos de conectividad entre proyectos que se ven limitados en la red de redes. En realidad, el e‐mail y la World Wide Web proveen modos básicos de trabajo conjunto pero no se ha logrado vincular y compartir datos, computadores, sensores y demás recursos creando una entidad virtual. Es entonces aquí donde surge el concepto de “computación grid” (En castellano: rejilla, tramado, entrelazado, enrejado). Entre las áreas de aplicación de esta tecnología se pueden mencionar:
• Gobiernos y Organizaciones Internacionales: En respuesta ante desastres
(inundaciones, incendios, terrorismo, etc), planificación urbana, modelos económicos, etc .
• En el mundo de la Medicina: La unión de recursos (tales como bases de datos
administrativas y archivos de historias clínicas e imágenes médicas) y de instrumentos especializados abre la puerta a una gran variedad de nuevos procedimientos de diagnóstico mejorados gracias a la ayuda de ordenadores, en base a un análisis rápido
de imágenes médicas complejas y la comparación automática con archivos distribuidos para encontrar casos similares.
• En la Educación: Las Bibliotecas Electrónicas y los centros de e‐Educación se
beneficiarán de las herramientas basadas en el GRID para el acceso a datos dispersos y la creación de aulas virtuales con estudiantes, recursos y profesores distribuidos. Ya estamos presenciando algo como esto en la Web, y el GRID mejorará enormemente la situación actual.
• Empresas y Grandes Corporaciones: Las grandes empresas tienen delegaciones,
datos, personal y recursos distribuidos por todo el mundo. Un enfoque basado en GRID permitirá la creación de medios para realizar aplicaciones a gran escala tales como el diseño asistido por ordenador utilizando, simultáneamente, recursos situados en muchos lugares.
TT
ABLA DE
ABLA DE
CC
ONTENIDO
ONTENIDO
1.1 Introducción ... 9 1.2 Antecedentes ... 10 1.3 Motivo de la Investigación ... 10 1.4 Fundamentos Teóricos ... 11 a) La Posibilidad de Compartir Recursos ... 11 b) Acceso seguro... 12 c) La utilización eficiente de recursos ... 12 d) Redes de comunicaciones rápidas y fiables ... 13 e) Estándares abiertos... 13 1.5 Objetivos del Proyecto ... 15 1.6 Descripción del Proyecto... 15 CAPITULO II: ESTADO DEL ARTE CAPITULO II: ESTADO DEL ARTE ... 17 2.1 Proyectos de Investigación con fines comunes... 17 c) Globus Project ... 19 h) TeraGrid... 22 i) CrossGrid ... 23 j) OpenMolGRID ... 23 k) UK e‐Science... 24 l) EGEE (Enabling Grids for e‐Science in Europe)... 24 m) EELA2 (E‐infraestructura compartida entre Europa y Latinoamérica) ... 25 2.2 Modelos de Programación Grid Actuales... 26 a) MPICH... 26 b) OpenMP ... 26 c) RPC (Remote Procedure Call) ... 26 d) RMI (Java Remote Method Invocation)... 27 e) P2P (PEER TO PEER)... 27 f) XCAT (Extreme Cluster Administration Toolkit) ... 28
CAPITULO III: PROPUESTA DE LA ACTIVIDAD DE LA INVESTIGACIÓN CAPITULO III: PROPUESTA DE LA ACTIVIDAD DE LA INVESTIGACIÓN ... 29 3.1 Investigación y Evaluación de las Tecnologías de Computación Distribuidas ... 29 3.2 Globus Toolkit 2 (GT2)... 31 3.2.1 Introducción ... 31 3.3 Glite ... 37 3.3.1 Interfaz de Usuario(UI) ... 38 3.3.2 Elemento de Computacion (CE)... 39 3.3.3 Almacenamiento de Elementos(SE) ... 39 3.3.4 Servicio de Información (IS)... 39 3.3.5 Servicio de Administración del Volumen de Trabajo (WMS)... 42 3.3.6 Autoridad Certificadora... 44 3.4 Tecnologias de Virtualización... 49 3.3.6 Virtualización de plataforma ... 50 3.3.7 Tipos de Virtualización de plataforma... 50 3.3.8 Ventajas de la Virtualización ... 51 3.3.9 Arquitecturas de virtualización ... 52 3.9 Scientific Linux... 55 3.10 Diseño de la Arquitectura Grid INICTEL‐UNI Basado en Glite ... 56 3.10.1 Equipamiento e infraestructura a Utilizar en el nodo del INICTEL‐UNI ... 59 3.10.2 Caracteristicas de los Equipos a utilizar... 59 CAPITULO CAPITULO IVIV : Arquitectura del Grid INICTEL: Arquitectura del Grid INICTEL ‐‐IMCAIMCA 4.1 Cluster………....64 4.1.1 Beneficios de la Tecnología Cluster……….………..65 4.1.2 Clasificación de los Cluster………..….65 4.1.3 Componentes de un Cluster.………..65 4.1.3.1‐Nodos.………..…….………...66 4.1.3.2‐ Almacenamiento ………..…….……….66 4.1.3.3‐ Sistema Operativo .………..…….………...68 4.1.3.4‐ Conexiones de Red ...………..…….………..68 4.1.3.5‐ Middleware ..………..…….…...69 4.1.3.6‐ Ambientes de Programación Paralela ………..…….……….70
4.1.3.7‐ Sistemas Clusters Implementados .………..…….…….………..…….70 4.1.3.8‐ Clusters en Aplicaciones Científicas………..…….………..71 4.1.3.9‐ Clusters en Aplicaciones Empresariales.………..…….………71 4.2 Gestión de Recursos Distribuidos: Sistemas Gestores de Colas …..………..72 4.2.1 Sistemas de Colas………...73 4.2.1.1‐ PBS………...73 4.2.1.2‐ SGE………...74 CAPITULO CAPITULO VV: Calidad de Servicio en el Entorno de la: Calidad de Servicio en el Entorno de la Computación GridComputación Grid 5.1 Introducción ... 77 5.2 Estado del Arte de QoS en Computación Grid ... 79 5.3 Modelos de Información Grid ... 82 5.3.1‐ Modelos de Información sobre Calidad de Servicio………...82 5.3.2.‐ Análisis Comparativo para los Modelos de Información……….83 5.3.3.‐ Ontología para Recursos Grid y sus Propiedades de Calidad de Servicio (QoS).84 5.3.4.‐ Sistema de Medida para la Fiabilidad de los Recursos Grid………..87 5.4.‐ Calidad de Servicio de Red en Sistemas GRID: Un Modelo de Agente de Ancho de Banda ………...92 5.4.1.‐Arquitectura del Agente de ancho de banda………...93 CAPITULO CAPITULO VIVI : Implementación del Grid INICTEL : Implementación del Grid INICTEL ‐‐ IMCA IMCA 6.1 Pruebas del Enlace Inalambrico……….100 6.2 Instalación del Scientific Linux………110 .3 Instalación del la Autoridad Certificadora………121 6.4 Instalación del Sistema de Menbresia de la Organización Virtual (VOMS) ……….137 6.5 Instalación del Sistema de Interfaz de Usuario (UI)..………..……163 6.6 Instalación del Sistema de Gestión de Carga de Trabajo (WMS)...175 6.7 Instalación del Sistema del Elemento de Computo (CE) ……….….182 6.8 Instalación de los Nodos de Trabajo (WN)...……….199 6.9 Manual de Usuario………207 CAPITULO
7.1 Pruebas de Job Parametrizables………..………..212 7.2 Pruebas de Job DAG………….……….…………219 7.3 Pruebas de Colecciones de Job…….……….227 Conclusiones………....232 Bibliografia……….…234 Anexo 01 Curso ‐ Taller de Computación Grid Globus Toolkit...…..236 Anexo 02 Portal Web Informativo del Proyecto………..251
CAPITULO I
CAPITULO I : FUNDAMENTOS DE LA
: FUNDAMENTOS DE LA
INVESTIGACIÓ
INVESTIGACIÓ N
N
1.1 Introducción
La producción científico‐académica requiere de un entorno de infraestructura adecuada y sobre todo de vanguardia tecnológica que le brinden a los profesionales encargados de realizar investigación básica, aplicada o desarrollo tecnológico, las herramientas necesarias tanto a nivel software como hardware para poder realizar y explotar al máximo sus capacidades y obtener productos adecuados e idóneos.
De igual modo no es menos conocido que la necesidad de contar con equipamiento de grandes capacidades y potencias de cálculo, es una limitante en nuestro medio sobre todo a nivel estado, específicamente en las universidades públicas, sin embargo también existen entornos en los cuales la dotación de infraestructura existe y su máxima capacidad no es explotada en su verdadera magnitud.
Por lo tanto el presente proyecto justamente trata de acoger tecnología vigente y de vanguardia y en torno a ella optimizar recursos y con ello brindar facilidades a la comunidad científico y académica.
El Proyecto tiende a desarrollar un aplicativo en base a una plataforma GRID, que permitirá brindar de manera permanente sin restricciones , a los diversos entornos y comunidades científicas – académicas que así lo requieran, el poder disponer de manera remota de recursos informáticos de alta capacidad de procesamiento y almacenamiento de datos, superando con ello las limitaciones de disponibilidad de recursos técnicos de los usuarios locales , no siendo por ello las distancias, acceso ni conectividad un factor limitante.
1.2 Antecedentes
La generación de conocimientos y acopio de experiencias es un proceso dinámico, permanente y de evolución constante y en ello un papel importante juega las Tecnologías de Información y Comunicaciones, las cuales brindan las facilidades tecnológicas y herramientas aplicativas para dicho fin, cual es la producción de nuevos conocimientos y aplicaciones. Asimismo somos conscientes y tenemos conocimiento que en los próximos años las actividades de E‐ciencia generaran una gran cantidad de información, y por lo tanto estos datos necesitarán una plataforma capaz de procesar y almacenar dicho caudal de información.
El INICTEL‐UNI como institución cuyos objetivos se enmarcan dentro de lo que es Investigación científica, desarrollo e innovación tecnológica en el campo de las Tecnologías de Información y Comunicaciones, considero una brillante oportunidad el poder brindar a la comunidad científica y académica su experiencia y aporte en lo que a desarrollo de herramientas aplicativas y tecnologías se refiere, contando para ello como socio estratégico a la comunidad del IMCA – UNI; institución dedicada a la investigación en ciencias matemáticas facilitando el dialogo entre dicha comunidad científica y otras disciplinas , tales como la Ingeniería, Meteorología, Economía, Ecología, etc. que requieren para su solución el conocimiento de matemática avanzada.
Por tanto INICTEL‐UNI, aplica y participa de la convocatorio realizada por el CONCYTEC, institución que a través del PROCYT (Proyectos de Ciencia y Tecnología), promueve, subvenciona e incentiva las acciones referidas al desarrollo en lo que es ciencia y tecnología se refiere, siendo aceptado el presente proyecto, el cual figura dentro del plan de actividades propuestas por el Área de Aplicaciones Telemáticas de la Dirección de Investigación y Desarrollo Tecnológico.
1.3 Motivo de la Investigación
La implementación de una plataforma GRID no sólo resultará beneficiosa sino que se hace necesaria para el desarrollo investigaciones científicas multidisciplinarias cuya demanda de grandes volúmenes de procesamiento de información pueden ser ejecutadas aprovechando los recursos computaciones de cada nodo de la red de una manera mucho más eficiente, logrando así fomentar y dinamizar la investigación multidisciplinaria.
1.4 Fundamentos Teóricos
Podemos describir, de forma sucinta, en funcionamiento del GRID del siguiente modo:
‐ El GRID descansa sobre un software, denominado “middleware”, que asegura la comunicación transparente entre diferentes ordenadores repartidos por todo el mundo.
‐ El segundo elemento es un motor de búsqueda que no sólo encontrará los datos que el usuario necesite, sino también las herramientas para analizarlos y la potencia de cálculo necesaria para utilizarlas. ‐ Al final del proceso, el GRID distribuirá las tareas de computación a cualquier lugar de la red en la que haya capacidad disponible y enviará los resultados al usuario. Este funcionamiento se sostiene en cinco pilares básicos: La posibilidad de compartir recursos. La seguridad – acceso seguro. El uso eficiente de los recursos. Redes de comunicaciones fiables que eliminen las distancias. Estándares abiertos. Se detallaran cada uno de estos puntos: a) La Posibilidad de Compartir Recursos Esta es la idea que está detrás del GRID, poder utilizar recursos remotos que nos permitan realizar tareas que no podríamos abordar en nuestra máquina o centro de trabajo. La idea va más allá del simple intercambio de ficheros; se trata del acceso directo a software, ordenadores y datos remotos, así como acceso y control de otros dispositivos (sensores, telescopios, etc.).
Pero debemos hacer frente al hecho de que los recursos pertenecen a muchas personas distintas. Por tanto, nos encontramos con dominios administrativos diferentes, en los que se ejecuta software heterogéneo, y sometidos a las más diversas políticas de control de acceso y seguridad.
Este es un punto crucial del GRID, no se trata de conseguir algo por nada o de ofrecer nuestros recursos de computación de forma altruista. Más bien se trata de crear una situación entre los propietarios de recursos de computación donde todos los implicados puedan apreciar las ventajas de compartirlos, en la que haya
mecanismos que aseguren la confianza entre los usuarios, y estableciendo las condiciones de uso de sus recursos.
b) Acceso seguro
Como en cualquier otra aplicación la seguridad es esencial y se centra en los siguientes aspectos:
• Política de Accesos
Tanto los que ofrecen sus recursos como los que los utilizan deben definir cuidadosamente qué es lo que van a compartir, a quién se permite el acceso y bajo qué condiciones. • Autenticación Es necesario un mecanismo para establecer la identidad de un usuario o de un recurso concreto. • Autorización También hace falta un procedimiento para determinar si una determinada operación es consistente con las relaciones que se han definido previamente de cara a compartir recursos. El GRID necesita una forma eficiente de recopilar una serie de información: • ¿Quién está autorizado a utilizar el GRID? • ¿Qué recursos está autorizado a utilizar? • ¿Quién da fe de que un usuario es quien dice ser? • ¿Cuáles son las políticas de uso de los diferentes recursos? Todos esos elementos pueden cambiar de un día para otro, lo que significa que, para que funcione de forma eficiente, el GRID debe ser extremadamente flexible, capaz de adaptarse a todos los cambios y además contar con un mecanismo de “contabilidad” eficiente. c) La utilización eficiente de recursos
El tercer aspecto fundamental en la tecnología GRID es el uso eficiente de los recursos. Es aquí donde radica el verdadero interés del GRID. No importa la cantidad de recursos de los que uno disponga; siempre habrá usuarios haciendo cola para utilizarlos. Se necesitan mecanismos para repartir el trabajo de forma automática y eficiente entre una gran cantidad de recursos, reduciendo las colas de espera.
En el GRID, en principio, tendremos información sobre los diferentes trabajos que se han enviado y, ya que todo se está ejecutando en ordenadores, podemos
calcular cuál sería la asignación óptima de recursos. Para ello existe un software que lleva a cabo este trabajo y que, en general, gestiona la actividad del GRID. Este software recibe el nombre de “middleware”. d) Redes de comunicaciones rápidas y fiables La existencia de conexiones de alta velocidad (en el Perú la RAAP) es lo que hace posible el GRID a escala mundial. Hace diez años hubiese sido ingenuo tratar de enviar grandes cantidades de datos a través del mundo para que se pudiesen procesar más rápido en otros ordenadores. El tiempo que se tardaba en transferirlos anularía el beneficio de un procesamiento más rápido.
e) Estándares abiertos
El quinto y último punto es el de los estándares. El objetivo es conseguir que las aplicaciones que se ejecuten en un GRID puedan funcionar en cualquier otro. Debido a que la naturaleza última del GRID es compartir recursos, es comprensible que la existencia de estándares abiertos redunde en beneficio de todos los agentes participantes.
Actualmente, los estándares de GRID los desarrolla el Global GRID Forum, y un estándar, conocido como OGSA (Open GRID Services Architecture), aparece como la referencia clave para los proyectos de desarrollo GRID. En esencia, los principales proyectos relacionados con GRID se están desarrollando en base a una serie de protocolos y servicios que ofrece el Globus Toolkit (una infraestructura de código abierto desarrollada por la Globus Alliance) proporcionando un conjunto de herramientas para implementar los servicios y capacidades básicas para construir un GRID, tales como la seguridad, la localización y gestión de recursos y las comunicaciones, mediante una serie de programas que implementan estos servicios.
Muchos de los protocolos y funciones definidas por el Globus Toolkit son similares a los que existen actualmente para redes y sistemas de almacenamiento, aunque optimizados para el GRID. Además, las herramientas se pueden integrar por separado en los programas de software existentes para ir acomodándolos a los requisitos del GRID y se encuentra a disposición general bajo un acuerdo de licencia “open source”. Esto permite a todos los interesados utilizarlo libremente y al mismo tiempo añadir mejoras.
Arquitectura GRID
Habitualmente se describe la arquitectura del GRID en términos de “capas”, ejecutando cada una de ellas una determinada función. Como es habitual en este tipo de enfoque, las capas más altas están más cerca del usuario, en tanto que las capas inferiores lo están de las redes de comunicación.
Empezando por los cimientos, nos encontramos con la capa de red, responsable de asegurar la conexión entre los recursos que forman el GRID. En la parte más alta está la capa de recursos, constituida por los dispositivos que son parte del GRID: ordenadores, sistemas de almacenamiento, catálogos electrónicos de datos e incluso sensores que se conecten directamente a la red.
En la zona intermedia está la capa de “middleware”, encargada de proporcionar las herramientas que permiten que los distintos elementos (servidores, almacenes de datos, redes, etc) participen de forma coordinada en un entorno GRID unificado. El middleware, es el auténtico “cerebro” del GRID y se ocupa de las siguientes funciones: • Encontrar el lugar conveniente para ejecutar la tarea solicitada por el usuario. • Optimiza el uso de recursos que pueden estar muy dispersos. • Organiza el acceso eficiente a los datos. • Se encarga de la autenticación de los diferentes elementos. • Se ocupa de las políticas de asignación de recursos. • Ejecuta las tareas. • Monitoriza el progreso de los trabajos en ejecución. • Gestiona la recuperación frente a fallos. • Avisa cuando se haya terminado la tarea y devuelve los resultados.
El ingrediente fundamental del middleware son los metadatos (datos sobre los datos), que contienen, entre otras cosas, toda la información sobre el formato de los datos y dónde se almacenan (a veces en varios sitios distintos).
El middleware está formado por muchos programas software. Algunos de esos programas actúan como agentes y otros como intermediarios, negociando entre sí, de forma automática, en representación de los usuarios del GRID y de los proveedores de recursos. Los agentes individuales presentan los metadatos referidos a los usuarios, datos y recursos. Los intermediarios se encargan de las negociaciones entre máquinas (M2M) para la autenticación y autorización de los usuarios y se encargan de definir los acuerdos de acceso a los datos y recursos. Cuando queda establecido el acuerdo, un intermediario planifica las tareas de cómputo y supervisa las transferencias de datos necesarias para acometer cada trabajo concreto. Al mismo tiempo, una serie de agentes supervisores especiales optimizan las rutas a través de la red y monitorizan la calidad del servicio. Por supuesto, todo esto ocurre en un intervalo de tiempo muchísimo menor que el que llevaría a los seres humanos realizar las mismas tareas manualmente. En la capa superior de este esquema está la capa de aplicación donde se incluyen todas las aplicaciones de los usuarios, portales y herramientas de desarrollo que soportan esas aplicaciones, esta es la capa que ve el usuario.
Además, en las arquitecturas más comunes del GRID, la capa de aplicación proporciona el llamado “serviceware”, que recoge las funciones generales de gestión tales como la contabilidad del uso del GRID que hace cada usuario. (El serviceware está en la capa superior al ser un elemento con el que interactúa el usuario, mientras que el middleware está en una capa “oculta” de la que no debe preocuparse). Para poder hacer todo lo anterior, las aplicaciones que se desarrollen para ser ejecutadas en un PC concreto, tendrán que adaptarse para poder invocar los servicios adecuados y utilizar los protocolos correctos. Igual que las aplicaciones que inicialmente se crearon para funcionar aisladamente se adaptan para poder ser ejecutadas en un navegador Web, el GRID requerirá que los usuarios dediquen cierto esfuerzo a “gridificar” sus aplicaciones.
Sin embargo, una vez adaptadas al GRID, miles de usuarios podrán usar las mismas aplicaciones, utilizando las capas de middleware para adaptarse a los posibles cambios en el tejido del GRID.
1.5 Objetivos del Proyecto
El Proyecto busca desarrollar una plataforma GRID, que permitirá brindar de manera permanente recursos informáticos de alta capacidad de procesamiento y almacenamiento de datos, independientemente de su ubicación geográfica.
La Implementación de una plataforma empleando tecnología GRID a nivel Laboratorio del Área de Aplicaciones Telemáticas del INICTEL‐UNI como una actividad enmarcada dentro de lo que es Desarrollo Tecnológico y cuya orientación converge dentro de sus actividades de investigación orientadas a la gestión de recursos distribuidos y desarrollo de aplicaciones que permitan el poder manejar de manera simultánea y en paralelo múltiples procesos.
Como producto del desarrollo se espera contar con una importante herramienta de procesamiento puesta a disposición del IMCA y demás instituciones científicas para el desarrollo de sus proyectos de investigación como una alternativa tecnológica ante las limitaciones computacionales que viven hoy en día.
1.6 Descripción del Proyecto
El proyecto plantea la implementación de una plataforma empleando tecnología GRID a nivel Laboratorio del Área de Aplicaciones Telemáticas del INICTEL‐UNI como una actividad enmarcada dentro de lo que es Desarrollo Tecnológico y cuya orientación converge dentro de sus actividades de investigación orientadas a la gestión de recursos distribuidos y desarrollo de aplicaciones que permitan el poder manejar de manera simultánea y en paralelo múltiples procesos.
Las limitaciones en cuanto a la disponibilidad de recursos computacionales que nos facilite la realización de actividades de investigación y desarrollo tecnológico son una realidad evidente en nuestro medio, manifestándose principalmente en el ámbito académico a nivel centros de educación superior como son las universidades públicas e instituciones de investigación, quienes a pesar de ello promueven y realizan investigaciones de carácter científico y tecnológicos de acuerdo al ámbito de sus competencias en beneficio de la comunidad y por ende de nuestro país.
De otro lado el surgimiento de comunidades científicas multidisciplinarias están generando el surgimiento de entornos denominados Redes Académicas, las cuales congregan a grupos de profesionales ,científicos e investigadores de diversas partes del mundo en la ejecución de proyectos de investigación conjuntos permitiendo una transferencia de conocimientos mucho más rápida entre las entidades colaboradoras. Por tanto la promoción y adhesión a estas redes es una necesidad natural en nuestro medio y el poder tener acceso a todas las ventajas que ello conlleva.
Por todo lo anteriormente expuesto, la implementación de una plataforma GRID no sólo resulta beneficiosa sino que se hace necesaria para el desarrollo investigaciones científicas multidisciplinarias cuya demanda de grandes volúmenes de procesamiento de información pueden ser ejecutadas aprovechando los recursos computaciones de cada nodo de la red de una manera mucho más eficiente, logrando así fomentar y dinamizar la investigación multidisciplinaria.
CAPITULO II: ESTADO DEL ARTE
CAPITULO II: ESTADO DEL ARTE
2.1 Proyectos de Investigación con fines comunes
La idea básica de la tecnología Grid, en resumen, es aprovechar de modo óptimo los recursos proporcionados por equipos de computación distribuidos, mediante el uso de un software adecuado para planificar su utilización que tenga en cuenta las prioridades y diferentes periodos de demanda de los usuarios. La evolución de las Redes de comunicación de alta velocidad dedicadas a la investigación ha creado un escenario idóneo para el despliegue de esta tecnología. En la actualidad se desarrollan una serie de proyectos, describimos a continuación los más resaltantes: ARC (Advanced Resource Connector) BOINC (Berkeley Infrastructure for Network Computing) Globus Toolkit GridWay SGE (SUN Grid Engine) UNICORE (Uniform Interface to Computing Resources) ProActive TeraGrid CrossGrid OpenMolGRID UK e‐Science EGEE (Enabling Grids for e‐Science in Europe) EELA2 (E‐infraestructura compartida entre Europa y Latinoamérica) a) ARC (Advanced Resource Connector) Desarrollado por NorduGrid (Países Nórdicos) http://www.nordugrid.org/ Primera versión: Mayo 2002; Es “open source” con licencia GPL Última versión ARC 0.9.2 (Ago‐2008) Desarrollada en el Proyecto‐EU KnowARC http://www.knowarc.eu/Figura 01 ‐ Componentes del Middleware Nordu Grid ARC b) BOINC (Berkeley Infrastructure for Network Computing)
Desarrollado inicialmente para soportar el proyecto SETI@home, es una plataforma Grid con más de 1/2 millón de computadores conectados que admiten trabajos y los ejecutan durante sus períodos de inactividad
Desarrollado básicamente para Unix, pero es multiplataforma, su arquitectura es cliente‐Servidor con una Interfaz Web para crear un proyecto en BOINC, los Servidores BOINC lo registran y reparten trabajos luego los clientes BOINC participantes ejecutan los trabajos. Usos de BOINC Científicos: Crean proyectos de computación voluntaria. Universidades: Crean centros virtuales de supercomputación. Empresas: Crean Grids de computación basados en PCs.
Figura 02 ‐ Componentes del Middleware BOINC
c) Globus Project
El Proyecto Globus es una iniciativa multi‐institucional para la investigación y el desarrollo de tecnologías fundamentales para Grids, con la activa participación de la empresa IBM, cuya intención principal es crear una plataforma completa donde permita compartir aplicaciones y recursos informáticos en Internet. Uno de los primeros productos desarrollados por el Proyecto Globus es el Globus Toolkit, que está siendo utilizado en varios proyectos de aplicación y despliegue de Grid en los Estados Unidos, Europa y el resto del mundo. El Proyecto Globus tiene su sede central en el Laboratorio Nacional Argonne y el Instituto de Ciencias de Información de California del Sur.
El proyecto permitirá llevar las redes Grid más allá de las habituales aplicaciones técnicas y científicas para que pueda ser de utilidad en aplicaciones reales de negocio, conectando muchos superordenadores dispersos geográficamente mediante Internet y unos protocolos específicos de código abierto creados por la organización internacional Globus (globus.org).
La Arquitectura de Servicios Abiertos Grid (OGSA) presenta un conjunto de especificaciones y estándares que combina los beneficios de la informática Grid y los servicios web. Así, los clientes pueden, por primera vez, compartir y acceder a los recursos informáticos que necesitan en Internet, contando con el soporte de una infraestructura muy resistente, con capacidad de autogestión y siempre disponible; pueden integrar aplicaciones y compartir datos y potencia de
procesado, consiguiendo unos niveles de eficiencia muy altos, así como muy bajos costos.
Este conjunto de especificaciones OGSA completa los estándares XML, WDSL y SOAP ‐ todos ellos importantes para los servicios web, con los estándares desarrollados por Globus para tecnologías de redes Grid, utilizados para localizar, planificar y asegurar recursos informáticos.
OGSA cuenta con el apoyo de empresas de diferentes industrias, incluyendo AVAKI, proveedor de soluciones comerciales de software Grid; Entropía, proveedor de informática de redes Grid distribuida basada en PC; Microsoft; y Platform Computing, proveedor de software de informática distribuida.
IBM tiene como objetivo la implantación de OGSA como punto clave en su "Proyecto eLiza". El proyecto eLiza es la iniciativa de informática autonómica de IBM para construir un servidor de infraestructura autogestionable, abierto y heterogéneo para el comercio electrónico y la puesta en práctica de Grids comerciales.
Globus Toolkit
Es un proyecto Open Source desarrollado por el equipo del Argonne National Laboratory dirigido por Ian Foster en colaboración con el grupo de Carl Kesselman en la University Of Southern California, incorpora los protocolos y servicios básicos necesarios para construir aplicaciones Grid. Básicamente consiste en un conjunto de módulos, cada modulo define un interfaz que es utilizado por los servicios de alto nivel para invocar mecanismos propios de dicho módulo proveer lo que se denomina una implementación, la cual, a su vez, utiliza las adecuadas operaciones de bajo nivel para implementar estos mecanismos en diferentes entornos. Figura 03 ‐ Pagina Principal Globus Toolkit
d) GridWay
Es un Meta‐Planificador que permite compartir recursos computacionales (clusters, servers) cada uno con su gestor de trabajos (SunGridEngine, Condor, PBS, Load Sharing Facility, etc) que pertenecen a una misma organización o dispersos en varios dominios administrativos de forma segura, fiable y eficiente
http://www.gridway.org/ .
GridWay está diseñado para trabajar sobre Globus Toolkit (Aunque cada Globus puede usar un planificador diferente).
A partir de GT 4.0.5, GridWay se incluye en GT, Las aplicaciones utilizan el estándar DRMAA (Distributed Resource Management Application API) Para gestionar el envío y el control de trabajos. También incluye un CLI Command Line Interface, GridWay gestiona la ejecución de trabajos complejos incluyendo la intermediación en el acceso a recursos. Figura 04 ‐ Componentes del Middleware GridWay e) Sun Grid Engine (SGE)
Es un gestor de colas de trabajos de código abierto desarrollado por Sun Microsystems.
Uso típico de SGE
En una granja de computadores o un cluster, sirve para aceptar, planificar, lanzar y gestionar la ejecución remota y distribuida de un gran número de tareas independientes.
Gestiona y planifica la asignación de recursos distribuidos (procesadores, memorias, espacio en disco, licencias software) http://gridengine.sunsource.net/
Desarrollado para plataformas Unix: AIX, BSD, Free‐BSD, HP‐UX, IRIX, Linux, Mac OS X, Solaris. f) UNICORE ( UNiform Interface to COmputing Resources)
Middleware Grid que permite la computación distribuida y el acceso seguro a datos vía Internet. Desarrollado desde 1997 en 2 proyectos del Ministerio Alemán de Educación e Investigación (Para interconectar a los centros de Supercomputación Alemanes, como alternativa a Globus Toolkit)
Última versión UNICORE 6.1.3 (18‐Dic‐2008) Código “open source” bajo licencia BSD, Mejorado y ampliado posteriormente en varios proyectos Europeos. Figura 05 ‐ Componentes del Middleware UNICORE g) ProActive
Es un middleware para computación paralela y distribuida con código “open source” bajo licencia GPL, Desarrollado en Francia (INRIA, CNRS y Univ de Niza) Incluido en el consorcio OW2 (Open Source Middleware).
Última versión ProActive 4.0.2 (Oct‐2008) http://proactive.inria.fr/
h) TeraGrid
Es un proyecto estadounidense, llevado adelante por la Fundación Nacional de Ciencias (NSF). Dedicado a la investigación científica abierta, tiene el objetivo de interconectar instalaciones y centros de investigación académica en puntos distantes geográficamente, está considerado como una de las infraestructuras más grandes y más rápidas del mundo.
A fin de permitir que los investigadores lleven a cabo proyectos de investigación y colaboren en ellos, se archivan datos de varias disciplinas científicas y de ingeniería. Los proyectos de esta magnitud son de valor crítico y fundamental para la comunidad científica y la recompensa que surja de la integración de soluciones para los investigadores a esta escala podría ser enorme, al reducir los costos y el tiempo de desarrollo y al crear productos más seguros.
Mediante el proyecto TeraGrid, los científicos tendrán la capacidad para simular actividades sísmicas en estructuras a fin de diseñar edificios y puentes más seguros, los astrónomos podrán compartir datos desde sus telescopios y los investigadores médicos tendrán la posibilidad de compartir ideas y datos para quizá curar una enfermedad, lo que asegura que las oportunidades que se ofrecen a los científicos son incalculables.
i) CrossGrid
Con el fin de poder ejecutar aplicaciones interactivas en un entorno Grid, se modifica el middleware adaptándolo para ello. En este proyecto se han definido cuatro aplicaciones que utilizarán desarrollos Grid comunes, que son: 1) Simulación interactiva y visualización de un sistema biomédico; 2) Sistema de apoyo a un equipo de crisis por inundaciones; 3) Análisis de datos distribuidos en Física de Altas Energías 4) Previsión meteorológica y modelización de la contaminación atmosférica.
Los proyectos científicos relacionados con áreas como el análisis de la física de partículas, la biología computacional, la medicina, las ciencias medioambientales y la astrofísica, se nuclean en el Reino Unido bajo el nombre de e‐Ciencia, la cual sólo puede ser comprendida con el avance de la tecnología Grid o de computación distribuida. Precisamente, en torno a esta tecnología y a la e‐Ciencia han surgido numerosos proyectos y múltiples centros de investigación se han centrado en su desarrollo.
Por su parte, CrossGrid, también es un proyecto de la Unión Europea nacido en 2001, tiene como fin el desarrollo, entre los años 2002 y 2005, de aplicaciones interactivas en entornos Grid y la extensión del banco de ensayo (testbed) de DataGrid.
j) OpenMolGRID
Desarrollado por ComGenex Inc., un proveedor de descubrimientos químicos avanzados, tiende a proporcionar información unificada y extensible del entorno para solucionar las cuestiones moleculares de diseño e ingeniería con relación a la química, la farmacia y la bioinformática. El proyecto utiliza un set de aplicación con herramientas orientadas a establecer servicios centrales Grid y funciones provistas por la infraestructura Eurogrid, y se desarrollan herramientas para aumentar el acceso a las bases de datos heterogéneas y de distribución y para adaptar las herramientas de software existentes.
ComGenex es un proveedor de soluciones químicas integrales para las industrias farmacéuticas y biotecnológica. Esta compañía dedicada a la formación de compuestos químicos, facilita el desarrollo de medicamentos en Europa. Cuenta con varias tecnologías propias de síntesis y análisis en las áreas de la química, la producción de instrumentos, la optimización de derivados, el análisis químico con aplicación médica y la bioinformática, y es compatible con ComGenexDirect, el
primer sistema de comercio electrónico de la industria en el campo de los descubrimientos de nuevos fármacos.
ComGenex, el único socio comercial entre los cinco grupos de investigación en el proyecto, proporcionará diseño químico, química de altas prestaciones, biología celular y molecular, desarrollo de ensayos, monitorización de altas prestaciones y experiencia química y bioinformática.
k) UK e‐Science
Un equipo de científicos del Reino Unido dio a conocer en una conferencia de gran magnitud, un elemento clave de la computación Grid que facilitará a los investigadores aprovechar enormes recursos informáticos de todo el mundo para afrontar los desafíos científicos clave en campos como el genoma humano y la física de partículas. Los responsables de la iniciativa elaboraron un conjunto de procedimientos que permitirán que los científicos que utilicen Grid accedan a las bases de datos de los resultados de investigación procedentes de sistemas que se encuentren en cualquier parte del mundo.
La intención es que las nuevas especificaciones sirvan para crear sistemas de prototipos de Grid, así como aplicaciones comerciales y científicas.
l) EGEE (Enabling Grids for e‐Science in Europe)
El proyecto utilizará la tecnología Grid para interconectar recursos computacionales de veintisiete países europeos, con el objeto primordial de unir los recursos de los equipos informáticos de las instituciones participantes y crear de este modo un supercomputador virtual, aprovechando la infraestructura de comunicación de banda ancha proporcionados por la Red Europea de Investigación Géant.
En el proyecto se plantea coordinar el uso conjunto de recursos de computación en forma distribuida entre los diferentes centros, constituyendo una plataforma donde aplicaciones de gran importancia en Informática Biomédica y en Física de Altas Energías funcionarán a máximo rendimiento. El centro que dirige el proyecto es el Laboratorio Europeo de Física de Partículas (CERN) que se encuentra en Ginebra (Suiza).
El Grupo de Redes y Computación de Altas Prestaciones de Valencia (GRyCAP) ha coordinado en los últimos años unos diez proyectos, la mayor parte de ellos europeos, orientados al desarrollo de aplicaciones informáticas avanzadas para el diagnóstico por imagen o la planificación quirúrgica. El GRyCAP se encargará en el proyecto EGEE de identificar, seleccionar y apoyar el despliegue de aplicaciones informáticas de apoyo a la asistencia sanitaria de forma que los usuarios médicos puedan tener acceso a las más avanzadas herramientas para el diagnóstico, la prevención o la simulación de la terapia tanto para la investigación clínica como la práctica diaria.
Asimismo, cuenta con una avanzada infraestructura informática formada por un Grupo de computadoras para el Grid y con facilidades de almacenamiento de datos. El objetivo es participar en la puesta a punto de un sistema computacional internacional montado en Grid que cubra las necesidades informáticas generadas por el procesado de datos procedentes de los experimentos de física de partículas. Esta iniciativa consiste en aglutinar los recursos informáticos con el fin de ser compartidos por investigadores de diferentes áreas científicas como la Astrofísica, la Meteorología, la Biología, la Nanofotónica, etc.
m) EELA2 (E‐infraestructura compartida entre Europa y Latinoamérica)
El proyecto EELA, del que EELA2 es heredero, ha permitido construir la e‐ Infraestructura que se precisa, disponiendo de una infraestructura Grid basada en 16 Centros de Recursos, con cerca de 730 CPU y 60 terabytes de espacio de almacenamiento. El éxito del proyecto puso de manifiesto la necesidad real de la comunidad científica europea y latinoamericana, a la que EELA2 dará respuesta.
El Consorcio EELA2 incluye 16 socios (6 de Europa, 9 Latinoamérica y 1 institución internacional, la red CLARA de cooperación latinoamericana de redes avanzadas) de 15 países que representan a 54 instituciones. El coordinador será el CIEMAT (Centro de Investigaciones Energéticas, Medioambientales y Tecnológicas) cuya experiencia le permitirá abordar la tarea con responsabilidad.
Las perspectivas del proyecto se centrarán en proporcionar una instalación Grid con servicios versátiles que satisfagan los requisitos de las aplicaciones, y garantizar la sostenibilidad a largo plazo de la e‐Infraestructura más allá del propio Proyecto.
Entre los objetivos más concretos destaca la construcción de una instalación Grid potente, funcional, mediante la ampliación de la infraestructura actual; ampliar el suministro de servicios Grid necesarios para todo tipo de aplicaciones en su entorno científico y desarrollar las aplicaciones de apoyo; alcanzar a un gran número de usuarios; el asegurar unos procedimientos de gestión que permitan la operatibilidad y mantenimiento de la e‐Infraestructura a largo plazo; y garantizar la sostenibilidad de la instalación Grid, especialmente en Latinoamérica. Se optimizará la gestión del proyecto en el ámbito del consorcio para proporcionar servicios de alta calidad a todos los usuarios, y ello con el propósito de consolidar y extender el soporte écnico de la Grid, manteniendo además íntima colaboración con los proyectos europeos que compartan objetivos, y siempre con la mirada dirigida hacia la inclusión de socios del tejido industrial y empresarial, así como de nuevos colaboradores y potenciales proveedores, sin olvidar la necesaria interacción con gestores políticos y autoridades de los respectivos gobiernos.
2.2 Modelos de Programación Grid Actuales
Desde la perspectiva operativa y aplicativa a nivel software existen diversos modelos, los cuales previamente analizaremos a efectos de tomarlos como referencia previa. a) MPICH MPICH es un programa de biblioteca de desarrollo, de libre disposición portable de MPI, una norma estándar de paso de mensaje para aplicaciones de memoria distribuida que utilizan computación paralela. MPICH es software gratuito y disponible para la mayoría de Unix (incluyendo Linux y Mac OS X) y Microsoft Windows.La implementación original de MPICH se llama MPICH1 y esta implementada en el estándar MPI‐1.1. A partir del 2006 la implementación más reciente se llama MPICH2, pero todavía no admite traducciones de datos entre las diferentes arquitecturas hardware.
MPICH es una implementación de MPI optimizada para entornos homogéneos y myrinet, lo que proporciona un mayor rendimiento en el paso de mensajes entre nodos.
b) OpenMP
OpenMP es una API que permite añadir concurrencia a las aplicaciones mediante paralelismo con memoria compartida. Se basa en la creación de hilos de ejecución paralelos compartiendo las variables del proceso padre que los crea. Esta disponible en múltiples plataformas y lenguajes, desde las derivadas de UNIX hasta las plataforma Windows. Existen extensiones para los lenguajes más conocidos como C, C++, Fortran.
OpenMP se basa en el modelo fork‐join, paradigma que proviene de los sistemas unix, donde una tarea muy pesada se divide en K hilos (fork) con menor peso, para luego "recolectar" sus resultados al final y unirlos en un solo resultado (join).
c) RPC (Remote Procedure Call)
El RPC (Remote Procedure Call), Llamada de Procedimiento Remoto, es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC.
Las RPC son muy utilizadas dentro del paradigma cliente‐servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando éste de vuelta el resultado de dicha operación al cliente. Hay distintos tipos de RPC, muchos de ellos estandarizados como pueden ser el RPC de Sun denominado ONC RPC (RFC 1057), el RPC de OSF denominado DCE/RPC y el Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM, aunque ninguno de estos es compatible entre sí. La mayoría de ellos utilizan un lenguaje de descripción de interfaz (IDL) que define los métodos exportados por el servidor.
Hoy en día se está utilizando el XML como lenguaje para definir el IDL y el HTTP como protocolo de red, dando lugar a lo que se conoce como servicios web. Ejemplos de éstos pueden ser SOAP o XML‐RPC.
d) RMI (Java Remote Method Invocation)
RMI (Java Remote Method Invocation) es un mecanismo ofrecido en Java para invocar un método remotamente. Al ser RMI parte estándar del entorno de ejecución Java, usarlo provee un mecanismo simple en una aplicación distribuida que solamente necesita comunicar servidores codificados para Java. Si se requiere comunicación entre otras tecnologías debe utilizarse CORBA o SOAP en lugar de RMI.
Al estar específicamente diseñado para Java, RMI puede darse el lujo de ser muy amigable para los programadores, proveyendo paso de objetos por referencia (cosa que no hace SOAP), "recolección de basura" distribuida y pasaje de tipos arbitrarios (funcionalidad no provista por CORBA).
Por medio de RMI, un programa Java puede exportar un objeto. A partir de esa operación este objeto está disponible en la red, esperando conexiones en un puerto TCP. Un cliente puede entonces conectarse e invocar métodos. La invocación consiste en el "marshalling" de los parámetros (utilizando la funcionalidad de "serialización" que provee Java), luego se sigue con la invocación del método (cosa que sucede en el servidor). Mientras esto sucede el llamador se queda esperando por una respuesta. Una vez que termina la ejecución el valor de retorno (si lo hay) es serializado y enviado al cliente. El código cliente recibe este valor como si la invocación hubiera sido local. e) P2P (PEER TO PEER) Esta referida a una red informática entre iguales (en inglés, peer‐to‐peer ‐que se traduciría de par a par‐ o de punto a punto, y más conocida como P2P) se refiere a una red que no tiene clientes ni servidores fijos, sino una serie de nodos que se comportan simultáneamente como clientes y como servidores respecto de los demás nodos de la red. Es una forma legal de compartir archivos de forma similar a como se hace en el email o mensajeros instantáneos, sólo que de una forma más eficiente.
Este modelo de red contrasta con el modelo cliente‐servidor, el cual se rige mediante una arquitectura monolítica donde no hay distribución de tareas entre sí, sólo una simple comunicación entre un usuario y una terminal, en la que el cliente y el servidor no pueden cambiar de roles.
Las redes de ordenadores Peer‐to‐peer (o "P2P") son redes que aprovechan, administran y optimizan el uso de banda ancha que acumulan de los demás usuarios en una red por medio de la conectividad entre los mismos usuarios participantes de la red, obteniendo como resultado mucho más rendimiento en las conexiones y transferencias que con algunos métodos centralizados convencionales, donde una cantidad relativamente pequeña de servidores provee el total de banda ancha y recursos compartidos para un servicio o aplicación. Típicamente, estas redes se conectan en gran parte con otros nodos vía "ad hoc".
Dichas redes son útiles para muchos propósitos, pero se usan muy a menudo para compartir toda clase de archivos que contienen: audio, video, texto, software y datos en cualquier formato digital. Este tipo de red es también comúnmente usado en telefonía VoIP para hacer más eficiente la transmisión de datos en tiempo real, así como lograr una mejor distribución del tráfico de la telefonía utilizando tecnología P2P.
Cualquier nodo puede iniciar, detener o completar una transacción compatible. La eficacia de los nodos en el enlace y transmisión de datos puede variar según su configuración local (cortafuegos, NAT, ruteadores, etc.), velocidad de proceso, disponibilidad de ancho de banda de su conexión a la red y capacidad de almacenamiento en disco.
f) XCAT (Extreme Cluster Administration Toolkit)
Es un sistema de computación distribuida de código abierto. Proporciona una interfaz unificada para el control de hardware, descubrimiento y desarrollo diskful / diskfree del sistema operativo. Comenzó a desarrollarse en 1999 para grandes sistemas y servidores IBM bajo Linux. Desde la versión 2.0 es de código abierto. Adquirió especial notoriedad en junio de 2008 como sistema elegido para el control de superordenador IBM Roadrunner el más rápido hasta la fecha, situado en el Laboratorio Nacional Los Álamos de Nuevo México, Estados Unidos.