Dělení oblasti¶
Při paralelní analýze rozsáhlé sítě pomocí více procesů je nutné nejprve rozdělit síť jedné oblasti na podoblasti a předem vygenerovat informace potřebné pro přiřazení jednotlivým procesům a pro komunikaci mezi oblastmi. Tento krok předzpracování se nazývá dělení oblasti.
V paralelním výpočtu FrontISTR rozděluje hecmw_part1 síť jedné oblasti na podoblasti a vytváří distribuovaná data sítě. Vygenerovaná distribuovaná data sítě načítá paralelní fistr1 a paralelní řešič je používá spolu s informacemi potřebnými pro komunikaci mezi oblastmi.
Tato stránka popisuje typ dělení, metodu dělení, hloubku překrytí a zpracování kontaktních bodů volené při dělení oblasti. Postup spuštění hecmw_part1, konkrétní syntaxi řídicího souboru a chybové zprávy naleznete v souvisejících tématech.
Přehled¶
Dělení oblasti je proces rozdělení sítě jedné oblasti do více podoblastí. FrontISTR vytváří distribuovaná data sítě kombinací typu dělení, metody dělení, počtu oblastí a hloubky překrytí.
| Hledisko volby | Hlavní možnosti | Úloha |
|---|---|---|
| Typ dělení | Dělení podle uzlů, dělení podle prvků | Určuje, zda se vlastnictví přiřazuje podle uzlu nebo podle prvku. |
| Metoda dělení | RCB, METIS (pMETIS / kMETIS) | Určuje způsob vytváření hranic oblastí. |
| Počet oblastí | Libovolné kladné celé číslo (\(2^n\) pro RCB) | Určuje počet podoblastí v distribuovaných datech sítě. Obvykle odpovídá počtu procesů MPI. |
| Hloubka překrytí | Celé číslo 1 nebo větší | Určuje rozsah redundantně uchovávaný sousedními oblastmi. Zadává se pro dělení podle uzlů. |
| Komunikační tabulky | Informace importu/exportu, informace o sdílení | Definují výměnu dat potřebnou mezi sousedními podoblastmi. Generují se automaticky při dělení oblasti. |
Protože jsou komunikační tabulky součástí distribuovaných dat sítě, uživatelé je obvykle nemusí přímo upravovat. Paralelní fistr1 načte distribuovaná data sítě a řeší lineární rovnice pomocí paralelní přímé metody, například MUMPS, nebo iterativní metody.
Volba konfigurace dělení oblasti¶
Pro běžné strukturální analýzy a analýzy vedení tepla je obecně vhodné nejprve zvážit dělení podle uzlů. To zjednodušuje komunikaci uzlových hodnot potřebných v paralelní metodě konečných prvků a umožňuje také zadat hloubku překrytí. Dělení podle prvků je možností pro aplikace, například sdružené analýzy, v nichž se mají distribuované informace zpracovávat především podle prvků.
Metodu dělení zvolte podle geometrie a počtu oblastí. Pro jednoduché geometrie, kde může být počet oblastí \(2^n\), je RCB jednoduchou a stabilní volbou. Pro složité geometrie nebo tehdy, je-li vyžadován libovolný počet oblastí, je vhodným kandidátem METIS založený na dělení grafu.
| Charakteristika úlohy | Doporučená volba |
|---|---|
| Standardní paralelní strukturální analýza nebo analýza vedení tepla | Dělení podle uzlů |
| Aplikace používající distribuované informace soustředěné na prvky, například sdružená analýza | Dělení podle prvků |
| Jednoduchá geometrie blízká kvádru, s \(2^n\) oblastmi | RCB |
| Složitá geometrie nebo libovolný počet oblastí | METIS |
| Úlohy s kontaktem nebo vazbami MPC používající předpodmínění SAINV | Použijte dělení podle uzlů s hloubkou překrytí 2 nebo větší |
Počet oblastí se obvykle nastavuje shodně s počtem procesů MPI. Postup paralelního spuštění a zadání počtu procesů viz Paralelní analýza. Vztah mezi předpodmíněním SAINV a hloubkou překrytí viz také Řešič a předpodmínění.
Typy dělení¶
Typ dělení určuje, které entitě sítě je přiřazeno jedinečné vlastnictví v podoblasti. Dělení podle uzlů přiřazuje vlastnictví uzlům, zatímco dělení podle prvků prvkům. V obou případech jsou informace potřebné pro výpočet se sousedními podoblastmi zachovány jako data překrytí.
Dělení podle uzlů¶
Při dělení podle uzlů je každý uzel přiřazen právě jedné vlastnící podoblasti. Prvky jsou v sousedních podoblastech uchovány s překrytím. Ve vstupu se toto zadává pomocí !PARTITION, TYPE=NODE-BASED.

