ES2886491T3 - Sistema y procedimiento informático de alto rendimiento - Google Patents

Sistema y procedimiento informático de alto rendimiento Download PDF

Info

Publication number
ES2886491T3
ES2886491T3 ES17777304T ES17777304T ES2886491T3 ES 2886491 T3 ES2886491 T3 ES 2886491T3 ES 17777304 T ES17777304 T ES 17777304T ES 17777304 T ES17777304 T ES 17777304T ES 2886491 T3 ES2886491 T3 ES 2886491T3
Authority
ES
Spain
Prior art keywords
nodes
module
node
communication
modular computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES17777304T
Other languages
English (en)
Inventor
Thomas Lippert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Partec AG
Original Assignee
Partec AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Partec AG filed Critical Partec AG
Application granted granted Critical
Publication of ES2886491T3 publication Critical patent/ES2886491T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Jib Cranes (AREA)
  • Paper (AREA)
  • Hardware Redundancy (AREA)

Abstract

Un sistema informático modular (100) para realización de cálculos de programas de aplicación, incluyendo el sistema informático modular diferentes módulos (130, 140, 150, 160, 170), incluyendo cada módulo una pluralidad de nodos (208, 210, 212, 310, 320, 330), el sistema informático modular incluye además una capa de abstracción informática modular (120) para permitir que una capa de aplicación acceda a los recursos del sistema, estando la capa de abstracción informática modular distribuida entre los nodos y proporcionando comunicación intra e intermódulos y una función de gestión para los nodos de los diferentes módulos, así como una función de gestión para los módulos, procesos y recursos, caracterizado porque la capa de abstracción informática modular incluye gestores de nodos (209, 309) implementados en cada nodo, en el que cada uno de los gestores de nodos mantiene un conjunto de información sobre un estado de cada nodo y cada interconexión entre los nodos, y los gestores de nodos intercambian información por comunicación entre sí a través de una red de administración (224), y en el que los recursos son asignables a los nodos utilizando el conjunto de información para ajustar dinámicamente un funcionamiento del sistema, un bucle de retroalimentación que registra un impacto de las decisiones de asignación en todo el sistema.

Description

