Přeskočit obsah

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.

Koncept dělení podle uzlů

Obrázek 10.1 Koncept dělení podle uzlů

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

Uzly a prvky uchovávané jednotlivými podoblastmi při dělení podle uzlů

Obrázek 10.2 Uzly a prvky uchovávané jednotlivými podoblastmi při dělení podle uzlů

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.

Importované uzly při dělení podle uzlů

Obrázek 10.3 Importované uzly při dělení podle uzlů

Exportované uzly při dělení podle uzlů

Obrázek 10.4 Exportované uzly při dělení podle uzlů

Sdílené prvky při dělení podle uzlů

Obrázek 10.5 Sdílené prvky při dělení podle uzlů

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.

Koncept dělení podle prvků

Obrázek 10.6 Koncept dělení podle prvků

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

Uzly a prvky uchovávané jednotlivými podoblastmi při dělení podle prvků

Obrázek 10.7 Uzly a prvky uchovávané jednotlivými podoblastmi při dělení podle prvků

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.

Importované prvky při dělení podle prvků

Obrázek 10.8 Importované prvky při dělení podle prvků

Exportované prvky při dělení podle prvků

Obrázek 10.9 Exportované prvky při dělení podle prvků

Sdílené uzly při dělení podle prvků

Obrázek 10.10 Sdílené uzly při dělení podle prvků

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

AI-assisted translation May contain errors Official docs Status