Každá podoblast uchovává své vnitřní uzly, prvky obsahující tyto vnitřní uzly a uzly tvořící tyto prvky.

Komunikační tabulky pro dělení podle uzlů obsahují následující informace.
- Importované uzly: Uzly používané v podoblasti, jejichž vlastníkem je jiná podoblast.
- Exportované uzly: Vnitřní uzly, které jsou importovanými uzly jiné podoblasti.
- Sdílené prvky: Prvky sdílené s jinými podoblastmi.



Dělení podle prvků¶
Při dělení podle prvků je každý prvek přiřazen právě jedné vlastnící podoblasti. Uzly jsou v sousedních podoblastech uchovány s překrytím. Ve vstupu se toto zadává pomocí !PARTITION, TYPE=ELEMENT-BASED.

Každá podoblast uchovává své vnitřní prvky, uzly tvořící tyto vnitřní prvky a prvky obsahující tyto uzly.

Komunikační tabulky pro dělení podle prvků obsahují následující informace.
- Importované prvky: Prvky používané v podoblasti, jejichž vlastníkem je jiná podoblast.
- Exportované prvky: Vnitřní prvky, které jsou importovanými prvky jiné podoblasti.
- Sdílené uzly: Uzly sdílené s jinými podoblastmi.



Pro oba typy dělení hecmw_part1 automaticky generuje komunikační tabulky a zapisuje je do distribuovaných dat sítě. Uživatelé proto obvykle nemusí informace importu/exportu vytvářet přímo.
Metody dělení¶
Metoda dělení určuje, jak se vytvářejí hranice podoblastí. FrontISTR podporuje RCB založené na souřadnicích a METIS založený na dělení grafu.
| Metoda dělení | Charakteristika | Hlavní omezení a poznámky |
|---|---|---|
| RCB | Rekurzivně půlí síť podle hodnot souřadnic. U jednoduchých geometrií poskytuje rychlé dělení. | Počet oblastí je omezen na \(2^n\). Je nutné zadat osy dělení. |
| pMETIS | Používá dělení grafu se zohledněním propojení mezi oblastmi. | Dostupné v sestaveních se zapnutým METIS. |
| kMETIS | Používá vícecestné dělení grafu, takže je vhodný pro vytváření hranic oblastí ve složitých geometriích. | Dostupné v sestaveních se zapnutým METIS. |
RCB znamená Recursive Coordinate Bisection a opakovaně půlí síť podél souřadnicových os. Je vhodné, pokud může být počet oblastí \(2^n\), a snadno se používá pro jednoduché geometrie podobné kvádru.
METIS považuje konektivitu sítě za graf a vytváří podoblasti dělením grafu. Je vhodným kandidátem pro složité geometrie nebo pokud počet oblastí nemá být omezen na \(2^n\). Pro použití METIS musí být knihovna METIS zapnuta při sestavení. Informace o závislostech viz Povinné a volitelné závislosti.
Hloubka překrytí¶
Hloubka překrytí je počet vrstev v rozsahu redundantně uchovávaném sousedními podoblastmi. Pro dělení podle uzlů umožňuje !PARTITION pomocí parametru DEPTH zadat celé číslo 1 nebo větší. Výchozí hloubka překrytí je 1.
Pro běžnou paralelní analýzu postačuje DEPTH=1. Při použití předpodmínění z rodiny SAI, například SAINV, pro kontaktní úlohu nebo úlohu s vazbami MPC však může zvýšení hloubky překrytí na 2 nebo více zlepšit kvalitu předpodmínění.
Hloubka překrytí 2 nebo větší je také nutná při použití formulace selektivního vyhlazování hran/uzlů (FORM341=SELECTIVE_ESNS) s lineárním tetraedrickým prvkem 341 v paralelním výpočtu MPI. Vyhlazování založené na hranách a uzlech průměruje veličiny přes prvky sousedící s cílovým prvkem, takže sestavení tuhosti v podoblasti vyžaduje informace z prvků vzdálených dvě vrstvy sousednosti; s výchozím DEPTH=1 je vyhlazování u hranic oblastí nedostatečné. Podrobnosti o formulaci prvku viz Knihovna prvků.
Zvětšení hloubky překrytí zvyšuje počet uzlů a prvků uchovávaných sousedními podoblastmi, a tím i spotřebu paměti a objem komunikace. Nastavte ji s ohledem na rovnováhu mezi lepší konvergencí a vyššími výpočetními náklady. Volbu předpodmínění viz Řešič a předpodmínění.
Zpracování kontaktních bodů¶
Při dělení sítě obsahující kontaktní dvojice umožňuje !PARTITION pomocí parametru CONTACT zadat strategii umístění kontaktních bodů do oblastí. Umístění kontaktních bodů ovlivňuje stabilitu a objem komunikace paralelních analýz zahrnujících vyhledávání kontaktu a kontaktní vazby.
| Hodnota | Úloha |
|---|---|
DEFAULT |
Používá standardní strategii umístění. |
SIMPLE |
Používá umístění blízké běžnému dělení bez přiřazení zvláštních vah kontaktním bodům. |
AGGREGATE |
Dělí tak, aby se uzly související s kontaktními dvojicemi spíše seskupovaly. |
DISTRIBUTE |
Dělí tak, aby se kontaktní uzly na hlavní straně méně soustřeďovaly v určitých podoblastech. |
U sítí bez kontaktu obvykle není nutné parametru CONTACT věnovat pozornost. Pokud je v paralelní analýze s kontaktem problematická konvergence nebo vyvážení zatížení, přehodnoťte strategii umístění kontaktních bodů. Podrobnosti syntaxe vstupu viz !PARTITION.
Nezávisle na tom lze pomocí parametru CONTACT_OWNER zvolit schéma vlastnictví pro paralelní kontakt. Zatímco CONTACT určuje „jak dělit“, CONTACT_OWNER určuje „která strana je po rozdělení odpovědná“.
| Hodnota | Úloha |
|---|---|
MASTER |
Schéma vlastnictví hlavní stranou (výchozí). Hlavní plocha je rozdělena podle oblastí vlastnících prvky a podřízené uzly jsou replikovány do každé oblasti vlastnící hlavní stranu. |
SLAVE |
Schéma vlastnictví podřízenou stranou. Každý podřízený uzel je uchován pouze ve své vlastnící oblasti a celá hlavní plocha je umístěna do této oblasti. |
Při konečném skluzu (!CONTACT s INTERACTION=FSLID) může ve schématu MASTER při přechodu podřízeného uzlu přes hranici dělení oblasti na hlavní ploše dojít k přerušení vyhledávání sousednosti na hranici, ke ztrátě stavu kontaktu a historie tření a k závislosti řešení na počtu oblastí. Schéma SLAVE tomuto problému zabraňuje. Lze je zadat pouze při TYPE=NODE-BASED; v oblastech vlastnících podřízené uzly se zvýší spotřeba paměti.
Výstup obrázku dělení oblasti¶
Zadáním parametru !PARTITION UCD se vytvoří soubor UCD pro kontrolu výsledku dělení. Soubor UCD lze použít s vizualizačními nástroji, například MicroAVS, ke kontrole čísel oblastí a jejich hranic.
Po změně počtu oblastí, metody dělení nebo hloubky překrytí je důležité zkontrolovat nevyváženost mezi rozdělenými oblastmi a nepřirozenou fragmentaci. Výstup UCD je pomocná funkce pro ověření platnosti dělení před spuštěním paralelní analýzy.
Související témata¶
- Paralelní analýza — Postup spuštění
hecmw_part1, vstupní soubory a ověření výstupu distribuovaných dat sítě. - Řešič a předpodmínění — Paralelní řešiče, předpodmínění a vztah mezi SAINV a hloubkou překrytí.
- Seznam chybových zpráv — Typické chybové zprávy z
hecmw_part1afistr1. - Paralelní metoda konečných prvků — Teoretické pozadí rozkladu oblasti a paralelní metody konečných prvků.
- !PARTITION — Syntaxe vstupu řídicích dat nástroje pro dělení oblasti.