ANSYS Fluent acelerado por GPU

Empieza hoy mismo con esta Guía para aplicaciones preparadas para GPU.

ANSYS Fluent

ANSYS Fluent es una herramienta de software diseñada para ejecutar simulaciones de dinámica de fluidos computacional (CFD). Incluye amplias funciones de modelado físico necesarias para producir modelos de flujos, turbulencias, transferencias de calor y reacciones para aplicaciones industriales. Se usa en una amplia variedad de sectores industriales, entre los que se incluyen la producción aeroespacial, automoción, de dispositivos médicos, de maquinaria y de circuitos integrados.

ANSYS Fluent es compatible con los solucionadores de cálculos en las GPU NVIDIA. Esto contribuye a que los ingenieros reduzcan el tiempo necesario para explorar varias variables de diseño y optimicen el rendimiento del producto para cumplir los plazos fijados. Ahora, los modelos del solucionador multimalla algebraicos y los de transferencia de radiación térmica, incluida la radiación de ordenadas discretas (DO) y los cálculos de factor visual S2S, están acelerados por GPU. Las aplicaciones industriales clásicas abarcan la aerodinámica externa, el flujo de fluidos internos y las simulaciones de refrigeración.

ANSYS Fluent se ejecuta hasta 3,7 veces más rápido en las GPU

ANSYS Fluent se ejecuta hasta 3,7 veces más rápido en las GPU, lo que reduce significativamente el tiempo de resolución de semanas a días.

Además de acelerar las simulaciones, las GPU contribuyen a reducir el coste total de propiedad de una solución de una sola CPU al ofrecer mejor rendimiento y resultados por vatio.

Instalación

Cómo instalar ANSYS Fluent

DESCARGA E INSTALACIÓN

ANSYS Fluent se puede descargar desde el sitio web del portal de clientes de ANSYS y a continuación encontrarás un breve proceso de instalación. La versión 18.1 es la más actualizada a fecha de escritura de este documento. Visita el sitio web de ANSYS para comprobar si hay una versión más actualizada.

Paso 1. Descarga el archivo FLUIDS_181_LINX64.tar y extrae el contenido en un directorio único. Esto generará un subdirectorio único con el nombre “FLUIDS_181_LINX64” que contiene el software de instalación.

Paso 2. Ejecuta INSTALL en modo silencioso, como se describe en esta guía de instalación.

INSTALL -silent -install_dir -fluent -silent inicia la instalación silenciosa e -install_dir especifica el directorio donde se va a instalar Fluent. -fluent
-silent inicia la instalación silenciosa e -install_dir especifica el directorio donde se va a instalar Fluent.

Licencias ANSYS

Las GPU son compatibles con todos los productos de licencia ANSYS HPC, incluidos ANSYS HPC, ANSYS HPC Pack y ANSYS HPC Workgroup. Todas las GPU se tratan como un núcleo de CPU en cuanto a la licencia; de esta forma, los usuarios pueden obtener una mayor productividad mediante simulaciones de GPU.

Ejecución de trabajos

Ejecutar simulaciones

Para ejecutar la versión paralela de las simulaciones de ANSYS Fluent en las GPU, usa la sintaxis siguiente en el intérprete de comandos de un sistema Linux:

fluent -g -t -gpgpu= -i >& -t -gpgpu= -i >&

Indicadores y funciones

  • El comando fluent ejecuta ANSYS Fluent de forma interactiva.
  • -g indica que el programa se tiene que ejecutar sin la interfaz gráfica de usuario.
  • especifica la versión 3d o 3ddp de ANSYS Fluent. especifica la cantidad total de procesadores de CPU en todas las máquinas o nodos.
  • especifica la cantidad de GPU por máquina o nodo disponibles en modo paralelo. Ten en cuenta que la cantidad de procesos por máquina debe ser igual en todas las máquinas y el valor de ngpgpus debe elegirse de forma que la cantidad de procesos por máquina sea un múltiplo entero de ngpgpus. De esta forma, para nprocs procesos de solucionador que se ejecutan en M máquinas con ngpgpus GPU por máquina, debemos considerar que: (nprocs) mod (M) = 0
  • (nprocs/M) mod (ngpgpus) = 0 especifica el nombre del archivo de entrada o diario.
    • especifica el nombre del archivo de salida. Se trata de un archivo que crea el trabajo en segundo plano y que contendrá el resultado que ANSYS Fluent mostraría normalmente en pantalla (por ejemplo, las opciones de menú y los informes residuales).
    • El archivo del diario contiene una secuencia de comandos de ANSYS Fluent idénticos a los que escribirías de forma interactiva. Para agregar comentarios en el archivo, escribe un signo de punto y coma al principio de la línea.
  • especifica el nombre del archivo de entrada o diario.
  • especifica el nombre del archivo de salida. Se trata de un archivo que crea el trabajo en segundo plano y que contendrá el resultado que ANSYS Fluent mostraría normalmente en pantalla (por ejemplo, las opciones de menú y los informes residuales).

