Particionament de domini¶
Quan una malla de gran escala s'analitza en paral·lel amb diversos processos, primer cal dividir la malla d'un únic domini en subdominis i generar prèviament la informació necessària per assignar cada procés i per a la comunicació entre dominis. Aquest pas de preprocés s'anomena particionament de domini.
En el càlcul paral·lel de FrontISTR, hecmw_part1 divideix una malla d'un únic domini en subdominis i crea dades de malla distribuïdes. Aquestes dades es llegeixen amb fistr1 en paral·lel i el solver paral·lel les utilitza juntament amb la informació necessària per a la comunicació entre dominis.
Aquesta pàgina descriu el tipus de particionament, el mètode de particionament, la profunditat de solapament i el tractament dels punts de contacte seleccionats per al particionament de domini. Per al procediment d'execució de hecmw_part1, la sintaxi concreta del fitxer de control i els missatges d'error, consulteu els temes relacionats.
Visió general¶
El particionament de domini és el procés de dividir una malla d'un únic domini en diversos subdominis. FrontISTR crea dades de malla distribuïdes combinant un tipus de particionament, un mètode de particionament, un nombre de dominis i una profunditat de solapament.
| Eix de selecció | Opcions principals | Funció |
|---|---|---|
| Tipus de particionament | Particionament basat en nodes, particionament basat en elements | Determina si la propietat s'assigna per node o per element. |
| Mètode de particionament | RCB, METIS (pMETIS / kMETIS) | Determina com es creen els límits dels dominis. |
| Nombre de dominis | Qualsevol enter positiu (\(2^n\) per a RCB) | Determina el nombre de subdominis de les dades de malla distribuïdes. Normalment coincideix amb el nombre de processos MPI. |
| Profunditat de solapament | Enter igual o superior a 1 | Determina l'abast retingut redundantment pels dominis veïns. S'especifica per al particionament basat en nodes. |
| Taules de comunicació | Informació d'importació/exportació, informació compartida | Defineix l'intercanvi de dades necessari entre subdominis veïns. Es genera automàticament durant el particionament de domini. |
Com que les taules de comunicació s'inclouen a les dades de malla distribuïdes, normalment els usuaris no les han d'editar directament. fistr1 en paral·lel llegeix les dades de malla distribuïdes i resol les equacions lineals amb un mètode directe paral·lel com MUMPS o amb un mètode iteratiu.
Selecció de la configuració de particionament de domini¶
Per a anàlisis estructurals i de conducció tèrmica ordinàries, generalment convé considerar primer el particionament basat en nodes. Aquest facilita la comunicació dels valors nodals necessaris en l'anàlisi d'elements finits en paral·lel i també permet especificar la profunditat de solapament. El particionament basat en elements és una opció per a aplicacions com l'anàlisi acoblada, on la informació particionada es gestiona principalment per element.
Trieu el mètode de particionament segons la geometria i el nombre de dominis. Per a geometries simples on el nombre de dominis pugui ser \(2^n\), RCB és una opció simple i estable. Per a geometries complexes o quan es requereix un nombre arbitrari de dominis, METIS, basat en particionament de grafs, és un candidat.
| Característiques del problema | Opció recomanada |
|---|---|
| Anàlisi estructural o de conducció tèrmica paral·lela estàndard | Particionament basat en nodes |
| Aplicacions que utilitzen informació distribuïda centrada en elements, com l'anàlisi acoblada | Particionament basat en elements |
| Geometria simple propera a un paral·lelepípede rectangular, amb \(2^n\) dominis | RCB |
| Geometria complexa o nombre arbitrari de dominis | METIS |
| Problemes de contacte o amb restriccions MPC que utilitzen el precondicionador SAINV | Utilitzeu particionament basat en nodes amb una profunditat de solapament de 2 o més |
El nombre de dominis normalment coincideix amb el nombre de processos MPI. Per al procediment d'execució en paral·lel i l'especificació del nombre de processos, consulteu Anàlisi paral·lela. Per a la relació entre el precondicionador SAINV i la profunditat de solapament, consulteu també Solver i precondicionadors.
Tipus de particionament¶
El tipus de particionament determina quina entitat de la malla rep una propietat única dins d'un subdomini. El particionament basat en nodes assigna la propietat als nodes, mentre que el basat en elements l'assigna als elements. En tots dos casos, la informació necessària per al càlcul amb subdominis veïns es conserva com a dades de solapament.
Particionament basat en nodes¶
En el particionament basat en nodes, cada node s'assigna exactament a un subdomini propietari. Els elements es conserven amb solapament en els subdominis veïns. A l'entrada, s'especifica amb !PARTITION, TYPE=NODE-BASED.