DESCRIPCIÓN
Sistema y procedimiento informático de alto rendimiento
La presente invención se refiere al campo técnico de la informática de alto rendimiento (HPC). En particular, la invención se refiere a un sistema informático heterogéneo, en particular un sistema informático que incluye diferentes módulos, que pueden asignarse libremente para procesar conjuntamente una tarea de cálculo. Se proporciona una entidad de control, denominada capa de abstracción informática de módulos (MCAL), que permite la asignación dinámica de varios recursos proporcionados por los diferentes módulos. Debido a su flexibilidad para ajustarse a las distintas demandas en materia de informática, la presente invención también es aplicable como sistema subyacente para la prestación de servicios informáticos en la nube, que proporciona recursos de procesamiento informático y datos compartidos a ordenadores y otros dispositivos bajo demanda, principalmente a través de Internet.
Las aplicaciones de los sistemas HPC cubren un amplio campo técnico. Desde la simulación del cerebro humano hasta la predicción meteorológica y climática, pasando por la manipulación informática de fluidos, la obtención de imágenes sísmicas, la radioastronomía o el análisis de datos, por citar algunos ejemplos. La demanda informática de alto rendimiento es cada vez mayor.
Actualmente, las arquitecturas de HPC predominantes son los ordenadores en grupo y los sistemas de procesamiento paralelo masivo (MPP). Los ordenadores de grupo incluyen una pluralidad de nodos de grupo, que se comunican entre sí utilizando tecnología de red estándar. Los nodos individuales del grupo están equipados con procesadores de uso general. En los sistemas MPP (procesamiento paralelo masivo), un gran número de procesadores realiza los cálculos simultáneamente, es decir, en paralelo. Normalmente, también emplean procesadores de propósito general estándar. Sin embargo, los procesadores suelen utilizar tecnología de red propia y software especialmente adaptado para la comunicación.
El documento EP 2960 791 A1 describe un sistema informático distribuido con gestores de recursos para gestionar una pluralidad de ordenadores para ejecutar una aplicación. La comunicación bidireccional entre los gestores de recursos se realiza a través de un marco de comunicaciones. El documento WO 2005/106668 A1 describe un sistema de detección y gestión de fallos de nodos HPC.
Con el fin de satisfacer la demanda de más y más potencia de cálculo, el número de nodos en los grupos de ordenadores y de procesadores en los sistemas MPP ha aumentado masivamente en los últimos años. Sin embargo, ya se puede observar que el simple hecho de utilizar procesadores de propósito general y aumentar su número en un sistema no es una solución.
Los procesadores de propósito general disponibles en el mercado tienen, sin duda, aspectos positivos. Su rendimiento en un solo hilo es alto. Tienen una gran memoria por procesador o núcleo en el caso de un procesador de múltiples núcleos. Se puede utilizar la programación estándar, lo que facilita la portabilidad de las aplicaciones a estos sistemas. Sin embargo, la tecnología está llegando a sus límites. Si se trata de procesadores de propósito general, su velocidad de reloj (frecuencia) prácticamente no ha aumentado en la última década. Esto está estrechamente relacionado con el consumo de energía, que no debería ir mucho más allá de 100 vatios por chip antes de volverse crítico, en particular con la refrigeración del sistema. Además, esos procesadores son comparativamente costosos y tienen una baja eficiencia energética.
Una solución se observa en el empleo de aceleradores, que pueden ser usados para calcular aquellas partes de una aplicación altamente escalable. Una aplicación es altamente escalable si puede manejar mayores cargas añadiendo más recursos de forma más rentable. La parte secuencial del código, que no se puede calcular en paralelo, suele ser uno de los factores limitantes más importantes para la escalabilidad.
Los sistemas que utilizan más de un tipo de procesador se denominan sistemas informáticos heterogéneos. Se pueden utilizar diferentes aceleradores en combinación con procesadores de propósito general, es decir, procesadores de núcleo múltiple y GPU (Unidad de Procesamiento Gráfico). Muchos procesadores de núcleo tienen más de 50 núcleos. Las GPU tienen cientos de núcleos de cálculo simples. Ambos tipos de procesadores son eficientes en términos energéticos.
En los sistemas informáticos heterogéneos, cada nodo del grupo está equipado con aceleradores, formados por uno o más procesadores de múltiples núcleos o GPU. El acelerador funciona básicamente como un coprocesador que complementa las funciones del procesador principal del nodo del grupo. Los nodos del grupo se comunican a través de un tejido en el que los componentes se transmiten datos entre sí a través de conmutadores de interconexión. El término "tejido" se utiliza en el campo de la informática de alto rendimiento para referir a una topología de sistema. El término interconexión también se utiliza para la infraestructura de comunicación entre los nodos del grupo, refiriéndose a una conexión o cable eléctrico u óptico que conecta dispositivos separados. El principal problema de asignar un acelerador a cada nodo es la asignación estática. La proporción entre el procesador de propósito general y la GPU se fija cuando se diseña el sistema.
La solicitud internacional WO2012-049247A1aborda esta deficiencia con una disposición de grupos de ordenadores y un procedimiento para el funcionamiento de la disposición de grupos de ordenadores introducida. La disposición del grupo de ordenadores comprende nodos de cálculo CN, que subcontratan dinámicamente tareas de cálculo específicas a los impulsores B. Por lo tanto, se introduce una técnica de asignación de impulsores B a los nodos de cálculo CN. La asignación tiene lugar dinámicamente en tiempo de ejecución. En esta arquitectura, los nodos del grupo y los nodos del acelerador, que forman el potenciador, se colocan en un solo tejido. Esto es más flexible en comparación con los nodos de grupo acelerados, ya que la asignación del potenciador a los nodos de grupo para acelerar el procesamiento puede hacerse al iniciar un proceso. Esta disposición es descrita además por Norbert Eicker et al. en "The DEEP project Pursuing grupo-computing in the many-core era", 42nd International Conference on Parallel Processing, pp 885-892, 2013y "The DEEP Project An alternative approach to heterogenous grupo-computing in the many-core era", Concurrency and Computation: Practice and Experience, 28, pp 2394-2411. 2015.
Cuando una aplicación es informatizada por un sistema heterogéneo, tal como el tipo de acelerador de grupo, las tareas informáticas individuales no sólo necesitan ser procesadas en múltiples nodos de grupo diferentes, sino también en dos arquitecturas diferentes, a saber, el grupo de ordenadores y el acelerador. Debe garantizarse una comunicación eficaz entre el ordenador del grupo y el amplificador, así como dentro del ordenador del grupo y dentro del amplificador. Además, el creciente número de componentes provoca el riesgo de que éstos fallen, incluso con una alta fiabilidad de las piezas individuales. Por ello, el sistema debe garantizar una gran resistencia, es decir, la capacidad de soportar el fallo de componentes individuales y seguir funcionando.
La presente invención se define por las reivindicaciones independientes. Las realizaciones preferentes se especifican en las reivindicaciones dependientes. Cualquier otra referencia a ejemplos, aspectos y realizaciones, que no se correspondan explícitamente con las reivindicaciones, no son acordes con la invención y están presentes sólo a efectos ilustrativos.
La presente invención proporciona sistemas informáticos modulares. Un sistema informático modular incluye diferentes módulos, tal como un módulo de grupo, y un módulo potenciador, un módulo de almacenamiento, un módulo neuromórfico, un módulo de análisis de datos, un módulo gráfico, un módulo informático cuántica, etc. Cada módulo incluye una pluralidad de nodos. El módulo de grupo incluye una pluralidad de nodos de grupo, el módulo potenciador incluye una pluralidad de nodos potenciadores, y el módulo de almacenamiento incluye una pluralidad de nodos de almacenamiento, etc.
Todos los nodos individuales están conectados a un tejido. Diferentes módulos pueden tener diferentes interconexiones. El módulo de grupo utiliza, por ejemplo, una interconexión InfiniBand, mientras que el módulo potenciador utiliza un tejido Intel Omni-Path, que se conecta a la interconexión InfiniBand mediante nodos de interfaz especiales Lo mismo ocurre con los otros tipos de módulos.
Con el fin de combinar los diferentes módulos en un sistema, se proporciona una capa de abstracción informática modular (MCAL). La MCAL ofrece funciones de comunicación y de gestión. El Para Station by Par Tec Cluster Competence Center GmbH puede constituir un punto de partida para la realización de MCAL con la funcionalidad y las propiedades que se describen a continuación.
La MCAL permite la comunicación dentro de un módulo, denominada comunicación intramódulo, y entre módulos, denominada comunicación intermódulo. Para ello, MCAL proporciona interfaces a los respectivos tejidos, por ejemplo, un tejido para todo el sistema o un tejido especializado por módulo, como InfiniBand para el módulo de grupo y el tejido Intel Omni-Path para el módulo potenciador. También son posibles otras interconexiones, como Ethernet, 10G, Gigabit o comunicación de memoria compartida. MCAL puede utilizar cualquier tipo de comunicación y selecciona la forma concreta de comunicación en función de la disponibilidad, las indicaciones del programa de aplicación, el rendimiento o las consideraciones de costos.
La comunicación de memoria compartida proporciona una forma muy rápida y eficiente para que dos o más procesos se comuniquen. MCAL puede emplear diferentes tipos de comunicación de memoria compartida. En el caso de que dos o más procesos de una tarea paralela se ejecuten en el mismo nodo físico que tiene memoria compartida, esta memoria compartida puede utilizarse para la comunicación de memoria compartida entre estos procesos. Esto suele ser posible en los nodos SMP, en los que se genera un proceso por CPU. El multiprocesamiento simétrico (SMP) es una arquitectura en la que dos o más procesadores idénticos se conectan a una única memoria principal compartida. Dado que MCAL tiene conocimiento de los procesos y en qué nodo se procesan, MCAL puede establecer una comunicación de memoria compartida en tal situación.
Sin embargo, la comunicación de memoria compartida no se limita a situaciones SMP. En el caso de que los procesos se ejecuten en diferentes nodos dentro de un módulo o incluso en nodos pertenecientes a diferentes módulos, MCAL establece una comunicación de espacio de direcciones virtual compartido. Utilizando la comunicación del espacio de direcciones virtuales compartidas, los mensajes más grandes se transmiten entre nodos compartiendo únicamente los metadatos del mensaje y la dirección virtual de los datos en sí. El proceso puede acceder al mensaje real a través de su espacio de direcciones virtual asignado. Esto permite una comunicación rápida. MCAL establece una comunicación de espacio de direcciones virtual mediante la creación de una región de memoria, que es compartida directamente por los procesos o nodos involucrados en la comunicación.
Como puede observarse en estos ejemplos, la MCAL no sólo proporciona la funcionalidad de comunicación, sino que también selecciona la forma de comunicación, lo que aumenta el rendimiento y la eficiencia. MCAL puede, por ejemplo, decidir qué interconexión puede utilizarse para la comunicación mientras se generan procesos, es decir, se crean y ejecutan nuevos procesos secundarios. Al mismo tiempo, MCAL supervisa el proceso actual y observa que el proceso secundario termina o puede continuar ejecutándose de forma asíncrona.
La segunda función principal que ofrece MCAL es la gestión. La función de gestión abarca diferentes aspectos, a saber, la gestión de nodos, la gestión de módulos, la gestión de procesos y la gestión de recursos.
La gestión de los nodos está dirigida a los nodos individuales, como los nodos de grupo en un módulo de grupo, los nodos potenciadores en un módulo potenciador, los nodos de almacenamiento en un módulo de almacenamiento y así sucesivamente en relación con otros tipos de módulos, como se ha nombrado anteriormente, que están presentes en el sistema. MCAL detecta en primer lugar los nodos utilizables. Los nodos utilizables son los que están listos para ser usados. Esto incluye que MCAL esté configurado para identificar los nodos que funcionan mal o que están a punto de fallar, por ejemplo, basándose en los parámetros del sistema, como la temperatura, la memoria disponible, etc., y la variación de esas propiedades en el tiempo. Por lo tanto, MCAL implementa la tolerancia a los fallos y, por lo tanto, garantiza una alta capacidad de recuperación.
Esto lo hace MCAL por el empleo del concepto de nodos virtuales. Los nodos virtuales representan hardware real, tal como nodos de grupo, nodos potenciadores, nodos de almacenamiento, etc., pero MCAL tiene la libertad de asignar dinámicamente los nodos. Por ejemplo, si una aplicación requiere X nodos de grupo, Y nodos potenciadores y Z nodos de almacenamiento (siendo X, Y, Z números enteros). MCAl puede proporcionar esos nodos de todos los recursos disponibles. En caso de que un nodo falle o se añada al sistema, Mc Al puede reaccionar rápidamente con sólo cambiar la asignación entre los nodos virtuales y los físicos. Los nodos que funcionan mal pueden ser eliminados de la lista de nodos disponibles sin que todo el sistema falle.
MCAL también tiene la capacidad de seleccionar nodos particulares dependiendo de factores tal como la accesibilidad, la latencia o la ubicación física. Esto puede hacerse de forma totalmente transparente para la aplicación en ejecución.
La MCAL tiene la visión global del sistema y mantiene constantemente actualizado el estado de cada nodo y de cada interconexión. MCAL es informada en todo momento de las propiedades particulares de cada nodo e interconexión, tal como el número de CPU disponibles por nodo, los servicios en ejecución, el almacenamiento disponible, el ancho de banda de la interconexión, la memoria libre, la temperatura, la velocidad de reloj del sistema, etc.
Otra función es la gestión de los módulos. La gestión de los módulos es similar a la gestión de los nodos, y puede incluir la gestión de los nodos de un módulo particular, pero tiene en cuenta el aspecto específico del módulo. La gestión de los módulos se centra en aspectos específicos de los mismos, como el estado de los nodos de interfaz, si los hay, a través de los cuales el módulo se comunica con otros. Al igual que los nodos, MCAL supervisa el estado del módulo para permitir una mayor utilización del mismo.
MCAL también es responsable de la gestión de los procesos. Cada aplicación en ejecución se divide en una pluralidad de procesos individuales, que deben ser iniciados, distribuidos y supervisados. Al mismo tiempo, es necesario asignar recursos que correspondan a la necesidad de potencia de cálculo y almacenamiento del proceso. Si el proceso requiere un procesamiento particular, MCAL asigna uno o más nodos potenciadores o incluso nodos más específicos como nodos neuromórficos, nodos de análisis de datos, nodos gráficos o nodos informático cuántica de los respectivos módulos.
Para ello, MCAL está configurado para reconocer y controlar las dependencias entre los procesos y sus requisitos. En base a esto, MCAL crea procesos en los nodos, en el caso de un módulo potenciador o un módulo de grupo, o asigna el almacenamiento en el caso de un módulo de almacenamiento. Los procesos se supervisan y los procesos dependientes se tratan como un grupo, lo que permite responder rápidamente a los errores que se producen en cualquiera de las tareas paralelas. Esto permite que los procesos se reinicien inmediatamente, de modo que se minimiza el retraso global de la aplicación en ejecución.
La gestión de recursos es otra tarea que MCAL realiza en el sistema informático modular. Como parte de la gestión de recursos, MCAL realiza un mecanismo de descarga, es decir, los procesos que se ejecutan, por ejemplo, en un módulo de grupo, pueden necesitar algunos nodos potenciadores del módulo potenciador. En este caso, MCAL puede generar procesos en los nodos potenciadores seleccionados para ejecutar la tarea en paralelo.
Como parte de la descarga, no sólo se puede crear un proceso que se ejecute en un potenciador, sino múltiples procesos, que se comunican directamente entre sí utilizando el tejido de comunicación de los módulos sin necesidad de que el procesador anfitrión interfiera.
La gestión de recursos también garantiza la reducción del consumo de memoria, por ejemplo, reduciendo el número de conexiones entre los diferentes procesos. Para ello se utilizan conexiones a demanda, que sólo se establecen realmente cuando se necesitan. Esto reduce dramáticamente el consumo de memoria por conexión. Así, no sólo los recursos como los nodos se tratan de forma virtual, sino que la asignación virtual también se aplica a las redes físicas.
Al asignar los recursos, MCAL no sólo tiene en cuenta la solicitud de un proceso, sino también la de otros procesos. Esto permite responder con flexibilidad a los cambios de la infraestructura de comunicación basados en el control integrado.
El control integrado es otro aspecto funcional proporcionado por MCAL. El control integrado se refiere a la utilización de la información recogida por MCAL desde su función de gestión para controlar la comunicación y viceversa. Por lo tanto, la función de comunicación y la función de gestión no están separadas sino integradas para optimizar aún más el rendimiento global del sistema.
El conocimiento de MCAL sobre todos los diferentes aspectos de todos los nodos en todos los módulos y el estado de todas las interconexiones, la comunicación intramódulo y la comunicación intermódulo se utiliza para ejecutar el sistema. Esto permite ajustarse dinámicamente al comportamiento cambiante del sistema, así como a la demanda cambiante de la aplicación que se ejecuta en el sistema.
El control integrado no sólo tiene en cuenta el estado real del sistema y las demandas de la aplicación, sino que también predice las próximas solicitudes de uso de módulos o interconexiones.
La información del estado del sistema se utiliza para la asignación dinámica de nodos. Esto incluye que la asignación de recursos se realice mediante un bucle de retroalimentación que registre el impacto de las decisiones de asignación en todo el sistema, de modo que las asignaciones futuras se ajusten en consecuencia. El sistema también almacena dicha información para mejorar las decisiones de asignación para futuros casos, de forma autodidacta.
Aunque la parte principal de la aplicación normalmente se inicia en el módulo de grupo, MCAL identifica qué parte de la aplicación debe ejecutarse en el módulo de grupo o en el módulo potenciador. Las bases para la decisión son, por ejemplo, las indicaciones del propio código de la aplicación, de la observación del rendimiento de los códigos durante su ejecución. Esto permite ajustar la asignación durante el cálculo de la solicitud.
En cuanto a la implementación de MCAL, ésta se distribuye por todo el sistema e incluye gestores de nodo (NM) implementados en cada nodo. Los gestores de nodos pueden implementarse en hardware o en software, por ejemplo, como procesos daemon que se ejecutan en los respectivos nodos. Los gestores de nodos recopilan constantemente información para construir una visión global de los módulos y de todo el sistema. Las aplicaciones que se ejecutan en el sistema pueden beneficiarse de esta información mediante la comunicación con la función de gestión o directamente con los gestores de los nodos individuales. Esto se realiza mediante una interfaz particular, que puede ser hardware o una API (interfaz de programación de aplicaciones). Por lo tanto, no sólo MCAL recibe información de las aplicaciones, sino que las aplicaciones se benefician de la información recogida por MCAL a través de los gestores de nodos individuales.
El tráfico de comunicación de los gestores de nodos está estrictamente separado de la comunicación intra e inter módulos. Esto permite que la comunicación intra e intermódulos funcione a gran velocidad sin que se interrumpan las funciones de gestión. Además, la seguridad del sistema puede verse reforzada por esta separación.
El uso de la red de comunicación real es controlado por MCAL, que proporciona dicha funcionalidad a la aplicación a través de la interfaz de paso de mensajes (MPI). Parte de MCAL es una pila MPI para cada módulo, así como un MPI global para todo el sistema. Se realizan MPI individuales, por ejemplo, para el módulo de grupo de ordenadores, el módulo potenciador, el módulo de almacenamiento, etc.
La comunicación de MCAL utiliza una red de administración. La red de administración puede ser la misma o una red física diferente a la red física utilizada para la comunicación intra e intermódulos. Por ejemplo, la comunicación intra e intermódulos puede ser InfiniBand, Myrinet, etc. y la red de administración puede estar formada por Ethernet conectando los gestores de nodos.
Se pueden incluir nodos especiales en el sistema para proporcionar un front-end que permita realizar tareas administrativas o funciones de control del sistema. No es necesario que el front-end esté conectado a la red de comunicación, sino sólo a la red de comunicación. A través del nodo front-end, que puede estar formado, por ejemplo, por un ordenador de puesto de trabajo, un ordenador personal (PC), un ordenador portátil o cualquier dispositivo informático inteligente, se puede administrar el sistema informático modular. Las aplicaciones que se ejecutan en los sistemas informáticos modulares pueden programarse, iniciarse, detenerse y supervisarse. Esto puede hacerse mediante el procesamiento por lotes, es decir, ejecutando una serie de trabajos en el sistema informático modular sin intervención manual, por tanto, no interactivo.
Además de ejecutar una serie de trabajos en el sistema informático modular sin intervención manual, MCAL puede proporcionar computación interactiva, en la que la aplicación que se ejecuta en el sistema informático modular acepta entradas de los seres humanos mientras se ejecuta. Esta entrada puede proporcionarse a través de un ordenador de la estación de trabajo, un ordenador personal (PC), un ordenador portátil o cualquier dispositivo informático inteligente. En este escenario, el sistema informático modular es accesible a través de, por ejemplo, el ordenador portátil, apareciendo como el ordenador portátil tendría la potencia de cálculo del sistema informático modular. Esto es muy útil para las aplicaciones en tiempo real, que deben responder dentro de un marco temporal que el usuario percibe como inmediato o actual. También las aplicaciones de Big Data, que hacen accesible una cantidad voluminosa de datos estructurados, semiestructurados y no estructurados para la extracción de información, pueden hacer uso de esta disposición. Esto también es cierto para los servicios informáticos en la nube que tienen el sistema informático modular como recurso subyacente para el suministro de potencia de cálculo y almacenamiento.
La estrecha integración entre MCAL y el sistema permite reducir la latencia de la comunicación y mejorar la comunicación en el sistema informático modular descrito.
Dibujos
La Fig. 1 muestra una vista funcional de un sistema informático modular de acuerdo con la presente invención.
La Fig. 2 muestra una primera realización de un sistema informático modular de acuerdo con la presente invención.
La Fig. 3 muestra una segunda realización de un sistema informático modular de acuerdo con la presente invención.
La Fig. 1 muestra la vista funcional de un sistema informático modular 100 de acuerdo con la presente invención. Una capa de aplicación 110 forma la parte superior del sistema informático modular. En la capa de aplicación se ejecutan programas de aplicación, tal como programas de software, en el sistema informático modular 100. Se proporciona una capa de abstracción informática modular 120 (MCAL), para permitir que la capa de aplicación 110 acceda a los recursos del sistema. Los recursos del sistema están formados por varios módulos, tal como el módulo de grupo 130, el módulo potenciador 140, el módulo de almacenamiento 150, el módulo de análisis de datos 160 y otros módulos 170, por ejemplo, uno o más del siguiente grupo de módulos: un módulo neuromórfico, un módulo gráfico, un módulo informático cuántico. También es posible tener varios módulos del mismo tipo.
La MCAL 120 permite la comunicación dentro de un módulo, denominada comunicación intramódulo, y entre módulos, denominada comunicación intermódulo. MCAL 120 puede utilizar cualquier tipo de comunicación y selecciona la forma concreta de comunicación en función de la disponibilidad, las indicaciones del programa de aplicación, el rendimiento o las consideraciones de costo. Además, MCAL 120 ofrece una función de gestión. La función de gestión abarca diferentes aspectos, a saber, la gestión de nodos, la gestión de módulos, la gestión de procesos y la gestión de recursos. La gestión de los nodos está dirigida a los nodos individuales y se explicará más adelante con referencia a las Figuras 2 y 3.
La MCAL 120 tiene la vista global del sistema y mantiene constantemente actualizado el estado de cada módulo 130, 140, 150, 160 y 170. MCAL 120 es informada en todo momento de las propiedades particulares del módulo 130, 140, 150, 160 y 170, tal como el número de procesadores disponibles, los servicios en ejecución, el almacenamiento disponible, el ancho de banda de interconexión, la memoria libre, la temperatura, la velocidad de reloj del sistema, etc. Otra función que ofrece MCAL 120 es la gestión de los módulos. La gestión de los módulos tiene en cuenta el aspecto específico de los mismos. Por lo tanto, MCAL incluye funciones especialmente adaptadas para gestionar el módulo de grupo 130, el módulo potenciador 140, el módulo de almacenamiento 150, el módulo de análisis de datos 160 y otros módulos 170. MCAL 120 también es responsable de la gestión de los procesos. Cada aplicación en ejecución 110 se divide en una pluralidad de procesos individuales, que deben ser iniciados, distribuidos y supervisados. Al mismo tiempo, es necesario asignar recursos que correspondan a la necesidad de potencia de cálculo y almacenamiento del proceso. Si el proceso requiere un procesamiento particular, MCAL 120 asigna uno o más nodos potenciadores o incluso nodos más específicos como nodos neuromórficos, nodos de análisis de datos, nodos gráficos o nodos de informática cuántica de los respectivos módulos. Para ello, MCAL 120 está configurado para reconocer y controlar las dependencias entre los procesos y sus requisitos. La gestión de recursos es otra de las tareas que realiza MCAL 120 en el sistema informático modular. Como parte de la gestión de recursos, MCAL 120 realiza un mecanismo de descarga, es decir, los procesos que se ejecutan, por ejemplo, en un módulo de grupo 130, pueden requerir algunos nodos potenciadores del módulo potenciador 140. En este caso, MCAL 120 puede generar procesos en los nodos potenciadores seleccionados del módulo potenciador 140, con el fin de ejecutar la tarea en paralelo.
El control integrado es otro aspecto funcional proporcionado por MCAL 120. El control integrado se refiere a la utilización de la información recogida por MCAL 120 desde su función de gestión para controlar la comunicación y viceversa. Por lo tanto, la función de comunicación y la función de gestión no están separadas sino integradas para optimizar aún más el rendimiento global del sistema. Esto permite ajustarse dinámicamente al comportamiento cambiante del sistema, así como a la demanda cambiante de la aplicación que se ejecuta en el sistema. El control integrado no sólo tiene en cuenta el estado real del sistema y las demandas de la aplicación, sino que también predice las próximas solicitudes de uso de módulos o interconexiones.
La Fig. 2 muestra una primera realización de un sistema informático modular 200 de acuerdo con la presente invención. El sistema informático modular 200 incluye un módulo de grupo 202, un módulo potenciador 204 y un módulo de almacenamiento 206.
El módulo de grupo 202 incluye una pluralidad de nodos de grupo 208 (CN). En cada nodo de grupo 208 se proporciona un gestor de nodo 209 (NM), que en cooperación con otros gestores de nodo 209 proporciona funcionalidad de comunicación y gestión al sistema informático modular 200. El módulo potenciador 204 incluye una pluralidad de nodos potenciadores 210 (BN). En cada nodo potenciador 210 se proporciona un gestor de nodos 209, que en cooperación con otros gestores de nodos 209 proporciona funcionalidad de comunicación y gestión al sistema informático modular 200. El módulo de almacenamiento 206 incluye una pluralidad de nodos de almacenamiento 212 (SN). En cada nodo de almacenamiento 212 se proporciona un gestor de nodos 209, que en cooperación con otros gestores de nodos 209 proporciona funcionalidad de comunicación y gestión al sistema informático modular 200.
El nodo de grupo puede estar formado por un ordenador con un microprocesador de propósito general, tal como un procesador Intel Xeon, memoria, interfaces, tal como tarjetas de red. Los nodos potenciadores pueden estar formados por sistemas de procesamiento equipados con GPU o muchos procesadores de núcleo, memoria e interfaces, como tarjetas de red. Los nodos de almacenamiento incluyen memoria, que puede ser RAM (memoria de acceso aleatorio) y memoria no volátil, como memoria flash, SSD (disco de estado sólido), disco duro, además el nodo de almacenamiento incluye un controlador de nodo, tal como un microprocesador e interfaces, tal como tarjetas de red.
Se proporcionan dos infraestructuras de red diferentes. En primer lugar, existe una red de comunicación 220 que conecta todos los nodos 208, 210, 212 entre sí, de modo que los nodos del grupo 208 y los nodos potenciadores 210 y los nodos de almacenamiento 212 pueden comunicarse.
En segundo lugar, se proporciona una red de administración 224 que conecta todos los gestores de nodos 209 proporcionados en los distintos nodos 208, 210 y 212. Conectado a la red de administración 224 existe un front-end 230 que permite controlar todo el sistema informático modular. El front-end 230 también incluye un gestor de nodos 209, que realiza la comunicación real con los otros gestores de nodos 209.
Con el fin de combinar los diferentes módulos en un sistema, se proporciona una capa de abstracción informática modular (MCAL) como se describe con referencia a la Fig. 1. La MCAl ofrece funciones de comunicación y de gestión. El ParaStation by ParTec Cluster Competence Center GmbH puede constituir un punto de partida para la realización de MCAL con la funcionalidad y las propiedades descritas en la presente memoria.
La MCAL es implementada por los gestores de nodos 209 en los nodos individuales y permite la comunicación dentro de un módulo, referida como comunicación intramódulo, y entre módulos, referida como comunicación intermódulo. Para ello, los gestores de nodos proporcionan interfaces a los respectivos tejidos, por ejemplo, un tejido para todo el sistema o un tejido especializado por módulo, tal como InfiniBand para el módulo de grupo 202 y el tejido Intel Omni-Path para el módulo potenciador 204. También son posibles otras interconexiones, tal como Ethernet, 10G, Gigabit o comunicación de memoria compartida. Los gestores de nodos 309 pueden utilizar cualquier tipo de comunicación y seleccionan la forma concreta de comunicación en función de la disponibilidad, las indicaciones del programa de aplicación, el rendimiento o las consideraciones de costo.
Se puede emplear la comunicación de memoria compartida y la comunicación de espacio de direcciones virtual compartido, que proporcionan una forma muy rápida y eficiente para que dos o más procesos se comuniquen.
Los gestores de nodos 209 proporcionan colectivamente la gestión de los nodos. La gestión de los nodos está dirigida a los nodos individuales, tal como los nodos de grupo 208 en un módulo de grupo 202, los nodos potenciadores 210 en un módulo potenciador 204, los nodos de almacenamiento 212 en un módulo de almacenamiento 206.
Además, los gestores de nodos 209 también seleccionan nodos particulares dependiendo de factores tal como la accesibilidad, la latencia o la ubicación física. Esto puede hacerse de forma totalmente transparente para la aplicación en ejecución. Estos recopilan e intercambian información sobre el conjunto del sistema y mantienen constantemente actualizado el estado de cada nodo y de cada interconexión. Esto permite a los gestores de nodos 309 estar informados en todo momento de las propiedades particulares de cada nodo e interconexión, tal como el número de CPU disponibles por nodo, los servicios en ejecución, el almacenamiento disponible, el ancho de banda de la interconexión, la memoria libre, la temperatura, la velocidad de reloj del sistema, etc.
Otra función implementada por los gestores de nodos es la gestión de módulos. La gestión de módulos es similar a la gestión de los nodos, y puede incluir la gestión de los nodos de un módulo particular, pero tiene en cuenta el aspecto específico del módulo. La gestión de los módulos se centra en aspectos específicos de los mismos, tal como el estado de los nodos de interfaz, de haberlos, a través de los cuales el módulo se comunica con otros. Al igual que los nodos, el gestor de nodos 309 supervisa el estado del módulo para permitir una mayor utilización del mismo.
La gestión de recursos es otra tarea que los gestores de nodos 209 realizan en el sistema informático modular 200. Como parte de la gestión de recursos, realizan un mecanismo de descarga, es decir, los procesos que se ejecutan, por ejemplo, en un módulo de grupo 202, pueden requerir algunos nodos potenciadores 210 del módulo potenciador 204. En este caso, un gestor de nodos puede generar procesos en los nodos potenciadores seleccionados 210, con el fin de ejecutar la tarea en paralelo.
El control integrado es otro aspecto funcional implementado por los gestores de nodos. El control integrado se refiere a la utilización de la información recogida por los gestores de los nodos de su función de gestión para controlar la comunicación y viceversa. Por lo tanto, la función de comunicación y la función de gestión no están separadas sino integradas para optimizar en forma adicional el rendimiento global del sistema.
El conocimiento de los gestores de nodos 209 sobre todos los diferentes aspectos de todos los nodos en todos los módulos y el estado de todas las interconexiones, la comunicación intramódulo y la comunicación intermódulo se utiliza para ejecutar el sistema. Esto permite ajustarse dinámicamente al comportamiento cambiante del sistema, así como a la demanda cambiante de la aplicación que se ejecuta en el sistema.
El control integrado no sólo tiene en cuenta el estado real del sistema y las demandas de la aplicación, sino que también predice las próximas solicitudes de uso de módulos o interconexiones.
Los gestores de nodos 209 pueden ser implementados en hardware, o en software, por ejemplo como procesos daemon que se ejecutan en los respectivos nodos. Los gestores de nodos 209 recopilan constantemente información para construir una visión global de los módulos y de todo el sistema. Las aplicaciones que se ejecutan en el sistema pueden beneficiarse de esta información mediante la comunicación con la función de gestión o directamente con los gestores de nodos individuales 209. Esto se realiza mediante una interfaz particular, que puede ser hardware o una API (interfaz de programación de aplicaciones).
El tráfico de comunicación de los gestores de nodos 209 está estrictamente separado de la comunicación intra e intermódulos. Esto permite que la comunicación intra e intermódulos funcione a gran velocidad sin que se interrumpan las funciones de gestión. Además, la seguridad del sistema puede verse reforzada por esta separación.
El uso de la red de comunicación real 220 es controlado por los gestores de nodos 209, que proporcionan dicha funcionalidad a la aplicación a través de la interfaz de paso de mensajes (MPI).
Los gestores de nodos 209 se comunican entre sí utilizando la red de administración 224. La red de administración 224 puede ser la misma o una red física diferente a la red física utilizada para la comunicación intra e inter módulos, denominada en la presente memoria red de comunicación 220. Por ejemplo, la comunicación intra e intermódulos puede ser InfiniBand, Myrinet, etc. y la red de administración puede estar formada por Ethernet conectando los gestores de nodos 209.
Se pueden incluir nodos especiales en el sistema para proporcionar un front-end 230 que permita realizar tareas administrativas o funciones de control para ejecutar el sistema. El front-end no requiere conexión a la red de comunicación 220, sino sólo a la red de administración 224. A través del nodo front-end, que puede estar formado, por ejemplo, por un ordenador de puesto de trabajo, un ordenador personal (PC), un ordenador portátil o cualquier dispositivo informático inteligente, se puede administrar el sistema informático modular 200. Las aplicaciones que se ejecutan en el sistema informático modular 200s pueden programarse, iniciarse, detenerse y supervisarse. Esto puede hacerse mediante el procesamiento por lotes, es decir, ejecutando una serie de trabajos en el sistema informático modular 200 sin intervención manual, por lo tanto, no interactivo.
Además de ejecutar una serie de tareas en el sistema informático modular 200 sin intervención manual, los gestores de nodos 309 pueden proporcionar un cálculo interactivo, en el que la aplicación que se ejecuta en el sistema informático modular 200 acepta entradas de los seres humanos mientras se ejecuta. Esta entrada puede proporcionarse a través de un ordenador de la estación de trabajo, un ordenador personal (PC), un ordenador portátil o cualquier dispositivo informático inteligente. En este escenario, el sistema informático modular 200 es accesible a través de, por ejemplo, el ordenador portátil, ya que éste tiene la potencia de cálculo del sistema informático modular 200. Esto es muy útil para las aplicaciones en tiempo real, que deben responder dentro de un marco temporal que el usuario percibe como inmediato o actual. También las aplicaciones de Big Data, que hacen accesible una cantidad voluminosa de datos estructurados, semiestructurados y no estructurados para la extracción de información, pueden hacer uso de esta disposición. Esto también es cierto para los servicios informáticos en la nube que tienen el sistema informático modular 200 como recurso subyacente para el suministro de potencia de cálculo y almacenamiento.
La Fig. 3 muestra una segunda realización de un sistema informático modular 300 de acuerdo con la presente invención. El sistema informático modular 300 incluye un módulo de grupo 302, un módulo potenciador 304 y un módulo de almacenamiento 306.
El módulo de grupo 302 incluye una pluralidad de nodos de grupo 310 (CN). En cada nodo del grupo 310 se proporciona un gestor de nodos 309 (NM), que en cooperación con otros gestores de nodos 309 proporciona funcionalidad de comunicación y gestión al sistema informático modular 300. Los nodos del grupo 310 están conectados entre sí a través de una interconexión de grupo 312.
El módulo potenciador 304 incluye una pluralidad de nodos potenciadores 320 (BN). En cada nodo potenciador 320 se proporciona un gestor de nodos 309, que en cooperación con otros gestores de nodos 309 proporciona funcionalidad de comunicación y gestión al sistema informático modular 300. Los nodos potenciadores 320 están conectados entre sí a través de una interconexión potenciador 322.
El módulo de almacenamiento 306 incluye una pluralidad de nodos de almacenamiento 330 (SN). En cada nodo de almacenamiento 330 se proporciona un gestor de nodos 309, que en cooperación con otros gestores de nodos 309 proporciona funcionalidad de comunicación y gestión al sistema informático modular 300. Los nodos de almacenamiento 330 están conectados entre sí a través de la interconexión de almacenamiento 332.
El nodo del grupo puede estar formado por un ordenador con un microprocesador de propósito general, tal como un procesador Intel Xeon, memoria, interfaces, tal como tarjetas de red. Los nodos potenciadores pueden estar formados por sistemas de procesamiento equipados con GPU o muchos procesadores de núcleo, memoria e interfaces, tal como tarjetas de red. Los nodos de almacenamiento incluyen memoria, que puede ser RAM (memoria de acceso aleatorio) y memoria no volátil, como memoria flash, SSD (disco de estado sólido), disco duro, además el nodo de almacenamiento incluye un controlador de nodo, tal como un microprocesador e interfaces, tal como tarjetas de red.
El módulo de grupo 302 puede comunicarse con el módulo de almacenamiento 306 a través de un nodo de interfaz 340 que conecta la interconexión de grupo 312 con la interconexión de almacenamiento 332. El módulo de almacenamiento 306 puede comunicarse con el módulo potenciador 304 a través de un nodo de interfaz 342 que conecta la interconexión de almacenamiento 332 con la interconexión potenciador 322. El módulo potenciador 304 puede comunicarse con el módulo de grupo 302 a través de un nodo de interfaz 344 que conecta la interconexión potenciador 322 con la interconexión de grupo 312.
El módulo de grupo 302 utiliza, por ejemplo, una interconexión InfiniBand, mientras que el módulo potenciador 304 utiliza un tejido Intel Omni-Path, que se conecta a la interconexión InfiniBand a través del nodo de interfaz 344. Cada nodo de interfaz puede estar formado por una pluralidad de nodos con el fin de aumentar el rendimiento y la producción. Lo mismo ocurre con los otros tipos de módulos.
Todos los gestores de nodos 309 proporcionados en los distintos nodos 310, 310, 312 utilizan la misma infraestructura de comunicación. Adjunto a la interconexión del grupo 312 hay un front-end 350 que permite controlar todo el sistema informático modular. El front-end 350 también incluye un gestor de nodos 309, que realiza la comunicación real con los otros gestores de nodos 309.
Para combinar los diferentes módulos en un sistema, se proporciona una capa de abstracción informática modular (MCAL), como se describe en la Fig. 1. La MCAL ofrece funciones de comunicación y de gestión. El ParaStation by ParTec Cluster Competence Center GmbH puede constituir un punto de partida para la realización de MCAL con la funcionalidad y las propiedades que se describen a continuación.
MCAL es implementada por los gestores de nodos 309 en cada nodo, que pueden utilizar para la comunicación proceso a proceso cualquier tipo de enlace de comunicación proporcionado.
Como se ha mencionado anteriormente, los gestores de nodos 309 también proporcionan una gestión de nodos. La gestión de los nodos está dirigida a los nodos individuales, tal como los nodos de grupo 310 en un módulo de grupo 302, los nodos potenciadores 320 en un módulo potenciador 304, los nodos de almacenamiento 330 en un módulo de almacenamiento 306. Los gestores de nodos 309 también tienen la capacidad de seleccionar determinados nodos en función de factores tal como la accesibilidad, la latencia o la ubicación física. Esto puede hacerse de forma totalmente transparente para la aplicación en ejecución. Siempre tienen una visión global del sistema y mantienen constantemente actualizado el estado de cada nodo y de cada interconexión. Los gestores de nodos 309 se informan mutuamente en todo momento sobre las propiedades particulares de cada nodo e interconexión, tal como el número de CPU disponibles por nodo, los servicios en ejecución, el almacenamiento disponible, el ancho de banda de interconexión, la memoria libre, la temperatura, la velocidad de reloj del sistema, etc.
Otra función que implementan es la gestión de módulos. La gestión de módulos es similar a la gestión de los nodos, y puede incluir la gestión de los nodos de un módulo particular, pero tiene en cuenta el aspecto específico del módulo. La gestión de los módulos se centra en aspectos específicos de los mismos, tal como el estado de los nodos de interfaz, de haberlos, a través de los cuales el módulo se comunica con otros.
Los gestores de nodos 309 también implementan gestión de procesos. Cada aplicación en ejecución se divide en una pluralidad de procesos individuales, que deben ser iniciados, distribuidos y supervisados. Al mismo tiempo, es necesario asignar recursos que correspondan a la necesidad de potencia de cálculo y almacenamiento del proceso. Están configurados para reconocer y controlar las dependencias entre los procesos y sus requisitos. En base a esto, los gestores de nodos 309 crean procesos en los nodos, en el caso de un módulo potenciador 304 o de un módulo de grupo 302, o asignan almacenamiento en el caso de un módulo de almacenamiento 306. Los procesos se supervisan y los procesos dependientes se tratan como un grupo, lo que permite responder rápidamente a los errores que se producen en cualquiera de las tareas paralelas. Esto permite que los procesos se reinicien inmediatamente, de modo que se minimiza el retraso global de la aplicación en ejecución.
La gestión de recursos es otra tarea que los gestores de nodos 309 implementan en el sistema informático modular 300. Como parte de la gestión de recursos, realizan un mecanismo de descarga, es decir, los procesos que se ejecutan, por ejemplo, en un módulo de grupo 302, pueden requerir algunos nodos potenciadores 320 del módulo potenciador 304. En este caso, el gestor de nodos 309 genera procesos en los nodos potenciadores seleccionados 320, con el fin de ejecutar la tarea en paralelo.
Como parte de la descarga, no sólo se puede crear un proceso que se ejecute en un potenciador, sino múltiples procesos, que se comunican directamente entre sí utilizando el tejido de comunicación de los módulos sin necesidad de que el procesador anfitrión interfiera.
La gestión de recursos también garantiza la reducción del consumo de memoria, por ejemplo, reduciendo el número de conexiones entre los diferentes procesos. Para ello se utilizan conexiones a demanda, que sólo se establecen realmente cuando se necesitan. Esto reduce dramáticamente el consumo de memoria por conexión. Así, no sólo los recursos como los nodos se tratan de forma virtual, sino que la asignación virtual también se aplica a las redes físicas.
Al asignar los recursos, los gestores de nodos 309 no sólo tienen en cuenta la solicitud de un proceso, sino también la de otros procesos. Esto permite responder con flexibilidad a los cambios de la infraestructura de comunicación en base al control integrado.
El control integrado es otro aspecto funcional proporcionado por los gestores de nodos 309. El control integrado se refiere a la utilización de la información recogida por los gestores de los nodos de su función de gestión para controlar la comunicación y viceversa. Por lo tanto, la función de comunicación y la función de gestión no están separadas sino integradas para optimizar en forma adicional el rendimiento global del sistema.
El conocimiento de los gestores de nodos sobre todos los diferentes aspectos de todos los nodos en todos los módulos y el estado de todas las interconexiones, la comunicación intramódulo y la comunicación intermódulo se utiliza para ejecutar el sistema. Esto permite ajustarse dinámicamente al comportamiento cambiante del sistema, así como a la demanda cambiante de la aplicación que se ejecuta en el sistema.
El control integrado no sólo tiene en cuenta el estado real del sistema y las demandas de la aplicación, sino que también predice las próximas solicitudes de uso de módulos o interconexiones. La información del estado del sistema se utiliza para la asignación dinámica de los nodos. Esto incluye que la asignación de recursos se realice mediante un bucle de retroalimentación que registre el impacto de las decisiones de asignación en todo el sistema, de modo que las asignaciones futuras se ajusten en consecuencia. El sistema también almacena dicha información para mejorar las decisiones de asignación para futuros casos, de forma autodidacta.
Aunque la parte principal de la aplicación se inicie normalmente en el módulo de grupo 302, los gestores de nodos identifican qué parte de la aplicación debe ejecutarse en el módulo de grupo 302 o en el módulo potenciador 304. Las bases para la decisión son, por ejemplo, las indicaciones del propio código de la aplicación, de la observación del rendimiento de los códigos durante su ejecución. Esto permite ajustar la asignación durante el cálculo de la solicitud.
Los gestores de nodos 309 pueden ser implementados en hardware, o en software, por ejemplo como procesos daemon que se ejecutan en los respectivos nodos. Los gestores de nodos 309 recopilan constantemente información para construir una visión global de los módulos y de todo el sistema. Las aplicaciones que se ejecutan en el sistema pueden beneficiarse de esta información mediante la comunicación con la función de gestión o directamente con los gestores de nodos individuales 309. Esto se realiza mediante una interfaz particular, que puede ser hardware o una API (interfaz de programación de aplicaciones).
El tráfico de comunicación de los gestores de nodos está estrictamente separado de la comunicación intra e intermódulos. Esto permite que la comunicación intra e intermódulos funcione a gran velocidad sin que se interrumpan las funciones de gestión. Además, la seguridad del sistema puede verse reforzada por esta separación.
El uso de la red de comunicación real es controlado por los gestores de nodos 309, que proporcionan dicha funcionalidad a la aplicación a través de la interfaz de paso de mensajes (MPI). Los gestores de nodos 309 utilizan una red de administración (no mostrada). La red de administración (no mostrada) puede ser la misma o una red física diferente a la red física utilizada para la comunicación intra e intermódulos. Por ejemplo, la comunicación intra e intermódulos puede ser InfiniBand, Myrinet, etc. y la red de administración (no mostrada) puede estar formada por Ethernet por conexión de los gestores de nodos 309.
Se pueden incluir nodos especiales en el sistema para proporcionar un front-end que permita realizar tareas administrativas o funciones de control del sistema. No se requiere que el front-end 350 se conecte a la red de comunicación, sino sólo a la red de comunicación. A través del nodo front-end 350, que puede estar formado, por ejemplo, por un ordenador de puesto de trabajo, un ordenador personal (PC), un ordenador portátil o cualquier dispositivo informático inteligente, se puede administrar el sistema informático modular 300. Las aplicaciones que se ejecutan en el sistema informático modular 300s pueden programarse, iniciarse, detenerse y supervisarse. Esto puede hacerse mediante el procesamiento por lotes, es decir, ejecutando una serie de trabajos en el sistema informático modular 300 sin intervención manual, por lo tanto, no interactivo.
Además de ejecutar una serie de trabajos en el sistema informático modular 300 sin intervención manual, los gestores de nodos pueden proporcionar una computación interactiva, en la que la aplicación que se ejecuta en el sistema informático modular 300 acepta entradas de los seres humanos mientras se ejecuta. Esta entrada puede proporcionarse a través de un ordenador de la estación de trabajo, un ordenador personal (PC), un ordenador portátil o cualquier dispositivo informático inteligente. En este escenario, el sistema informático modular 300 es accesible a través de, por ejemplo, el ordenador portátil, ya que éste tiene la potencia de cálculo del sistema informático modular 300. Esto es muy útil para las aplicaciones en tiempo real, que deben responder dentro de un marco temporal que el usuario percibe como inmediato o actual. También las aplicaciones de Big Data, que hacen accesible una cantidad voluminosa de datos estructurados, semiestructurados y no estructurados para la extracción de información, pueden hacer uso de esta disposición. Esto también es cierto para los servicios informáticos en la nube que tienen el sistema informático modular 300 como recurso subyacente para el suministro de potencia de cálculo y almacenamiento.

