Red de conocimiento informático - Consumibles informáticos - Comparación de la informática de alto rendimiento

Comparación de la informática de alto rendimiento

Las redes son una incorporación relativamente nueva a los sistemas informáticos de alto rendimiento. Tiene su propia historia y tiene sus propias aplicaciones en diferentes entornos. Los elementos clave de un sistema de computación grid son los nodos de la red, en lugar de componentes especializados. En una red, los diversos sistemas generalmente se basan en máquinas o sistemas operativos estándar, en lugar de los entornos estrictamente controlados utilizados en la mayoría de las soluciones informáticas paralelas. Además de este entorno estándar, se encuentra el software de aplicación habilitado para grid.

Un grid puede consistir en una colección de hardware especializado idéntico, una variedad de máquinas con la misma infraestructura o un entorno completamente heterogéneo que consta de múltiples plataformas y entornos. No se requieren recursos informáticos dedicados en la red. Muchas redes se crean reutilizando componentes de infraestructura existentes para generar nuevos recursos informáticos unificados.

La red se puede escalar sin ningún requisito especial, lo que facilita el uso de nodos más allá que en un entorno HPC típico. Con las soluciones HPC, puede diseñar e implementar sistemas basados ​​en una cantidad fija de nodos. Ampliar esta estructura requiere una planificación cuidadosa. Sin embargo, no tiene que preocuparse tanto por expandir la red. La cantidad de nodos aumentará o disminuirá dinámicamente según sus necesidades o recursos disponibles. Aunque dada la topología y el hardware, la red puede basarse en la misma estructura que se muestra en las Figuras 1 y 2, también se pueden usar componentes de conectividad de red estándar para soportar la red. Incluso puede consolidar recursos informáticos a través de la WAN o Internet a través de los límites de la red tradicional, como se muestra en la Figura 3.

Como modelo y entorno de ejecución, la red también está diseñada para ser más flexible en operación y ejecución. Aunque las grillas se pueden usar para resolver tareas informáticas como las soluciones HPC, las grillas pueden ser más flexibles y pueden usar varios nodos para realizar diferentes cálculos, expresiones y operaciones. Una grilla no es sólo un recurso informático sin ninguna característica, sino que se puede asignar a varios nodos para su uso y se ejecuta hasta que se completan los trabajos y operaciones. Esto hace que la grilla sea más práctica, ya que el orden en el que se ejecutan los diferentes cálculos y componentes no es importante para la ejecución secuencial de las tareas restantes.

Un gran ejemplo de una solución de malla que aprovecha esta flexibilidad de longitud variable y tareas independientes son las películas y los efectos especiales generados por computadora. Aquí el orden de las generaciones no importa. Se pueden renderizar fotogramas individuales o segmentos más grandes de varios segundos por separado unos de otros. Si bien el objetivo final es que la película se reproduzca en el orden correcto, no importa si los últimos cinco minutos se completan antes que los primeros cinco, puedes unirlos más tarde en el orden correcto;

Otras diferencias clave entre grids y soluciones HPC tradicionales son: Las soluciones HPC están diseñadas para proporcionar soluciones de recursos específicos, como una potente potencia informática y la capacidad de almacenar grandes cantidades de datos en la memoria para su procesamiento. Por otro lado, el grid es un recurso informático distribuido, lo que significa que puede consumir cualquier componente según sea necesario, incluida la memoria, la potencia de la CPU e incluso el espacio en disco.

Debido a estas diferencias entre ambos sistemas, se han desarrollado diferentes modelos de programación y modelos de desarrollo para simplificar el proceso.

La naturaleza patentada de las soluciones HPC proporciona varios beneficios a la hora de desarrollar aplicaciones para aprovechar esta funcionalidad. La mayoría de los sistemas HPC se representan a sí mismos como un único recurso informático, por lo que se convierte en una responsabilidad de programación y una necesidad crear aplicaciones que puedan distribuirse entre los recursos a través de bibliotecas especializadas.

