Saltar a contenido

Partición de dominios

Cuando se analiza en paralelo una malla de gran escala utilizando múltiples procesos, primero debe dividirse la malla de un único dominio en subdominios y generarse de antemano la información necesaria para asignar cada proceso y para la comunicación entre dominios. Este paso de preprocesamiento se denomina partición de dominios.

En el cálculo paralelo de FrontISTR, hecmw_part1 divide una malla de un único dominio en subdominios y crea datos de malla distribuida. Los datos de malla distribuida generados son leídos por fistr1 en paralelo y utilizados por el solver paralelo junto con la información necesaria para la comunicación entre dominios.

Esta página describe el tipo de partición, el método de partición, la profundidad de solapamiento y el tratamiento de los puntos de contacto seleccionados para la partición de dominios. Para el procedimiento de ejecución de hecmw_part1, la sintaxis concreta del archivo de control y los mensajes de error, consulte los temas relacionados.

Resumen

La partición de dominios es el proceso de dividir una malla de un único dominio en varios subdominios. FrontISTR crea datos de malla distribuida combinando un tipo de partición, un método de partición, un número de dominios y una profundidad de solapamiento.

Eje de selección Opciones principales Función
Tipo de partición Partición basada en nodos, partición basada en elementos Determina si la propiedad se asigna por nodo o por elemento.
Método de partición RCB, METIS (pMETIS / kMETIS) Determina cómo se crean los límites de los dominios.
Número de dominios Cualquier entero positivo (\(2^n\) para RCB) Determina el número de subdominios de los datos de malla distribuida. Normalmente coincide con el número de procesos MPI.
Profundidad de solapamiento Entero igual o superior a 1 Determina el rango que los dominios vecinos conservan de forma redundante. Se especifica para la partición basada en nodos.
Tablas de comunicación Información de importación/exportación, información compartida Define el intercambio de datos necesario entre subdominios vecinos. Se genera automáticamente durante la partición de dominios.

Como las tablas de comunicación se incluyen en los datos de malla distribuida, normalmente los usuarios no necesitan editarlas directamente. fistr1 en paralelo lee los datos de malla distribuida y resuelve las ecuaciones lineales utilizando un método directo paralelo como MUMPS o un método iterativo.

Elección de una configuración de partición de dominios

Para análisis estructurales y de conducción térmica ordinarios, generalmente debe considerarse primero la partición basada en nodos. La partición basada en nodos facilita la comunicación de los valores nodales necesarios en el análisis paralelo por elementos finitos y también permite especificar la profundidad de solapamiento. La partición basada en elementos es una opción para aplicaciones como el análisis acoplado, en las que la información particionada debe gestionarse principalmente por elemento.

Elija el método de partición en función de la geometría y del número de dominios. Para geometrías sencillas en las que el número de dominios pueda ser \(2^n\), RCB es una opción sencilla y estable. Para geometrías complejas o cuando se requiera un número arbitrario de dominios, METIS, basado en partición de grafos, es una opción candidata.

Características del problema Elección recomendada
Análisis estructural o de conducción térmica paralelo estándar Partición basada en nodos
Aplicaciones que utilizan información distribuida centrada en elementos, como análisis acoplados Partición basada en elementos
Geometría sencilla próxima a un paralelepípedo, con \(2^n\) dominios RCB
Geometría compleja o número arbitrario de dominios METIS
Problemas de contacto o con restricciones MPC que utilizan el precondicionador SAINV Utilizar partición basada en nodos con una profundidad de solapamiento de 2 o superior

El número de dominios normalmente coincide con el número de procesos MPI. Para el procedimiento de ejecución en paralelo y la especificación del número de procesos, consulte Análisis paralelo. Para la relación entre el precondicionador SAINV y la profundidad de solapamiento, consulte también Solvers y precondicionadores.

Tipos de partición

El tipo de partición determina qué entidad de la malla recibe una propiedad exclusiva por parte de un subdominio. La partición basada en nodos asigna la propiedad a los nodos, mientras que la partición basada en elementos la asigna a los elementos. En ambos casos, la información necesaria para el cálculo con subdominios vecinos se conserva como datos solapados.

Partición basada en nodos

En la partición basada en nodos, cada nodo se asigna exactamente a un subdominio propietario. Los elementos se conservan con solapamiento en los subdominios vecinos. En la entrada, se especifica mediante !PARTITION, TYPE=NODE-BASED.

Concepto de partición basada en nodos

Figura 10.1 Concepto de partición basada en nodos