Claims (7)

REIVINDICACIONES
1. Un sistema informático modular (100) para realización de cálculos de programas de aplicación, incluyendo el sistema informático modular diferentes módulos (130, 140, 150, 160, 170), incluyendo cada módulo una pluralidad de nodos (208, 210, 212, 310, 320, 330), el sistema informático modular incluye además una capa de abstracción informática modular (120) para permitir que una capa de aplicación acceda a los recursos del sistema, estando la capa de abstracción informática modular distribuida entre los nodos y proporcionando comunicación intra e intermódulos y una función de gestión para los nodos de los diferentes módulos, así como una función de gestión para los módulos, procesos y recursos,
caracterizado porque la capa de abstracción informática modular incluye gestores de nodos (209, 309) implementados en cada nodo,
en el que cada uno de los gestores de nodos mantiene un conjunto de información sobre un estado de cada nodo y cada interconexión entre los nodos, y los gestores de nodos intercambian información por comunicación entre sí a través de una red de administración (224), y
en el que los recursos son asignables a los nodos utilizando el conjunto de información para ajustar dinámicamente un funcionamiento del sistema, un bucle de retroalimentación que registra un impacto de las decisiones de asignación en todo el sistema.
2. El sistema informático modular de acuerdo con la reivindicación 1, caracterizado porque los diferentes módulos están formados por al menos un módulo de grupo (130), un módulo potenciador (140) y un módulo de almacenamiento (150).
3. El sistema informático modular de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado porque la pluralidad de nodos se comunican a través de una red de comunicación (220).
4. El sistema informático modular de acuerdo con la reivindicación 3, caracterizado porque la red de comunicación se implementa utilizando una comunicación de memoria compartida.
5. El sistema informático modular de acuerdo con la reivindicación 1, en el que la comunicación entre gestores de nodos está separada de la comunicación entre módulos.
6. Un procedimiento para la gestión de un sistema informático modular de acuerdo con la reivindicación 1 para la realización de cálculos de programas de aplicación, en el que el procedimiento incluye la etapa de proporcionar comunicación intra e internodal y una función de gestión para los nodos de los diferentes módulos utilizando la capa de abstracción informática modular.
7. El procedimiento de gestión de un sistema informático modular de acuerdo con la reivindicación 6, incluyendo además la etapa de que los gestores de nodos recopilan información sobre el estado de los nodos y asignan recursos a los nodos en función de la información de estado recopilada.
ES17777304T 2016-10-05 2017-10-05 Sistema y procedimiento informático de alto rendimiento Active ES2886491T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP16192430 2016-10-05
PCT/EP2017/075375 WO2018065530A1 (en) 2016-10-05 2017-10-05 High performance computing system and method