El desarrollo de aplicaciones en entornos HPC suele estar a cargo de bibliotecas especializadas, que simplifican enormemente el proceso de creación de aplicaciones y distribución de tareas de aplicaciones en todo el sistema HPC.

Una de las soluciones más populares es la interfaz de paso de mensajes (MPI). MPI proporciona una forma simplificada de crear trabajos y utilizar el paso de mensajes para intercambiar solicitudes de trabajos entre nodos. Como parte del proceso de desarrollo, probablemente sepa la cantidad de procesadores que desea usar (en este caso, un solo nodo, no una sola CPU). La división del trabajo en un entorno HPC depende de la aplicación y, obviamente, del tamaño del entorno HPC. Si la distribución del trabajo a realizar se basa en múltiples pasos y cálculos, la naturaleza paralela y secuencial del entorno HPC desempeñará un papel importante en la velocidad y flexibilidad de la red.

Una vez asignado el trabajo, se puede enviar un mensaje a cada nodo pidiéndole que realice su trabajo. El trabajo se coloca en la unidad HPC y se envía a cada nodo al mismo tiempo, normalmente esperando que cada nodo dé resultados simultáneamente en la respuesta.

Los resultados de cada nodo se devuelven a la aplicación host a través de otro mensaje proporcionado por MPI, y luego la aplicación recibe todos los mensajes y se completa el trabajo. Un ejemplo de esta estructura se muestra en la Figura 3.

Los modelos de ejecución suelen ser fijos y duran hasta que se completa una sola aplicación. Por ejemplo, si se asigna una tarea a 256 unidades y hay 64 nodos en el sistema HPC, se requieren 4 iteraciones del proceso para completar el trabajo. El trabajo generalmente se realiza en paralelo y los 64 nodos permanecerán ocupados hasta que se complete toda la aplicación. Durante todo el proceso, el sistema HPC actúa como una máquina. Aunque los mensajes se han utilizado para distribuir el trabajo entre múltiples nodos informáticos, en realidad toda la aplicación funciona como una sola aplicación.

Otras bibliotecas e interfaces HPC funcionan de manera similar, dependiendo de la aplicación que se desarrolle para su uso en un entorno HPC. En cualquier momento, la asignación y ejecución del trabajo pueden verse como un proceso separado. Aunque la ejecución de la aplicación puede estar en cola, una vez que la aplicación comienza a ejecutarse, todos los componentes del trabajo se ejecutan inmediatamente en todos los nodos del sistema HPC.

Para manejar múltiples aplicaciones simultáneas, la mayoría de los sistemas HPC utilizan un sistema donde diferentes aplicaciones pueden usar diferentes configuraciones de procesador/nodo. Por ejemplo, un sistema HPC de 256 nodos puede ejecutar dos aplicaciones simultáneamente, siempre que cada aplicación utilice un subconjunto de los recursos informáticos totales. La estructura distribuida (a menudo no dedicada) de la red requiere un modelo diferente para la ejecución del trabajo. Debido a esta naturaleza de la cuadrícula, no es posible esperar que se ejecuten varias unidades de trabajo simultáneamente. Hay muchos factores que afectan el tiempo de ejecución del trabajo, incluido el tiempo de distribución del trabajo y la potencia de recurso disponible de cada nodo de la red.

Debido a las diferencias entre cómo se procesan los nodos y el trabajo, el grid utiliza un sistema que combina el monitoreo de los nodos del grid con un sistema de cola de unidades de trabajo. Este monitoreo permite al administrador de la red determinar la carga actual en cada nodo. Luego, esta información se utiliza al asignar trabajo, y las unidades de trabajo que se asignarán se asignan a nodos que no tienen (o tienen una pequeña) carga de recursos actual.

Por tanto, todo el sistema grid se basa en una serie de colas y distribuciones. Al compartir la carga entre nodos, el trabajo se distribuye a cada nodo de la cola a medida que los nodos están disponibles, de modo que la red en su conjunto se puede utilizar de manera más eficiente.

Las respuestas y los resultados se ponen en cola por igual en el controlador de grid para que cuando se procesen todas las unidades de trabajo (y sus resultados), se recopilen en el conjunto de resultados final de la aplicación. Un ejemplo de esto se muestra en la Figura 4.

