Sistemas paralelos heterogéneos para acelerar simulaciones basadas en métodos numéricos para mallas discretas.

Un sistema para ejecutar un código científico dado usando un resolvedor apropiado de elementos finitos o volúmenes finitos para un conjunto de datos representados como una malla que comprende una pluralidad de nodos de computación iguales

(1) y un nodo front-end (2), todos ellos conectados entre sí por medios de comunicación de nodos (3, 4, 5), y un paquete de software de computación paralela para la distribución de la ejecución de dicho código científico en sub-mallas de dicha malla entre dichos nodos de computación (1), en el que:

- cada nodo de computación (1) comprende al menos un primer medio procesador (11) y un segundo medio procesador (12), que están interconectados por un bus (23, 24), siendo dicho primer medio procesador (11) un medio procesador basado en CPU y siendo dicho segundo medio procesador (12) un medio procesador basado en FPGA;

- dicho paquete de software de computación paralela está configurado para la ejecución simultánea de, al menos, un primer proceso resolvedor y un segundo proceso resolvedor de dicho código científico en cada nodo de computación (1), donde cada proceso resolvedor resuelve por lo menos una sub-malla de dicha malla y para gestionar el intercambio de datos de contorno entre los primeros y segundos procesos revolvedores que calculan sub-mallas vecinas después de cada paso del resolvedor;

- dicho primer proceso resolvedor se ejecuta completamente en un primer medio procesador (11) y dicho segundo proceso resolvedor se ejecuta en un segundo medio procesador (12) con la colaboración de un primer medio procesador (11) para la carga y descarga de sub-mallas y el intercambio de datos de contorno; y

- dichos primer y segundo procesos revolvedores tienen la misma interfaz de comunicación para el intercambio de datos de contorno con los primeros y segundos procesos revolvedores de sub-mallas vecinas.

Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E11382394.

Solicitante: AIRBUS OPERATIONS, S.L.

Nacionalidad solicitante: España.

Inventor/es: ARACIL RICO,JAVIER, GONZÁLEZ MARTÍNEZ,IVÁN, GÓMEZ ARRIBAS,FRANCISCO JAVIER, SUTTER,Gustavo, LÓPEZ BUENO,SERGIO, SÁNCHEZ ROMÁN,DIEGO, GÓMEZ GARCÍA,ISMAEL.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Equipo o métodos de tratamiento de datos o de cálculo... > G06F17/50 (Diseño asistido por computador (para el diseño de circuitos de ensayo para memorias estáticas G11C 29/54))

PDF original: ES-2538412_T3.pdf

 

google+ twitter facebook

Fragmento de la descripción:

Sistemas paralelos heterogéneos para acelerar simulaciones basadas en métodos numéricos para mallas discretas. Campo de la invención

La presente invención se refiere a sistemas para la ejecución de simulaciones físicas computacionalmente intensas usando resolvedores de elementos finitos o volúmenes finitos que requieren un número muy grande de vértices y mallas estructuradas o no estructuradas y, más en particular, a sistemas para la solución de las ecuaciones de un código científico dado tal como uno de los códigos utilizados en Dinámica de Fluidos Computacional ("Computer Fluid Dynamics" o CFD) para un gran conjunto de datos representados como una malla.

Antecedentes de la invención

Una situación habitual en aplicaciones prácticas industriales relacionadas con el desarrollo de productos es la necesidad de llevar a cabo análisis rápidos en un espacio de parámetros de estado. En sectores industriales maduros y muy competitivos como el sector aeroespacial, esta necesidad está motivada por el objetivo de generar productos con un buen funcionamiento técnico en ciclos de diseño tan cortos como sea posible. Esto es, el tiempo es un factor clave en la competitividad industrial porque el acortamiento del tiempo de comercialización puede aportar una ventaja económica de primera magnitud durante el ciclo de vida del producto.

En el caso específico de la industria aeronáutica, la predicción de las fuerzas aerodinámicas, y mas generalmente las distribuciones de valores en la superficie de la piel, experimentadas por una aeronave es un elemento importante de cara a un diseño óptimo de sus componentes estructurales de manera que el peso de la estructura sea el mínimo posible, siendo capaz al mismo de tiempo de resistir la fuerzas aerodinámicas esperadas.

Gracias al incremento del uso de las capacidades de la CFD la determinación de las fuerzas aerodinámicas en una aeronave se hace habitualmente hoy en día resolviendo numéricamente las ecuaciones promediadas de Reynolds de Navier-Stokes (ecuaciones RANS en adelante) que modelizan el movimiento del flujo alrededor de la aeronave, usando modelos de elementos finitos discretos o de volúmenes finitos. Con la demanda de exactitud requerida en la industria aeronáutica, cada uno de esos cálculos requiere importantes recursos computacionales.

Un primer enfoque conocido para mejorar la ejecución de dichas ecuaciones para un determinado modelo es proporcionar técnicas analíticas que simplifican los cálculos necesarios para llegar a una solución. Un ejemplo en este sentido se puede encontrar en US 2009/157364 a nombre del solicitante.