Publications (1)

Publication Number Publication Date
ES2886491T3 true ES2886491T3 (es) 2021-12-20

Family

ID=57083209

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17777304T Active ES2886491T3 (es) 2016-10-05 2017-10-05 Sistema y procedimiento informático de alto rendimiento

Country Status (18)

Country Link
US (1) US11494245B2 (es)
EP (2) EP3944084A1 (es)
JP (2) JP7066694B2 (es)
KR (2) KR102326474B1 (es)
CN (1) CN109791509B (es)
CA (1) CA3035459C (es)
CY (1) CY1124626T1 (es)
DK (1) DK3523723T3 (es)
ES (1) ES2886491T3 (es)
HR (1) HRP20211436T1 (es)
HU (1) HUE056042T2 (es)
LT (1) LT3523723T (es)
PL (1) PL3523723T3 (es)
PT (1) PT3523723T (es)
RS (1) RS62402B1 (es)
RU (1) RU2733058C1 (es)
SI (1) SI3523723T1 (es)
WO (1) WO2018065530A1 (es)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HRP20231058T1 (hr) 2018-01-23 2023-12-22 Partec Ag Dinamička dodjela određena vremenom izvođenja aplikacije heterogenih računalnih resursa
US11315013B2 (en) * 2018-04-23 2022-04-26 EMC IP Holding Company LLC Implementing parameter server in networking infrastructure for high-performance computing
WO2020184982A1 (ko) * 2019-03-11 2020-09-17 서울대학교산학협력단 이종클러스터 시스템에서 실행되는 프로그램을 실행시키는 방법 및 컴퓨터 프로그램
KR102338729B1 (ko) * 2019-03-11 2021-12-14 서울대학교산학협력단 이종클러스터 시스템에서 실행되는 프로그램을 실행시키는 방법 및 컴퓨터 프로그램
KR102231357B1 (ko) 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 소프트웨어 정의 서버 배포 스케줄링 방법
KR102231359B1 (ko) 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 프로세스 스케줄링 방법
KR102231358B1 (ko) 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 방법 시스템
KR102413923B1 (ko) 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 전력효율을 위한 로드 밸런싱 방법 및 그 시스템
KR102413924B1 (ko) 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 프로세스 그룹 관리 방법 및 그 시스템
KR102378817B1 (ko) 2020-09-25 2022-03-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스의 네트워크 격리를 위한 동적 클러스터 구성 방법 및 시스템
KR102413922B1 (ko) 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스를 제공하는 단일 가상화 시스템을 위한 소프트웨어 정의 서버 배포 스케줄링 방법 및 그 시스템
KR102627514B1 (ko) 2021-08-13 2024-01-23 주식회사 이노그리드 메타버스를 위한 고성능 클라우드 서비스 시스템 및 방법
KR102573439B1 (ko) 2021-11-10 2023-09-04 주식회사 이노그리드 단일 포트를 이용한 다중 서브넷에 대한 외부 트래픽 모니터링을 수행하는 hpc 시스템 및 방법
KR20230068055A (ko) 2021-11-10 2023-05-17 주식회사 이노그리드 Arm 프로세서 컴퓨팅 노드 기반의 보드형 고성능 클라우드 시스템 및 운영방법
KR20230068477A (ko) 2021-11-10 2023-05-18 주식회사 이노그리드 보드형 컴퓨팅 노드들을 이용한 고성능 클라우드 분리 운영 방법 및 그 시스템

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627694B2 (en) * 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US7058858B2 (en) * 2001-04-23 2006-06-06 Hewlett-Packard Development Company, L.P. Systems and methods for providing automated diagnostic services for a cluster computer system
US7257638B2 (en) * 2001-12-20 2007-08-14 Microsoft Corporation Distributing network applications
WO2004081762A2 (en) * 2003-03-12 2004-09-23 Lammina Systems Corporation Method and apparatus for executing applications on a distributed computer system
US7516221B2 (en) * 2003-08-14 2009-04-07 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
US20050080982A1 (en) * 2003-08-20 2005-04-14 Vasilevsky Alexander D. Virtual host bus adapter and method
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US7685319B2 (en) * 2004-09-28 2010-03-23 Cray Canada Corporation Low latency communication via memory windows
EP1715405A1 (en) * 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US7819345B2 (en) * 2007-09-17 2010-10-26 Shoap Stephen D Method and system for fluid transmission along significant distances
US9163618B2 (en) * 2008-06-24 2015-10-20 Agilent Technologies, Inc. Automated conversion between SFC and HPLC
US8869160B2 (en) * 2009-12-24 2014-10-21 International Business Machines Corporation Goal oriented performance management of workload utilizing accelerators
JP5276632B2 (ja) * 2010-08-25 2013-08-28 日本電信電話株式会社 クラスタシステムおよびソフトウェアデプロイ方法
EP2442228A1 (en) 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
CN102742251A (zh) * 2011-08-11 2012-10-17 华为技术有限公司 一种实现对称多处理系统的节点聚合系统
US9203900B2 (en) * 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
KR20130088512A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
JP5884578B2 (ja) * 2012-03-16 2016-03-15 富士通株式会社 アクセラレータ管理装置、アクセラレータ管理方法および入出力装置
US9742877B2 (en) 2012-12-04 2017-08-22 International Business Machines Corporation Clustering support across geographical boundaries
US9298490B2 (en) 2012-12-20 2016-03-29 Vmware, Inc. Managing a data structure for allocating graphics processing unit resources to virtual machines
CN103207814B (zh) * 2012-12-27 2016-10-19 北京仿真中心 一种去中心化的跨集群资源管理与任务调度系统与调度方法
EP3031268B1 (en) * 2013-08-09 2023-10-04 Telefonaktiebolaget LM Ericsson (publ) Resource allocation for mobile terminal configured for dual connectivity
EP2960791A1 (en) * 2014-06-27 2015-12-30 Fujitsu Limited Method of executing an application on a distributed computer system, a resource manager and a distributed computer system
US9521089B2 (en) * 2014-08-30 2016-12-13 International Business Machines Corporation Multi-layer QoS management in a distributed computing environment
US10409810B2 (en) * 2015-05-08 2019-09-10 International Business Machines Corporation Generating multilingual queries