Cada subdomini conserva els seus nodes interns, els elements que contenen aquests nodes interns i els nodes que constitueixen aquests elements.

Les taules de comunicació del particionament basat en nodes contenen la informació següent.
- Nodes d'importació: nodes utilitzats en un subdomini que pertanyen a un altre subdomini.
- Nodes d'exportació: nodes interns que són nodes d'importació d'un altre subdomini.
- Elements compartits: elements compartits amb altres subdominis.



Particionament basat en elements¶
En el particionament basat en elements, cada element s'assigna exactament a un subdomini propietari. Els nodes es conserven amb solapament en els subdominis veïns. A l'entrada, s'especifica amb !PARTITION, TYPE=ELEMENT-BASED.

Cada subdomini conserva els seus elements interns, els nodes que constitueixen aquests elements interns i els elements que contenen aquests nodes.

Les taules de comunicació del particionament basat en elements contenen la informació següent.
- Elements d'importació: elements utilitzats en un subdomini que pertanyen a un altre subdomini.
- Elements d'exportació: elements interns que són elements d'importació d'un altre subdomini.
- Nodes compartits: nodes compartits amb altres subdominis.



Per a qualsevol dels dos tipus de particionament, hecmw_part1 genera automàticament les taules de comunicació i les escriu a les dades de malla distribuïdes. Per tant, els usuaris normalment no han de crear directament la informació d'importació/exportació.
Mètodes de particionament¶
El mètode de particionament determina com es creen els límits dels subdominis. FrontISTR admet RCB basat en coordenades i METIS basat en particionament de grafs.
| Mètode de particionament | Característiques | Restriccions i notes principals |
|---|---|---|
| RCB | Biseca recursivament la malla segons els valors de coordenades. Proporciona un particionament ràpid per a geometries simples. | El nombre de dominis està limitat a \(2^n\). Cal especificar els eixos de particionament. |
| pMETIS | Utilitza particionament de grafs tenint en compte la connectivitat entre dominis. | Disponible en compilacions amb METIS habilitat. |
| kMETIS | Utilitza particionament de grafs multi-via, adequat per crear límits de domini en geometries complexes. | Disponible en compilacions amb METIS habilitat. |
RCB significa Recursive Coordinate Bisection i biseca repetidament la malla al llarg dels eixos de coordenades. És adequat quan el nombre de dominis pot ser \(2^n\) i és fàcil d'utilitzar per a geometries simples, semblants a una caixa.
METIS tracta la connectivitat de la malla com un graf i crea subdominis mitjançant particionament de grafs. És un candidat per a geometries complexes o quan no es vol restringir el nombre de dominis a \(2^n\). Per utilitzar METIS, la biblioteca METIS ha d'estar habilitada en compilar. Per al tractament de dependències, consulteu Dependències obligatòries i opcionals.
Profunditat de solapament¶
La profunditat de solapament és el nombre de capes de l'abast que es conserva redundantment als subdominis veïns. En el particionament basat en nodes, !PARTITION permet especificar un enter igual o superior a 1 amb el paràmetre DEPTH. La profunditat de solapament per defecte és 1.
Per a una anàlisi paral·lela ordinària, DEPTH=1 és suficient. Tanmateix, quan s'utilitza un precondicionador de la família SAI, com SAINV, per a un problema de contacte o un problema amb restriccions MPC, augmentar la profunditat de solapament a 2 o més pot millorar la qualitat del precondicionador.
També cal una profunditat de solapament de 2 o més quan s'utilitza la formulació selectiva de suavitzat d'arestes/nodes (FORM341=SELECTIVE_ESNS) amb l'element tetraèdric lineal 341 en càlcul paral·lel MPI. El suavitzat basat en arestes i en nodes fa una mitjana de les magnituds sobre els elements adjacents a l'element objectiu, de manera que l'assemblatge de la rigidesa dins d'un subdomini requereix informació d'elements situats a dues capes d'adjacència; amb el valor per defecte DEPTH=1, el suavitzat prop dels límits de domini és insuficient. Per als detalls de la formulació de l'element, consulteu Biblioteca d'elements.
Augmentar la profunditat de solapament incrementa el nombre de nodes i elements conservats pels subdominis veïns i, per tant, tant l'ús de memòria com el volum de comunicació. Configureu-la equilibrant la millora de convergència amb l'augment del cost computacional. Per a la selecció del precondicionador, consulteu Solver i precondicionadors.
Tractament dels punts de contacte¶
Quan es particiona una malla que conté parelles de contacte, !PARTITION permet utilitzar el paràmetre CONTACT per especificar la política d'ubicació dels punts de contacte entre dominis. La ubicació dels punts de contacte afecta l'estabilitat i el volum de comunicació de les anàlisis paral·leles que inclouen cerca i restriccions de contacte.
| Valor | Funció |
|---|---|
DEFAULT | Utilitza la política d'ubicació estàndard. |
SIMPLE | Utilitza una ubicació propera al particionament ordinari sense assignar pesos especials als punts de contacte. |
AGGREGATE | Particiona de manera que tendeix a agrupar els nodes associats a parelles de contacte. |
DISTRIBUTE | Particiona de manera que els nodes de contacte del costat mestre tinguin menys tendència a concentrar-se en determinats subdominis. |
Per a malles sense contacte, normalment no cal tenir en compte el paràmetre CONTACT. Si hi ha problemes de convergència o d'equilibri de càrrega en una anàlisi paral·lela amb contacte, reviseu la política d'ubicació dels punts de contacte. Per als detalls de la sintaxi d'entrada, consulteu !PARTITION.
Independentment d'això, el paràmetre CONTACT_OWNER permet seleccionar l'esquema de propietat per al contacte en paral·lel. Mentre que CONTACT especifica «com particionar», CONTACT_OWNER especifica «quin costat n'és responsable després del particionament».
| Valor | Funció |
|---|---|
MASTER | Esquema de propietari mestre (per defecte). La superfície mestra es particiona segons els dominis propietaris dels elements, i els nodes esclaus es repliquen a cada domini propietari mestre. |
SLAVE | Esquema de propietari esclau. Cada node esclau només es conserva al seu domini propietari, i tota la superfície mestra es col·loca en aquest domini. |
En lliscament finit (!CONTACT amb INTERACTION=FSLID), quan un node esclau travessa un límit de particionament de domini sobre la superfície mestra, l'esquema MASTER pot interrompre la cerca d'adjacència al límit, cosa que fa perdre l'estat de contacte i l'historial de fricció i pot fer que la solució depengui del nombre de dominis. L'esquema SLAVE evita aquest problema. Només es pot especificar quan TYPE=NODE-BASED; l'ús de memòria augmenta als dominis propietaris de nodes esclaus.
Sortida d'una imatge del particionament de domini¶
Amb !PARTITION, especificar el paràmetre UCD genera un fitxer UCD per comprovar el resultat del particionament. El fitxer UCD es pot utilitzar amb eines de visualització com MicroAVS per inspeccionar els números de domini i els límits de particionament.
Després de canviar el nombre de dominis, el mètode de particionament o la profunditat de solapament, és important comprovar si hi ha desequilibri entre els dominis particionats o una fragmentació poc natural. La sortida UCD és una funció auxiliar per verificar la validesa del particionament abans d'executar l'anàlisi paral·lela.
Temes relacionats¶
- Anàlisi paral·lela — Procediment d'execució de
hecmw_part1, fitxers d'entrada i verificació de la sortida de dades de malla distribuïdes. - Solver i precondicionadors — Solvers paral·lels, precondicionadors i relació entre SAINV i la profunditat de solapament.
- Llista de missatges d'error — Missatges d'error representatius de
hecmw_part1ifistr1. - Mètode dels elements finits en paral·lel — Fonaments teòrics del particionament de domini i dels mètodes dels elements finits en paral·lel.
- !PARTITION — Sintaxi d'entrada de les dades de control de la utilitat de particionament de domini.