El archivo del diario contiene una secuencia de comandos de ANSYS Fluent idénticos a los que escribirías de forma interactiva. Para agregar comentarios en el archivo, escribe un signo de punto y coma al principio de la línea.

A continuación, se muestra un ejemplo de archivo del diario:
----------------------------------------------------------------------------------------------------------
; Lectura archivo del caso
/file/read-case sample.cas.gz
; Cambiar el esquema de la solución de segregado (SIMPLEC)(21) a acoplado(24)
/solve/set/p-v-coupling 24
; Cambiar el tamaño de AmgX GPU Aggregator de 2 (valor predeterminado) a 4
/solve/set/amg-options/amg-gpgpu-options/pressure-coupled
yes
0.1
"FGMRES"
20
4
0
3
"ILU"
; Inicializar la solución
/solve/initialize/initialize-flow
; Ejecutar repeticiones
/solve/iterate 100
; Estadísticas de temporizador de rendimiento de repeticiones
/parallel/timer/usage
; Salir de Fluent
exit yes
----------------------------------------------------------------------------------------------------------

Idoneidad del modelo para la aceleración por GPU

ACELERACIÓN DEL SOLUCIONADOR AMG

NVIDIA se ha asociado con ANSYS para desarrollar una biblioteca de AMG acelerado por GPU de alto rendimiento, sólida y escalable. Llamamos a esta biblioteca AmgX (que equivale a AMG acelerado). Fluent usa AmgX como el solucionador lineal predeterminado y aprovecha las GPU con CUDA cuando las detecta. AmgX puede usar incluso MPI para conectar clústeres de servidores y resolver problemas de gran envergadura que necesiten decenas de GPU. Cuando está activada, se puede usar la aceleración por GPU para realizar cálculos de AMG en sistemas lineales con hasta cinco ecuaciones acopladas, y los requisitos de cálculo aumentan a medida que se incrementa la cantidad de células en el dominio. Los problemas que contienen menos de unos pocos millones de células no obtienen velocidad de las GPU por el sobrecoste de comunicación provocado por la transferencia de matrices desde o hacia las CPU. Sin embargo, la aceleración es considerable para las mallas que contienen decenas y cientos de millones de células porque la sobrecarga es relativamente inferior en comparación con el tiempo de cálculo en el solucionador AMG.

Los solucionadores acoplados son los que más se benefician de las GPU. En problemas únicamente de flujo, los solucionadores acoplados invierten entre el 60 % y el 70 % del tiempo en resolver el sistema lineal con AMG, lo que hace que las GPU sean una buena elección. Dado que los solucionadores segregados solo dedican entre el 30 % y el 40 % del tiempo en el uso de AMG, no se saca tanto partido a las GPU por la sobrecarga de transferencia de memoria. De forma predeterminada, la aceleración por GPU se aplica automáticamente en los sistemas acoplados y no a los escalares, ya que estos no tienen un coste computacional tan alto. Sin embargo, se puede activar o desactivar la aceleración GPGPU del solucionador AMG de los sistemas acoplados y escalares con el siguiente comando de texto, y mostrar una lista de todos los tipos de ecuaciones compatibles, lo que permite que actives o desactives la aceleración GPGPU, escojas entre solucionadores AMG o FGMRES y especifiques diversas opciones de solucionador.

/solve/set/amg-options/amg-gpgpu-options/

 La aceleración por GPU no se usará en los casos siguientes:

  • El modelo de equilibrio de población está activo.
  • El modelo multifase euleriano está activo.
  • El sistema tiene más de cinco ecuaciones acopladas.

Aceleración de los cálculos de radiación de ordenadas discretas (DO)

El solucionador acelerado de radiación de ordenadas discretas (DO) es computacionalmente más rápido que el solucionador de DO estándar, sobre todo al usarse en paralelo, aunque puede necesitar una mayor cantidad de repeticiones.