Also Published As

Publication number Publication date
LT3523723T (lt) 2021-10-11
CN109791509A (zh) 2019-05-21
DK3523723T3 (da) 2021-09-20
KR20190058619A (ko) 2019-05-29
HRP20211436T1 (hr) 2021-12-10
US11494245B2 (en) 2022-11-08
CA3035459C (en) 2023-02-21
HUE056042T2 (hu) 2022-01-28
EP3523723A1 (en) 2019-08-14
PL3523723T3 (pl) 2021-12-20
CN109791509B (zh) 2023-11-28
KR20210136179A (ko) 2021-11-16
RU2733058C1 (ru) 2020-09-29
EP3944084A1 (en) 2022-01-26
JP7066694B2 (ja) 2022-05-13
EP3523723B1 (en) 2021-06-16
CA3035459A1 (en) 2018-04-12
JP7405876B2 (ja) 2023-12-26
JP2022050541A (ja) 2022-03-30
WO2018065530A1 (en) 2018-04-12
CY1124626T1 (el) 2022-07-22
KR102464616B1 (ko) 2022-11-09
KR102326474B1 (ko) 2021-11-15
PT3523723T (pt) 2021-09-20
RS62402B1 (sr) 2021-10-29
JP2019533249A (ja) 2019-11-14
EP3523723B8 (en) 2021-07-28
US20190243694A1 (en) 2019-08-08
SI3523723T1 (sl) 2021-11-30

Similar Documents

Publication Publication Date Title
ES2886491T3 (es) Sistema y procedimiento informático de alto rendimiento
JP6653366B2 (ja) 計算タスクを処理するためのコンピュータクラスタ構成、およびそれを動作させるための方法
US9086925B2 (en) Methods of processing core selection for applications on manycore processors
Shiekh et al. A load-balanced hybrid heuristic for allocation of batch of tasks in cloud computing environment
Goumas et al. ACTiCLOUD: Enabling the Next Generation of Cloud Applications
Zanella et al. A Hierarchical Approach for Resource Management in Heterogeneous Systems