Partitionering¶
När ett storskaligt nät analyseras parallellt med flera processer måste nätet med en enda domän först delas upp i deldomäner, och den information som krävs för tilldelning till varje process och för kommunikation mellan domäner måste skapas i förväg. Detta förbehandlingssteg kallas partitionering.
I FrontISTR:s parallellberäkning delar hecmw_part1 upp ett nät med en enda domän i deldomäner och skapar distribuerade nätdata. De genererade distribuerade nätdata läses av parallell fistr1 och används av den parallella lösaren tillsammans med den information som krävs för kommunikation mellan domäner.
Den här sidan beskriver partitioneringstyp, partitioneringsmetod, överlappningsdjup och hantering av kontaktpunkter som väljs vid partitionering. För körproceduren för hecmw_part1, den konkreta syntaxen i styrfilen och felmeddelanden, se relaterade ämnen.
Funktionsöversikt¶
Partitionering är processen att dela upp ett nät med en enda domän i flera deldomäner. FrontISTR skapar distribuerade nätdata genom en kombination av partitioneringstyp, partitioneringsmetod, antal domäner och överlappningsdjup.
| Valparameter | Huvudalternativ | Funktion |
|---|---|---|
| Partitioneringstyp | Nodbaserad partitionering, elementbaserad partitionering | Bestämmer om ägarskap tilldelas per nod eller per element. |
| Partitioneringsmetod | RCB, METIS (pMETIS / kMETIS) | Bestämmer hur domängränser skapas. |
| Antal domäner | Godtyckligt positivt heltal (\(2^n\) för RCB) | Bestämmer antalet deldomäner i de distribuerade nätdata. Normalt anpassas detta till antalet MPI-processer. |
| Överlappningsdjup | Heltal 1 eller större | Bestämmer det område som redundant behålls av angränsande domäner. Anges för nodbaserad partitionering. |
| Kommunikationstabeller | Import-/exportinformation, delad information | Definierar det datautbyte som krävs mellan angränsande deldomäner. Genereras automatiskt vid partitionering. |
Eftersom kommunikationstabellerna ingår i de distribuerade nätdata behöver användaren normalt inte redigera dem direkt. Parallell fistr1 läser de distribuerade nätdata och löser de linjära ekvationerna med en parallell direktmetod som MUMPS eller en iterativ metod.
Val av konfiguration för partitionering¶
För vanliga struktur- och värmeledningsanalyser bör nodbaserad partitionering i allmänhet övervägas först. Nodbaserad partitionering förenklar kommunikationen av nodvärden som krävs i parallell finita element-analys och gör det dessutom möjligt att ange överlappningsdjupet. Elementbaserad partitionering är ett alternativ för tillämpningar, exempelvis kopplad analys, där den distribuerade informationen huvudsakligen ska hanteras per element.
Välj partitioneringsmetod utifrån geometrin och antalet domäner. För enkla geometrier där antalet domäner kan vara \(2^n\) är RCB ett enkelt och stabilt val. För komplexa geometrier eller när ett godtyckligt antal domäner krävs är grafbaserade METIS ett alternativ.
| Problemets egenskaper | Rekommenderat val |
|---|---|
| Standardmässig parallell struktur- eller värmeledningsanalys | Nodbaserad partitionering |
| Tillämpningar med elementcentrerad distribuerad information, exempelvis kopplad analys | Elementbaserad partitionering |
| Enkel geometri nära ett rätblock, med \(2^n\) domäner | RCB |
| Komplex geometri eller godtyckligt antal domäner | METIS |
| Kontaktproblem eller problem med MPC-villkor som använder förkonditioneraren SAINV | Använd nodbaserad partitionering med överlappningsdjup 2 eller större |
Antalet domäner anpassas normalt till antalet MPI-processer. För proceduren för parallell körning och angivelse av processantal, se Parallell analys. För sambandet mellan förkonditioneraren SAINV och överlappningsdjupet, se även Lösare och förkonditionering.
Partitioneringstyper¶
Partitioneringstypen bestämmer vilken nätentitet som får ett unikt ägarskap i en deldomän. Nodbaserad partitionering tilldelar ägarskap till noder, medan elementbaserad partitionering tilldelar ägarskap till element. I båda fallen behålls information som krävs för beräkning med angränsande deldomäner som överlappande data.
Nodbaserad partitionering¶
Vid nodbaserad partitionering tilldelas varje nod exakt en ägande deldomän. Element behålls med överlappning i angränsande deldomäner. I indata anges detta med !PARTITION, TYPE=NODE-BASED.