El solucionador tiene su base en OpenACC y se puede ejecutar en arquitecturas de CPU o GPU. Por otro lado, actualmente no es compatible con todos los modelos o condiciones límite, pero es extremadamente rápido si corresponde. Los casos que necesitan una resolución alta a la hora de discretizar las intensidades de radiación son los que más se benefician de este solucionador acelerado. Las simulaciones de faros son una de las áreas de aplicación donde el solucionador acelerado incrementa varias veces la velocidad de cálculo.

Después de seleccionar el modelo de DO en el cuadro de diálogo Modelo de radiación, puedes activar el solucionador de DO acelerado con el siguiente comando de texto:

/define/models/radiation/do-acceleration yes

Si las GPU NVIDIA están activadas en la sesión de Fluent, este solucionador acelerará los cálculos de DO mediante las GPU. Si no se usan GPU, el solucionador puede seguir usando los núcleos de CPU para acelerar los cálculos de DO. Ten en cuenta que el solucionador de DO acelerado usa el esquema de convección de primer orden y un factor de relajación de 1,0.

El solucionador de DO acelerado es incompatible con algunos modelos y ajustes; cuando es necesario, Fluent revierte automáticamente al solucionador de DO estándar cuando el cálculo está empezado e imprime un mensaje sobre el conflicto.

Si piensas usar varias GPU con el solucionador de DO acelerado, es recomendable que ejecutes el servidor multiprocesos NVIDIA (MPS) con este comando antes de iniciar ANSYS Fluent:

nvidia-cuda-mps-control -d

Se ha demostrado que mejora la resistencia y el rendimiento de los cálculos de GPU con varios procesos de Fluent.

Acelerar cálculos de factor visual de S2S

Es posible acelerar los cálculos de factor visual mediante la utilidad raytracing_acc, que usa la biblioteca NVIDIA Optix para el trazado de rayos. La GPU disponible en la máquina que ejecuta el proceso de host se usa en dicho escenario, salvo en una simulación mixta de Windows y Linux en que se usa la GPU en el nodo 0. Se necesita una GPU NVIDIA con CUDA 6.0 para usar raytracing_acc. Actualmente, esta utilidad solo está disponible en máquinas lnamd64 (Red Hat Enterprise Linux 5/6 y SUSE Linux Enterprise Server 11) y win64 (Windows 7) para los problemas 3D. Para usar esta utilidad, se debe poder acceder a la biblioteca CUDA 6.0 a través de la variable de entorno adecuada (LD_LIBRARY_PATH en lnamd64 o %path% en win64).

Al usar la utilidad raytracing_acc fuera de la sesión de ANSYS Fluent, la línea de comandos es

utility raytracing_acc [archivo_s2s_salida(opcional)]

Al usar la utilidad raytracing_acc desde la sesión de ANSYS Fluent, usa el siguiente comando de texto:

/define/models/radiation/s2s-parameters/compute-clusters-and-vf-accelerated

Pruebas de referencia

En esta sección, se incluyen pruebas de referencia del rendimiento esperado en distintos modelos de sistemas de CPU y GPU.

Rendimiento de ANSYS Fluent (cubierta de agua de refrigeración) en sistemas de CPU y GPU
Rendimiento de ANSYS Fluent (tren de aterrizaje de Boeing) en sistemas de CPU y GPU
Rendimiento de ANSYS Fluent (coche de carreras de Fórmula 1) en sistemas de CPU y GPU
Rendimiento de ANSYS Fluent (coche de carreras monoplaza) en sistemas de CPU y GPU
Rendimiento de ANSYS Fluent (carrocería de camión) en sistemas de CPU y GPU
Rendimiento de ANSYS Fluent (radiación D0 de faro) en sistemas de CPU y GPU

Configuraciones recomendadas del sistema

Configuración de hardware

Estación de trabajo

Parámetro
Especificaciones

Arquitectura de CPU

x86

Memoria del sistema

128-256 GB

Disco

Mínimo 500 GB

CPU

2 sockets de CPU (más de 8 núcleos, más de 2 GHz)

Modelo de GPU

NVIDIA Quadro® GP100 para un cálculo de precisión doble

GPU

Se recomiendan 1 o 2 GPU por socket de CPU

Servidores

Parámetro
Especificaciones

Arquitectura de CPU

x86

Memoria del sistema

256 GB

CPUs/Nodos

2 (más de 8 núcleos, más de 2 GHz)

Número total de nodos

Entre 1 y más de 100

Modelo de GPU

NVIDIA Tesla® P100

GPU/nodo

Se recomiendan 2 GPU por socket de CPU

Interconexión

InfiniBand

Crea tu solución ideal de GPU hoy mismo