Cómo mejorar la eficiencia de las aplicaciones informáticas de alto rendimiento de caecfd
CAE (Ingeniería asistida por computadora) se refiere al uso de computadoras para simular la estructura, rendimiento y estado operativo de productos industriales y de ingeniería, y CFD (Dinámica de fluidos computacional) se refiere al uso de computadoras para resolver numéricamente Problemas de dinámica de fluidos.
En la actualidad, la simulación CAE/CFD basada en ordenadores de alto rendimiento se utiliza ampliamente en la industria aeroespacial, de automóviles y naval, la industria petroquímica, la ingeniería civil y otros campos. Además, con el continuo desarrollo de la tecnología informática, el papel de CAE/CFD en los campos mencionados se ha vuelto cada vez más importante. Especialmente en el campo aeroespacial, CAE/CFD se ha convertido en uno de los tres métodos de investigación junto con el análisis teórico y los experimentos en túnel de viento. La NASA predice que el diseño de los vehículos aeroespaciales experimentará cambios revolucionarios en un futuro próximo, es decir, vuelos virtuales en túneles de viento numéricos basados en datos de simulación CAE/CFD.
El objetivo principal de aplicar la informática de alto rendimiento a CAE/CFD es obtener resultados más cercanos a la realidad al menor coste. En la actualidad, existen muchos software en la industria CAE/CFD y los requisitos de aplicación de los clientes para estos software también son muy diferentes, lo que dificulta la creación de una solución unificada.
Entonces, ¿cómo debería la informática de alto rendimiento aplicar la optimización en CAE/CFD? Primero, analicemos las características de CAE/CFD.
El software CAE/CFD utiliza básicamente el método de elementos finitos o el método de volúmenes finitos para resolver las ecuaciones de control. El cálculo implica una gran cantidad de iteraciones de pasos de tiempo delanteros y traseros y el procesamiento del área de unión. Es computacionalmente intensivo y requiere rendimiento de la CPU. Naturalmente, cuanto más alto, mejor.
En términos generales, el software CAE/CFD que utiliza formatos de hora explícitos tiene requisitos de capacidad de memoria promedio, mientras que el software CAE/CFD que utiliza formatos de hora implícitos tiene requisitos relativamente altos de capacidad de memoria. Los requisitos de ancho de banda de la memoria están directamente relacionados con. la cantidad de procesos en un solo nodo. Cuanto mayor sea la cantidad de procesos, mayores serán los requisitos de ancho de banda de memoria.
A nivel de E/S, cuando la mayoría del software CAE/CFD realiza una operación de lectura, el proceso maestro lee datos y luego los distribuye a los procesos esclavos, durante una operación de escritura, el proceso maestro recopila datos; del esclavo procesa los datos de manera unificada, y luego el proceso principal escribe los datos. En otras palabras, sólo el proceso principal es directamente responsable de las operaciones de E/S. Por lo tanto, CAE/CFD ejerce una presión moderada sobre el almacenamiento de E/S.
Como se mencionó anteriormente, dado que el software CAE/CFD necesita iterar antes y después de los pasos de tiempo y procesar el área de unión durante el cálculo, también es relativamente exigente en la comunicación de red, por lo que se debe utilizar la red InfiniBand.
A continuación, echemos un vistazo a cómo optimizar las operaciones CAE/CFD para la informática de alto rendimiento.
Dado que CAE/CFD es principalmente software comercial, generalmente solo puede realizar optimización a nivel de hardware y optimización a nivel de operación. Teniendo en cuenta el análisis de características anterior, a nivel de optimización de hardware, podemos mejorar el rendimiento de la CPU y la memoria respectivamente configurando la CPU de alta frecuencia y la memoria de cuatro canales. También podemos mejorar la topología de la conexión de red, el algoritmo de enrutamiento y la optimización RDMA. para mejorar las capacidades de comunicación de las redes InfiniBand.
En el nivel de optimización a nivel de ejecución, generalmente se utilizan estrategias de optimización MPI. Por ejemplo, optimización del enlace del proceso MPI, optimización del mecanismo de paso de mensajes MPI y optimización de la memoria compartida de comunicación MPI, etc. Con el desarrollo del modelo de programación PGAS (Partitioned Global Address Space) y coprocesadores acelerados como GPU y MIC, los algoritmos tradicionales anteriores mejorarán enormemente.
Tomando el ejemplo de cálculo de Fluent como ejemplo, Inspur utilizó su sistema de análisis y monitoreo de características de aplicaciones de alto rendimiento "Teye" desarrollado independientemente (inglés: Teye) para monitorear y analizar las características de la aplicación de Fluent. En la plataforma de CPU Intel XeonE5-2680v3 y 144 procesos, se calculó un ejemplo de cálculo fluido de 10 millones de escala de cuadrícula.
En la siguiente figura, se puede ver a través de Inspur Sky Eye que la utilización de la CPU de Fluent es cercana al 100% y que los núcleos físicos involucrados en los cálculos se ejecutan básicamente a plena carga, lo que indica que Fluent requiere un uso intensivo de computación. .
1
Inspur Sky Eye analiza la utilización de CPU de los ejemplos de cálculo de Fluent.
En términos de ancho de banda de memoria, Sky Eye detecta que los requisitos de ancho de banda de memoria de Fluent ocurren principalmente en the grid El ancho de banda total de la memoria después de construir, fusionar y particionar es de aproximadamente 45 GB/s. Entre ellos, el ancho de banda de la memoria de lectura es de aproximadamente 40 GB/s y el ancho de banda de la memoria de escritura es de aproximadamente 5 GB/s. Fluent lee y escribe datos del proceso principal, y el proceso esclavo no participa directamente en las operaciones de E/S. Además, la cantidad de datos leídos y escritos está directamente relacionada con el tamaño del ejemplo de cálculo de Fluent.
2
Inspur Sky Eye analiza el ancho de banda de la memoria del ejemplo de cálculo de Fluent.
Además, también podemos ver que, excepto en la etapa inicial, la lectura La tasa de operación del nodo maestro alcanza los 40 MB. Además, durante todo el proceso de cálculo de Fluent, la presión de operación de E/S es relativamente pequeña. Como software CFD típico, Fluent requiere el uso de la red InfiniBand para la comunicación de datos.
3
Inspur Sky Eye monitorea las operaciones de lectura y escritura en disco de los ejemplos de cálculo de Fluent.
En las primeras etapas del cálculo, Fluent realiza una gran cantidad de datos. operaciones de envío y recepción a través de la red. En el proceso de cálculo posterior, la transmisión y recepción de datos muestran características de flujo continuo y la velocidad se mantiene en 60 MB/s ~ 100 MB/s. Se puede ver que Fluent es un software que hace uso intensivo de la red.
4
Inspur Sky Eye monitorea el envío y la recepción de datos de la cuadrícula InfiniBand del ejemplo de cálculo de Fluent.
La siguiente imagen muestra el radar del ejemplo de cálculo de Fluent. analizado y monitoreado por Inspur Sky Eye La figura muestra visualmente las diversas características de la aplicación de Fluent.
5
Gráfico radial de las características de la aplicación de software Fluent analizadas por Inspur Sky Eye
Inspur tiene una amplia experiencia en optimización CAE/CFD en informática de alto rendimiento. puede analizar las características del software CAE/CFD de forma más completa y precisa, y proporcionar una solución de optimización integral que integra software y hardware. En la actualidad, las soluciones de aplicaciones informáticas de alto rendimiento CAE/CFD de Inspur se han utilizado ampliamente en las industrias aeroespacial, automotriz y naval, de construcción y otras.