Varje deldomän behåller sina interna noder, de element som innehåller dessa interna noder samt de noder som utgör dessa element.

Kommunikationstabellerna för nodbaserad partitionering innehåller följande information.
- Importnoder: Noder som används i en deldomän men ägs av en annan deldomän.
- Exportnoder: Interna noder som är importnoder i en annan deldomän.
- Delade element: Element som delas med andra deldomäner.



Elementbaserad partitionering¶
Vid elementbaserad partitionering tilldelas varje element exakt en ägande deldomän. Noder behålls med överlappning i angränsande deldomäner. I indata anges detta med !PARTITION, TYPE=ELEMENT-BASED.

Varje deldomän behåller sina interna element, de noder som utgör dessa interna element samt de element som innehåller dessa noder.

Kommunikationstabellerna för elementbaserad partitionering innehåller följande information.
- Importelement: Element som används i en deldomän men ägs av en annan deldomän.
- Exportelement: Interna element som är importelement i en annan deldomän.
- Delade noder: Noder som delas med andra deldomäner.



För båda partitioneringstyperna genererar hecmw_part1 automatiskt kommunikationstabellerna och skriver dem till de distribuerade nätdata. Användaren behöver därför normalt inte skapa import-/exportinformationen direkt.
Partitioneringsmetoder¶
Partitioneringsmetoden bestämmer hur gränserna mellan deldomäner skapas. FrontISTR stöder koordinatbaserad RCB och grafbaserad METIS.
| Partitioneringsmetod | Egenskaper | Huvudsakliga begränsningar och anmärkningar |
|---|---|---|
| RCB | Delar rekursivt nätet i två delar utifrån koordinatvärden. Ger snabb partitionering för enkla geometrier. | Antalet domäner är begränsat till \(2^n\). Partitioneringsaxlar måste anges. |
| pMETIS | Använder grafpartitionering med hänsyn till kopplingarna mellan domäner. | Tillgängligt i byggen där METIS är aktiverat. |
| kMETIS | Använder flervägs grafpartitionering och lämpar sig därför för att skapa domängränser i komplexa geometrier. | Tillgängligt i byggen där METIS är aktiverat. |
RCB står för Recursive Coordinate Bisection och delar upprepade gånger nätet i två delar längs koordinataxlar. Metoden lämpar sig när antalet domäner kan vara \(2^n\) och är enkel att använda för okomplicerade, lådformade geometrier.
METIS behandlar nätets konnektivitet som en graf och skapar deldomäner genom grafpartitionering. Det är ett alternativ för komplexa geometrier eller när antalet domäner inte bör begränsas till \(2^n\). För att använda METIS måste METIS-biblioteket vara aktiverat vid byggningen. För hantering av beroenden, se Obligatoriska och valfria beroenden.
Överlappningsdjup¶
Överlappningsdjupet är antalet lager i det område som redundant behålls av angränsande deldomäner. För nodbaserad partitionering kan ett heltal på 1 eller större anges i !PARTITION med parametern DEPTH. Standardvärdet för överlappningsdjupet är 1.
För vanlig parallell analys är DEPTH=1 tillräckligt. Om en förkonditionerare av SAI-familjen, exempelvis SAINV, används för ett kontaktproblem eller ett problem med MPC-villkor kan ett ökat överlappningsdjup till 2 eller mer förbättra förkonditionerarens kvalitet.
Ett överlappningsdjup på 2 eller mer krävs också när formuleringen med selektiv kant-/nodutjämning (FORM341=SELECTIVE_ESNS) används med första ordningens tetraederelement 341 i MPI-parallell beräkning. Kant- och nodbaserad utjämning medelvärdesbildar storheter över element som ligger intill målelementet, så assemblering av styvheten inom en deldomän kräver information från element två grannskapslager bort; med standardvärdet DEPTH=1 blir utjämningen nära domängränser otillräcklig. För detaljer om elementformuleringen, se Elementbibliotek.
Ett större överlappningsdjup ökar antalet noder och element som behålls av angränsande deldomäner och därmed både minnesanvändningen och kommunikationsvolymen. Välj värdet genom att väga förbättrad konvergens mot ökad beräkningskostnad. För val av förkonditionerare, se Lösare och förkonditionering.
Hantering av kontaktpunkter¶
Vid partitionering av ett nät som innehåller kontaktpar kan parametern CONTACT i !PARTITION användas för att ange principen för domänplacering av kontaktpunkter. Placeringen påverkar stabilitet och kommunikationsvolym i parallella analyser som innefattar kontaktsökning och kontaktvillkor.
| Värde | Funktion |
|---|---|
DEFAULT | Använder standardprincipen för placering. |
SIMPLE | Använder en placering nära vanlig partitionering utan att ge kontaktpunkter särskilda vikter. |
AGGREGATE | Delar in så att noder som hör till kontaktpar tenderar att grupperas. |
DISTRIBUTE | Delar in så att kontaktnoder på mastersidan i mindre grad koncentreras till vissa deldomäner. |
För nät utan kontakt behöver parametern CONTACT i allmänhet inte beaktas. Om konvergens eller lastbalansering är problematisk i parallell analys med kontakt bör principen för placering av kontaktpunkter ses över. För detaljer om indatasyntaxen, se !PARTITION.
Oberoende av detta kan parametern CONTACT_OWNER användas för att välja ägarskapsmodell för parallell kontakt. Medan CONTACT anger ”hur partitioneringen görs”, anger CONTACT_OWNER ”vilken sida som ansvarar efter partitioneringen”.
| Värde | Funktion |
|---|---|
MASTER | Master-owner-modell (standard). Masterytan delas upp enligt de domäner som äger elementen, och slavnoder replikeras till varje masterägande domän. |
SLAVE | Slave-owner-modell. Varje slavnod behålls endast av sin ägande domän, och hela masterytan placeras i den domänen. |
Vid finit glidning (INTERACTION=FSLID i !CONTACT) kan MASTER-modellen avbryta grannskapssökningen vid gränsen när en slavnod passerar en partitioneringsgräns på masterytan. Då kan kontakttillstånd och friktionshistorik gå förlorade och lösningen bli beroende av antalet domäner. SLAVE-modellen undviker detta problem. Den kan endast anges när TYPE=NODE-BASED; minnesanvändningen ökar i de domäner som äger slavnoder.
Utmatning av en bild av partitioneringen¶
Genom att ange parametern UCD i !PARTITION skrivs en UCD-fil ut för kontroll av partitioneringsresultatet. UCD-filen kan användas med visualiseringsverktyg som MicroAVS för att granska domännummer och partitioneringsgränser.
Efter ändring av antal domäner, partitioneringsmetod eller överlappningsdjup är det viktigt att kontrollera obalans mellan de partitionerade domänerna och onaturlig fragmentering. UCD-utmatning är en hjälpfunktion för att verifiera partitioneringens rimlighet innan den parallella analysen körs.
Relaterade ämnen¶
- Parallell analys — Körprocedur för
hecmw_part1, indatafiler och verifiering av utmatade distribuerade nätdata. - Lösare och förkonditionering — Parallella lösare, förkonditionerare och sambandet mellan SAINV och överlappningsdjup.
- Lista över felmeddelanden — Representativa felmeddelanden från
hecmw_part1ochfistr1. - Parallell finita elementmetod — Teoretisk bakgrund till domänuppdelning och parallella finita elementmetoder.
- !PARTITION — Indatasyntax för styrdata till verktyget för partitionering.