Cada subdominio conserva sus nodos internos, los elementos que contienen dichos nodos internos y los nodos que constituyen esos elementos.

Nodos y elementos conservados por cada subdominio en la partición basada en nodos

Figura 10.2 Nodos y elementos conservados por cada subdominio en la partición basada en nodos

Las tablas de comunicación para la partición basada en nodos contienen la siguiente información.

  • Nodos de importación: nodos utilizados en un subdominio que pertenecen a otro subdominio.
  • Nodos de exportación: nodos internos que son nodos de importación de otro subdominio.
  • Elementos compartidos: elementos compartidos con otros subdominios.

Nodos de importación en la partición basada en nodos

Figura 10.3 Nodos de importación en la partición basada en nodos

Nodos de exportación en la partición basada en nodos

Figura 10.4 Nodos de exportación en la partición basada en nodos

Elementos compartidos en la partición basada en nodos

Figura 10.5 Elementos compartidos en la partición basada en nodos

Partición basada en elementos

En la partición basada en elementos, cada elemento se asigna exactamente a un subdominio propietario. Los nodos se conservan con solapamiento en los subdominios vecinos. En la entrada, se especifica mediante !PARTITION, TYPE=ELEMENT-BASED.

Concepto de partición basada en elementos

Figura 10.6 Concepto de partición basada en elementos

Cada subdominio conserva sus elementos internos, los nodos que constituyen dichos elementos internos y los elementos que contienen esos nodos.

Nodos y elementos conservados por cada subdominio en la partición basada en elementos

Figura 10.7 Nodos y elementos conservados por cada subdominio en la partición basada en elementos

Las tablas de comunicación para la partición basada en elementos contienen la siguiente información.

  • Elementos de importación: elementos utilizados en un subdominio que pertenecen a otro subdominio.
  • Elementos de exportación: elementos internos que son elementos de importación de otro subdominio.
  • Nodos compartidos: nodos compartidos con otros subdominios.

Elementos de importación en la partición basada en elementos

Figura 10.8 Elementos de importación en la partición basada en elementos

Elementos de exportación en la partición basada en elementos

Figura 10.9 Elementos de exportación en la partición basada en elementos

Nodos compartidos en la partición basada en elementos

Figura 10.10 Nodos compartidos en la partición basada en elementos

Para cualquiera de los dos tipos de partición, hecmw_part1 genera automáticamente las tablas de comunicación y las escribe en los datos de malla distribuida. Por tanto, normalmente los usuarios no necesitan crear directamente la información de importación/exportación.

Métodos de partición

El método de partición determina cómo se crean los límites de los subdominios. FrontISTR admite RCB basado en coordenadas y METIS basado en partición de grafos.

Método de partición Características Restricciones y observaciones principales
RCB Biseca recursivamente la malla a partir de los valores de coordenadas. Proporciona una partición rápida para geometrías sencillas. El número de dominios está limitado a \(2^n\). Deben especificarse los ejes de partición.
pMETIS Utiliza partición de grafos teniendo en cuenta la conectividad entre dominios. Disponible en compilaciones con METIS habilitado.
kMETIS Utiliza partición de grafos multivía, por lo que resulta adecuado para crear límites de dominio en geometrías complejas. Disponible en compilaciones con METIS habilitado.

RCB significa Recursive Coordinate Bisection y biseca repetidamente la malla a lo largo de los ejes de coordenadas. Es adecuado cuando el número de dominios puede ser \(2^n\) y resulta fácil de utilizar para geometrías sencillas similares a una caja.

METIS trata la conectividad de la malla como un grafo y crea subdominios mediante partición de grafos. Es una opción para geometrías complejas o cuando el número de dominios no debe estar restringido a \(2^n\). Para utilizar METIS, la biblioteca METIS debe habilitarse durante la compilación. Para la gestión de dependencias, consulte Dependencias obligatorias y opcionales.

Profundidad de solapamiento

La profundidad de solapamiento es el número de capas del rango que los subdominios vecinos conservan de forma redundante. Para la partición basada en nodos, !PARTITION permite especificar un entero igual o superior a 1 mediante el parámetro DEPTH. La profundidad de solapamiento predeterminada es 1.

Para un análisis paralelo ordinario, DEPTH=1 es suficiente. Sin embargo, cuando se utiliza un precondicionador de la familia SAI, como SAINV, en un problema de contacto o un problema con restricciones MPC, aumentar la profundidad de solapamiento a 2 o más puede mejorar la calidad del precondicionador.