El modelo grid permite el uso de varios niveles de recursos, tamaños de celda y niveles de asignación, no solo los proporcionados por el modelo de ejecución utilizado por las soluciones HPC. La mayoría de los grids admiten la ejecución de múltiples solicitudes de trabajo simultáneamente, utilizando diferentes unidades de trabajo por aplicación para la cola y la distribución. Por ejemplo, puede iniciar un trabajo en Job2 mientras algunos nodos aún están completando el trabajo en Job1. Para completar el trabajo, ambos trabajos utilizan la misma cantidad de nodos disponibles de alguna manera dinámica.

La flexibilidad de este proceso no sólo permite realizar el trabajo de una manera más dinámica y adaptable, sino que también permite utilizar la red con una variedad de hardware y plataformas. Incluso si algunos nodos en la red son más rápidos o más lentos que otros, ya no importa; pueden hacer su trabajo en su propio tiempo (relativamente) libre y los resultados se pondrán en cola. Al mismo tiempo, a un sistema más rápido se le puede asignar más trabajo y completar más unidades de trabajo.

La razón de este fenómeno desfavorable es que se requiere una mayor sobrecarga de gestión para observar y monitorear cada nodo para que el trabajo pueda distribuirse efectivamente entre los nodos. En un entorno heterogéneo, también debemos considerar diferentes plataformas y desarrollar aplicaciones que sean compatibles entre los entornos de soporte. Sin embargo, en el espacio grid, los servicios web han simplificado este proceso, facilitando la asignación sin preocuparse por estas diferencias.

Antes de analizar los efectos de los servicios web, analicemos la intersección de HPC y Grid para comprender cómo afecta esto a los diferentes modelos de ejecución. Los entornos HPC y grid tienen algunas similitudes. En muchos sentidos, existen algunas convergencias y divergencias entre los dos sistemas, y diferentes grupos aprovechan cada una de ellas. A medida que las soluciones HPC se expanden, han surgido muchos entornos de red. Muchas de las técnicas utilizadas en grids han sido optimizadas y adoptadas en base al trabajo en entornos informáticos de alto rendimiento.

Algunas similitudes obvias son la forma en que se distribuye el trabajo a unidades y componentes más pequeños, y la forma en que se distribuye el trabajo entre los nodos trabajadores. En un entorno de HPC, esta asignación de mano de obra suele estar estrictamente controlada y basada en los recursos disponibles. La cuadrícula utiliza un modelo más flexible que permite que el trabajo se distribuya en celdas de tamaño no estándar, de modo que se pueda distribuir en una matriz completamente diferente de nodos de la cuadrícula.

Aunque las formas de asignar el trabajo son diferentes, el principio básico de la asignación sigue siendo el mismo: primero determinar el trabajo y cómo asignarlo, y luego crear unidades de trabajo en consecuencia. Por ejemplo, si encuentra problemas computacionales, puede distribuir el trabajo creando diferentes conjuntos de parámetros y utilizando variables que se aplicarán a cada conjunto de parámetros para cada nodo.

Las estructuras y sistemas de paso de mensajes utilizados en los sistemas HPC también se han desarrollado y aplicado a sistemas grid. Muchas bibliotecas de mensajería HPC utilizan estructuras de memoria compartida para admitir la distribución de unidades de trabajo entre nodos.

En una cuadrícula, * * * no existe un entorno de memoria compartida. Además, el trabajo se distribuye mediante diferentes mensajes enviados a través de conexiones de red estándar (normalmente mediante TCP/IP). El núcleo del sistema no es diferente: se intercambian mensajes que contienen parámetros de trabajo. Sólo difiere el método físico de intercambio de información. Aunque los sistemas HPC independientes de la plataforma son comunes (como MPI, que admite múltiples plataformas y arquitecturas), las soluciones HPC no se pueden usar directamente y muchos usos aún dependen de la unificación de la arquitectura.