Un segundo enfoque conocido es el uso de técnicas Informáticas ya sea para acelerar el proceso de cálculo o para la optimización de los recursos computacionales necesarios para resolver un problema dado.

Para acelerar el proceso de cálculo es habitual emplear máquinas paralelas. La malla se particiona en varias submallas que se resuelven por separado. Cuando termina cada Iteración temporal, es necesario enviar los valores de variables de los vértices frontera a los vecinos. Por lo tanto, según se particiona la malla en más sub-mallas, se van incrementando las comunicaciones, hasta que llega un momento donde el Incremento de velocidad al añadir más máquinas es marginal, porque la mayor parte del tiempo se emplea en comunicaciones.

Para mejorar los tiempos de ejecución de estas simulaciones se ha propuesto el uso de dispositivos aceleradores añadidos a un ordenador convencional. Como base para construir estos dispositivos se han venido usando dos tecnologías: FPGA ("Fleld-Programmable Gate Array") y GP-GPU ("General Purpose Graphics Processing Unit"). El formato de estos dispositivos aceleradores puede ser o bien el de tarjetas de expansión, como por ejemplo PCI ("Peripheral Component Interconnect") o PCI Express ("Perlpheral Component Interconnect Express") o bien el de módulos enchufables en el zócalo del procesador (aceleradores "¡n-socket") como el XD2000Í de XtremeData).

En el acelerador se pueden ejecutar las secciones computacionalmente más costosas del algoritmo, o bien todo el algoritmo. En particular, US 2007/0219766 describe el uso de una tarjeta PCI con una FPGA para la aceleración de las secciones computacionalmente más costosas del algoritmo.

En la Referencia [1] se describe una alternativa basada en un acelerador "¡n-socket" que también usa la aproximación de ejecutar en la FPGA las secciones computacionalmente más costosas del algoritmo.

US 2005/0288800 describe una arquitectura con varias tarjetas PCI interconectadas a través de una red dedicada en la que puede ejecutar una sección o todo el algoritmo.

Finalmente, la Referencia [2] describe una solución que ejecuta un resolvedor Navier-Stokes completamente en GP- GPUs.

Sin embargo, ninguna de las soluciones propuestas es capaz de alcanzar las prestaciones necesarias en un entorno industrial. Por un lado, las soluciones que ejecutan sólo una parte del algoritmo en el acelerador no suelen ofrecer buenos resultados debido a la fuerte sobrecarga de las comunicaciones. Por otro lado, el número de tarjetas de expansión o zócalos de procesador disponibles en un sistema está limitado y, por lo tanto, también lo está la aceleración global que se puede alcanzar en soluciones como las descritas en US 2005/0288800 y en la Referencia [2]-

Adicionalmente, las propuestas orientadas a la ejecución completa del algoritmo tienen importantes limitaciones en el tamaño de las mallas que pueden ser procesadas y/o en la velocidad de proceso. En la Referencia [2] se muestran resultados para mallas de centenas de miles de vértices. En US 2005/0288800 se describe una realización preferente con una canalización entre dos memorias ZBT lo que limita el número de vértices de la malla que se pueden procesar por ciclo, ya que estos cálculos implican la lectura de decenas o incluso centenas de variables, incluyendo las del propio vértice y las de todos sus vecinos.

Es por tanto deseable la existencia de un sistema que permita la rápida ejecución de los códigos de dinámica de fluidos usados en la industria aeronáutica que manejan mallas de decenas o centenas de millones de vértices y códigos tales como el Reynolds-Averaged Navier-Stokes (RANS).

La presente invención está dirigida a la atención de esa demanda.

Sumario de la invención

Es un objeto de la presente invención proporcionar un sistema para acelerar la ejecución de un código científico dado, particularmente un código CFD, usando un resolvedor apropiado de elementos finitos o volúmenes finitos para un gran conjunto de datos representados como una malla.

Este y otros objetos se consiguen con un sistema que comprende una pluralidad de nodos de computación iguales y un nodo front-end, todos ellos conectados entre sí por medios de comunicación de nodos, y un paquete de software de computación paralela para la distribución de la ejecución de dicho código científico en sub-mallas de dicha malla entre dichos nodos de computación, en el que:

- cada nodo de computación comprende al menos un primer medio procesador y un segundo medio procesador, que están ¡nterconectados por un bus, siendo dicho primer medio procesador un medio procesador basado en Unidad Central de Proceso ("Computer Processing Unit" o CPU) y siendo dicho segundo medio procesador un medio procesador basado en FPGA;

- dicho paquete de software de computación paralela está configurado para la ejecución simultánea de al menos un primer proceso resolvedor y un segundo proceso resolvedor de dicho código científico en cada nodo de computación, donde cada proceso resolvedor resuelve por lo menos una sub-malla de dicha malla y para gestionar el Intercambio... [Seguir leyendo]

 


Reivindicaciones:

I.- Un sistema para ejecutar un código científico dado usando un resolvedor apropiado de elementos finitos o volúmenes finitos para un conjunto de datos representados como una malla que comprende una pluralidad de nodos de computación ¡guales (1) y un nodo front-end (2), todos ellos conectados entre sí por medios de comunicación de nodos (3, 4, 5), y un paquete de software de computación paralela para la distribución de la ejecución de dicho código científico en sub-mallas de dicha malla entre dichos nodos de computación (1), en el que:

- cada nodo de computación (1) comprende al menos un primer medio procesador (11) y un segundo medio procesador (12), que están interconectados por un bus (23, 24), siendo dicho primer medio procesador (11) un medio procesador basado en CPU y siendo dicho segundo medio procesador (12) un medio procesador basado en FPGA;

- dicho paquete de software de computación paralela está configurado para la ejecución simultánea de, al menos, un primer proceso resolvedor y un segundo proceso resolvedor de dicho código científico en cada nodo de computación (1), donde cada proceso resolvedor resuelve por lo menos una sub-malla de dicha malla y para gestionar el intercambio de datos de contorno entre los primeros y segundos procesos revolvedores que calculan sub-mallas vecinas después de cada paso del resolvedor;

- dicho primer proceso resolvedor se ejecuta completamente en un primer medio procesador (11) y dicho segundo proceso resolvedor se ejecuta en un segundo medio procesador (12) con la colaboración de un primer medio procesador (11) para la carga y descarga de sub-mallas y el intercambio de datos de contorno; y

- dichos primer y segundo procesos revolvedores tienen la misma interfaz de comunicación para el intercambio de datos de contorno con los primeros y segundos procesos revolvedores de sub-mallas vecinas.

2 - Un sistema según la reivindicación 1, que también comprende medios de software para la partición de la malla en sub-mallas de acuerdo con la capacidad de cómputo del primer y segundo medio procesador (11, 12) de cada nodo de computación (1) y para equilibrar la carga de cálculo a fin de que las diferencias entre los tiempos de ejecución de dichos primeros y segundos procesos resolvedores se reduzcan al mínimo

3.- Un sistema según cualquiera de las reivindicaciones 1-2, en el que un segundo proceso resolvedor implementa todos los cálculos relacionados con el resolvedor en un segundo medio procesador (12) y los únicos datos intercambiados por dicho segundo medio procesador (12) después de cada paso del resolvedor con otro primer o segundo medio procesador (11, 12) son datos de contorno.

4.- Un sistema según cualquiera de las reivindicaciones 1-3, en el que al menos en un nodo de computación

(11) un segundo proceso resolvedor está configurado para ejecutar el código científico para una sub-malla en pasos secuenciales para trozos de la sub-malla.

5.- Un sistema según cualquiera de las reivindicaciones 1-4, en el que dichos medios de comunicación de nodos comprenden una red de alta velocidad y baja latencia (3) y un interruptor de alto rendimiento (4) para la conmutación de dicha red (3), y una red convencional (5).

6 - Un sistema según cualquiera de las reivindicaciones 1-5, en el que un primer medio procesador (11) comprende una CPU multi-core (19) y una memoria local (20) y un segundo medio procesador (12) comprende un procesador basado en FPGA (21) y una memoria local (22).

7 - Un sistema según la reivindicación 6, en el que un nodo de computación (1) comprende un primer medio procesador (11) y un segundo medio procesador (12) interconectados por un bus de alta velocidad de propósito general (24).

8.- Un sistema según la reivindicación 6, en el que un nodo de computación (1) comprende al menos dos primeros medios procesadores (11) y dos segundos medios procesadores (12) interconectados por un bus específico

de CPU (23).

9 - Un sistema según cualquiera de las reivindicaciones 7-8, que también comprende los siguientes componentes adicionales: un chipset bridge (13), una tarjeta (14) para dicha red de alta velocidad y baja latencia (3) y una tarjeta Ethernet (17) para dicha red convencional (5).

10.- Un sistema según cualquiera de las reivindicaciones 7-9, en el que dicho segundo medio procesador

(12) es capaz de almacenar una sub-malla completa en la memoria interna del procesador basado en FPGA (21) o en su memoria local (22).

II.- Un sistema según cualquiera de las reivindicaciones 1-10, en el que la malla tiene más de 108 vértices y las sub-mallas tienen un número de vértices comprendido entre 105 y 108.

12.- Un sistema según cualquiera de las reivindicaciones 1-11, en el que dicho código científico es un código CFD y dicho conjunto de datos es la malla de un objeto que se mueve a través de un medio fluido.

13.- Un sistema según la reivindicación 12, en el que dicho código científico comprende al menos dos conjuntos de ecuaciones para al menos dos zonas de la malla y dichos primer y segundo procesos resolvedores

usan dichos dos conjuntos de ecuaciones para las sub-mallas de dichas dos zonas.

14.- Un sistema según la reivindicación 13, en el que dichos dos conjuntos de ecuaciones son las ecuaciones de Euler y las ecuaciones RANS.

15.- Un sistema según cualquiera de las reivindicaciones 12-14, en el que dicho objeto es una aeronave o un componente de una aeronave.