También se requiere una profundidad de solapamiento de 2 o superior cuando se utiliza la formulación de suavizado selectivo de aristas/nodos (FORM341=SELECTIVE_ESNS) con el elemento tetraédrico de primer orden 341 en cálculo paralelo MPI. El suavizado basado en aristas y nodos promedia magnitudes sobre los elementos adyacentes al elemento objetivo, por lo que el ensamblaje de la rigidez dentro de un subdominio requiere información de elementos situados a dos capas de adyacencia; con el valor predeterminado DEPTH=1, el suavizado cerca de los límites de dominio es insuficiente. Para obtener detalles sobre la formulación del elemento, consulte Biblioteca de elementos.

Aumentar la profundidad de solapamiento incrementa el número de nodos y elementos conservados por los subdominios vecinos y, por tanto, aumenta tanto el uso de memoria como el volumen de comunicación. Ajústela equilibrando la mejora de convergencia frente al incremento del coste computacional. Para la selección del precondicionador, consulte Solvers y precondicionadores.

Tratamiento de los puntos de contacto

Al particionar una malla que contiene pares de contacto, !PARTITION permite utilizar el parámetro CONTACT para especificar la política de colocación por dominio de los puntos de contacto. La colocación de los puntos de contacto afecta a la estabilidad y al volumen de comunicación de los análisis paralelos que incluyen búsqueda de contacto y restricciones de contacto.

Valor Función
DEFAULT Utiliza la política de colocación estándar.
SIMPLE Utiliza una colocación próxima a la partición ordinaria sin asignar pesos especiales a los puntos de contacto.
AGGREGATE Particiona de forma que tiende a agrupar los nodos asociados a pares de contacto.
DISTRIBUTE Particiona de modo que sea menos probable que los nodos de contacto del lado maestro se concentren en determinados subdominios.

En mallas sin contacto, el parámetro CONTACT normalmente no requiere atención. Si existen problemas de convergencia o de equilibrio de carga en un análisis paralelo con contacto, revise la política de colocación de los puntos de contacto. Para conocer la sintaxis de entrada, consulte !PARTITION.

De forma independiente, el parámetro CONTACT_OWNER permite seleccionar el esquema de propiedad del contacto paralelo. Mientras CONTACT especifica «cómo particionar», CONTACT_OWNER especifica «qué lado se hace responsable después de la partición».

Valor Función
MASTER Esquema de propiedad del lado maestro (predeterminado). La superficie maestra se particiona según los dominios propietarios de los elementos y los nodos esclavos se replican en cada dominio propietario de una parte de la superficie maestra.
SLAVE Esquema de propiedad del lado esclavo. Cada nodo esclavo se conserva únicamente en su dominio propietario y la superficie maestra completa se coloca en dicho dominio.

En deslizamiento finito (!CONTACT con INTERACTION=FSLID), cuando un nodo esclavo cruza un límite de partición de dominio en la superficie maestra, el esquema MASTER puede interrumpir la búsqueda de adyacencia en el límite, lo que hace que se pierdan el estado de contacto y el historial de fricción y que la solución dependa del número de dominios. El esquema SLAVE evita este problema. Solo puede especificarse cuando TYPE=NODE-BASED; aumenta el uso de memoria en los dominios propietarios de nodos esclavos.

Salida de una imagen de la partición de dominios

Con !PARTITION, al especificar el parámetro UCD se genera un archivo UCD para comprobar el resultado de la partición. El archivo UCD puede utilizarse con herramientas de visualización como MicroAVS para inspeccionar los números de dominio y los límites de partición.

Después de cambiar el número de dominios, el método de partición o la profundidad de solapamiento, es importante comprobar si existe desequilibrio entre los dominios particionados o una fragmentación poco natural. La salida UCD es una función auxiliar para verificar la validez de la partición antes de ejecutar el análisis paralelo.

Temas relacionados

  • Análisis paralelo — Procedimiento de ejecución de hecmw_part1, archivos de entrada y verificación de la salida de datos de malla distribuida.
  • Solvers y precondicionadores — Solvers paralelos, precondicionadores y relación entre SAINV y la profundidad de solapamiento.
  • Lista de mensajes de error — Mensajes de error representativos de hecmw_part1 y fistr1.
  • Método de elementos finitos paralelo — Fundamentos teóricos de la descomposición de dominios y de los métodos de elementos finitos paralelos.
  • !PARTITION — Sintaxis de entrada para los datos de control de la utilidad de partición de dominios.