Las diferentes características de una cuadrícula típica provocan cambios en la forma en que se distribuye el trabajo. Debido a que los nodos de malla pueden basarse en diferentes plataformas y arquitecturas, en diferentes redes públicas y privadas, se necesita algún enfoque centrado en la plataforma para intercambiar trabajo y solicitudes de modo que el trabajo pueda distribuirse más fácilmente sin preocuparse por el entorno de destino.

Los servicios web se basan en estándares abiertos y utilizan XML para distribuir e intercambiar información. Este efecto esencialmente eliminará la complejidad de compartir información entre plataformas y arquitecturas. En lugar de escribir aplicaciones binarias que se ejecuten en la red, puede escribir una serie de servicios web que admitan diferentes operaciones. Estos servicios web están personalizados para varios nodos y plataformas. El costo de implementar servicios web también es relativamente bajo, lo que los hace ideales para ejecutarse en una red que no utiliza nodos informáticos dedicados.

Los servicios web facilitan la expansión de la red al eliminar problemas de compatibilidad y simplificar los métodos de distribución de información. Para las soluciones HPC, a menudo es necesario utilizar nodos basados ​​en el mismo hardware para ampliar la funcionalidad del entorno HPC. Al utilizar una cuadrícula, especialmente cuando se utilizan servicios web, el sistema puede escalar en casi cualquier plataforma.

Otros problemas con los servicios web y grid son consideraciones comunes de distribución y seguridad, ya que los sistemas HPC cerrados y los sistemas HPC locales ya no se aplican. Esto es especialmente cierto cuando se utilizan nodos de red en una WAN o red pública. Para las soluciones HPC, la seguridad del sistema se puede controlar a través de la naturaleza unificada del hardware; la seguridad es más fácil de controlar para todas las máquinas en una ubicación.

Para mejorar la interoperabilidad de los servicios web, especialmente en entornos grid, el equipo de OASIS ha desarrollado muchos estándares de servicios web. Estos estándares se identifican por su prefijo WS. La especificación común contiene soporte de servicios web de alto nivel y una especificación de protección integral para descubrir opciones y servicios web e intercambiar información (a través de WS-Security).

Otros estándares proporcionan métodos estandarizados para compartir recursos e información (WS-Resource y WS-Resource Framework), métodos estandarizados para intercambiar mensajes de manera confiable (WS-Reliable Messaging), para Un método estandarizado para notificación de eventos (WS -Notificación), e incluso un método estandarizado para la gestión de servicios Web (WS-Distributed Management).

Por motivos de seguridad, los intercambios de mensajes WS-Reliable se pueden empaquetar con el estándar WS-Security, que define métodos y procedimientos para la autenticación, autorización y cifrado de intercambios de mensajes.

Al combinar el soporte de estándares de servicios web, las especificaciones de seguridad y sus propios componentes de servicios web personalizados, puede crear una red eficiente que funcione en una variedad de plataformas y entornos.

Luego puede utilizar la aplicación en un entorno LAN o de forma segura a través de una red pública para ofrecer los mismos recursos informáticos potentes que una solución HPC típica, pero con la flexibilidad de escalar y soporte estándar para tecnologías de red. La computación grid es técnicamente una computadora de alto rendimiento, pero se diferencia de los entornos HPC tradicionales en muchos aspectos. La mayoría de las tecnologías HPC tradicionales se basan en hardware fijo y dedicado, combinado con algunos sistemas operativos y entornos especializados para producir entornos de alto rendimiento. Por el contrario, las redes pueden utilizar hardware básico, diferentes plataformas o incluso configurarse para utilizar el exceso de capacidad en la infraestructura existente.

Si bien existen algunas diferencias, los dos sistemas tienen muchas similitudes, especialmente cuando se analiza la división del trabajo y la distribución entre nodos. En ambos casos, los servicios web se pueden utilizar para ayudar a respaldar las operaciones del sistema. Los servicios web y las tecnologías grid pueden marcar una enorme diferencia en la eficiencia y flexibilidad de las soluciones informáticas de alto rendimiento al utilizar estándares abiertos y permitir el soporte para una gama más amplia de sistemas operativos y entornos.