Preskočiť na obsah

Delenie oblasti

Keď sa rozsiahla sieť analyzuje paralelne pomocou viacerých procesov, sieť jednej oblasti sa musí najprv rozdeliť na podoblasti a vopred sa musia vytvoriť informácie potrebné na priradenie jednotlivých procesov a komunikáciu medzi oblasťami. Tento krok predspracovania sa nazýva delenie oblasti.

Pri paralelnom výpočte FrontISTR hecmw_part1 rozdelí sieť jednej oblasti na podoblasti a vytvorí distribuované dáta siete. Vytvorené distribuované dáta siete načíta paralelný fistr1 a paralelný riešič ich používa spolu s informáciami potrebnými na komunikáciu medzi oblasťami.

Táto stránka opisuje typ rozdelenia, metódu delenia, hĺbku prekrytia a spracovanie kontaktných bodov zvolené pri delení oblasti. Postup spustenia hecmw_part1, konkrétnu syntax riadiaceho súboru a chybové hlásenia nájdete v súvisiacich témach.

Prehľad

Delenie oblasti je proces rozdelenia siete jednej oblasti na viacero podoblastí. FrontISTR vytvára distribuované dáta siete kombináciou typu rozdelenia, metódy delenia, počtu oblastí a hĺbky prekrytia.

Kritérium voľby Hlavné možnosti Úloha
Typ rozdelenia Delenie podľa uzlov, delenie podľa prvkov Určuje, či sa vlastníctvo priraďuje podľa uzla alebo prvku.
Metóda delenia RCB, METIS (pMETIS / kMETIS) Určuje spôsob vytvorenia hraníc oblastí.
Počet oblastí Ľubovoľné kladné celé číslo (\(2^n\) pre RCB) Určuje počet podoblastí v distribuovaných dátach siete. Zvyčajne sa zhoduje s počtom procesov MPI.
Hĺbka prekrytia Celé číslo 1 alebo väčšie Určuje rozsah redundantne uchovávaný susednými oblasťami. Zadáva sa pri delení podľa uzlov.
Komunikačné tabuľky Informácie o importe/exporte, zdieľané informácie Definujú výmenu dát potrebnú medzi susednými podoblasťami. Vytvárajú sa automaticky počas delenia oblasti.

Keďže komunikačné tabuľky sú súčasťou distribuovaných dát siete, používatelia ich zvyčajne nemusia priamo upravovať. Paralelný fistr1 načíta distribuované dáta siete a rieši lineárne rovnice pomocou paralelnej priamej metódy, napríklad MUMPS, alebo iteračnej metódy.

Voľba konfigurácie delenia oblasti

Pri bežných štrukturálnych analýzach a analýzach vedenia tepla treba spravidla najprv zvážiť delenie podľa uzlov. Delenie podľa uzlov zjednodušuje komunikáciu uzlových hodnôt potrebných v paralelnej analýze metódou konečných prvkov a umožňuje tiež zadať hĺbku prekrytia. Delenie podľa prvkov je možnosťou pre aplikácie, ako je viazaná analýza, v ktorých sa majú rozdelené informácie spracúvať predovšetkým podľa prvkov.

Metódu delenia zvoľte podľa geometrie a počtu oblastí. Pre jednoduché geometrie, kde môže byť počet oblastí \(2^n\), je RCB jednoduchou a stabilnou voľbou. Pre zložité geometrie alebo keď je potrebný ľubovoľný počet oblastí, je kandidátom METIS založený na delení grafu.

Charakteristika úlohy Odporúčaná voľba
Štandardná paralelná štrukturálna analýza alebo analýza vedenia tepla Delenie podľa uzlov
Aplikácie používajúce distribuované informácie orientované na prvky, napríklad viazaná analýza Delenie podľa prvkov
Jednoduchá geometria blízka kvádru s \(2^n\) oblasťami RCB
Zložitá geometria alebo ľubovoľný počet oblastí METIS
Kontaktné úlohy alebo úlohy s väzbami MPC používajúce predpodmieňovač SAINV Použite delenie podľa uzlov s hĺbkou prekrytia 2 alebo väčšou

Počet oblastí sa zvyčajne nastavuje podľa počtu procesov MPI. Postup paralelného spustenia a zadanie počtu procesov nájdete v Paralelnej analýze. Vzťah medzi predpodmieňovačom SAINV a hĺbkou prekrytia nájdete aj v Riešiči a predpodmieňovačoch.

Typy rozdelenia

Typ rozdelenia určuje, ktorej entite siete sa priradí jedinečné vlastníctvo podoblasťou. Delenie podľa uzlov priraďuje vlastníctvo uzlom, zatiaľ čo delenie podľa prvkov priraďuje vlastníctvo prvkom. V oboch prípadoch sa informácie potrebné na výpočet so susednými podoblasťami uchovávajú ako dáta prekrytia.

Delenie podľa uzlov

Pri delení podľa uzlov je každý uzol priradený presne jednej vlastníckej podoblasti. Prvky sa s prekrytím uchovávajú v susedných podoblastiach. Vo vstupe sa to zadáva pomocou !PARTITION, TYPE=NODE-BASED.

Koncept delenia podľa uzlov

Obrázok 10.1 Koncept delenia podľa uzlov

Každá podoblasť uchováva svoje vnútorné uzly, prvky obsahujúce tieto vnútorné uzly a uzly tvoriace tieto prvky.

Uzly a prvky uchovávané jednotlivými podoblasťami pri delení podľa uzlov

Obrázok 10.2 Uzly a prvky uchovávané jednotlivými podoblasťami pri delení podľa uzlov

Komunikačné tabuľky pri delení podľa uzlov obsahujú nasledujúce informácie.

  • Importované uzly: Uzly používané v podoblasti, ktoré vlastní iná podoblasť.
  • Exportované uzly: Vnútorné uzly, ktoré sú importovanými uzlami inej podoblasti.
  • Zdieľané prvky: Prvky zdieľané s inými podoblasťami.

Importované uzly pri delení podľa uzlov

Obrázok 10.3 Importované uzly pri delení podľa uzlov

Exportované uzly pri delení podľa uzlov

Obrázok 10.4 Exportované uzly pri delení podľa uzlov

Zdieľané prvky pri delení podľa uzlov

Obrázok 10.5 Zdieľané prvky pri delení podľa uzlov

Delenie podľa prvkov

Pri delení podľa prvkov je každý prvok priradený presne jednej vlastníckej podoblasti. Uzly sa s prekrytím uchovávajú v susedných podoblastiach. Vo vstupe sa to zadáva pomocou !PARTITION, TYPE=ELEMENT-BASED.

Koncept delenia podľa prvkov

Obrázok 10.6 Koncept delenia podľa prvkov

Každá podoblasť uchováva svoje vnútorné prvky, uzly tvoriace tieto vnútorné prvky a prvky obsahujúce tieto uzly.

Uzly a prvky uchovávané jednotlivými podoblasťami pri delení podľa prvkov

Obrázok 10.7 Uzly a prvky uchovávané jednotlivými podoblasťami pri delení podľa prvkov

Komunikačné tabuľky pri delení podľa prvkov obsahujú nasledujúce informácie.

  • Importované prvky: Prvky používané v podoblasti, ktoré vlastní iná podoblasť.
  • Exportované prvky: Vnútorné prvky, ktoré sú importovanými prvkami inej podoblasti.
  • Zdieľané uzly: Uzly zdieľané s inými podoblasťami.

Importované prvky pri delení podľa prvkov

Obrázok 10.8 Importované prvky pri delení podľa prvkov

Exportované prvky pri delení podľa prvkov

Obrázok 10.9 Exportované prvky pri delení podľa prvkov

Zdieľané uzly pri delení podľa prvkov

Obrázok 10.10 Zdieľané uzly pri delení podľa prvkov

Pri oboch typoch rozdelenia hecmw_part1 automaticky vytvára komunikačné tabuľky a zapisuje ich do distribuovaných dát siete. Používatelia preto zvyčajne nemusia priamo vytvárať informácie o importe/exporte.

Metódy delenia

Metóda delenia určuje spôsob vytvorenia hraníc podoblastí. FrontISTR podporuje RCB založené na súradniciach a METIS založený na delení grafu.

Metóda delenia Charakteristika Hlavné obmedzenia a poznámky
RCB Rekurzívne delí sieť na polovice podľa hodnôt súradníc. Poskytuje rýchle delenie pre jednoduché geometrie. Počet oblastí je obmedzený na \(2^n\). Musia sa zadať osi delenia.
pMETIS Používa delenie grafu so zohľadnením konektivity medzi oblasťami. Dostupné v zostaveniach s povoleným METIS.
kMETIS Používa viacnásobné delenie grafu, vďaka čomu je vhodný na vytváranie hraníc oblastí v zložitých geometriách. Dostupné v zostaveniach s povoleným METIS.

RCB znamená Recursive Coordinate Bisection a opakovane delí sieť na polovice pozdĺž súradnicových osí. Je vhodné, keď môže byť počet oblastí \(2^n\), a jednoducho sa používa pri jednoduchých geometriách podobných kvádru.

METIS spracúva konektivitu siete ako graf a vytvára podoblasti delením grafu. Je kandidátom pre zložité geometrie alebo keď počet oblastí nemá byť obmedzený na \(2^n\). Na použitie METIS musí byť pri zostavovaní povolená knižnica METIS. Spracovanie závislostí nájdete v Povinných a voliteľných závislostiach.

Hĺbka prekrytia

Hĺbka prekrytia je počet vrstiev v rozsahu redundantne uchovávanom susednými podoblasťami. Pri delení podľa uzlov umožňuje !PARTITION zadať parametrom DEPTH celé číslo 1 alebo väčšie. Predvolená hĺbka prekrytia je 1.

Pri bežnej paralelnej analýze postačuje DEPTH=1. Ak sa však pri kontaktnej úlohe alebo úlohe s väzbami MPC používa predpodmieňovač z rodiny SAI, napríklad SAINV, zvýšenie hĺbky prekrytia na 2 alebo viac môže zlepšiť kvalitu predpodmieňovača.

Hĺbka prekrytia 2 alebo väčšia sa vyžaduje aj vtedy, keď sa pri lineárnom tetraedrickom prvku 341 v paralelnom výpočte MPI používa formulácia selektívneho hranového/uzlového vyhladzovania (FORM341=SELECTIVE_ESNS). Hranové a uzlové vyhladzovanie priemeruje veličiny cez prvky susediace s cieľovým prvkom, takže zostavenie tuhosti v podoblasti vyžaduje informácie z prvkov vzdialených dve vrstvy susednosti; pri predvolenom DEPTH=1 je vyhladzovanie pri hraniciach oblastí nedostatočné. Podrobnosti o formulácii prvku nájdete v Knižnici prvkov.

Zvýšenie hĺbky prekrytia zvyšuje počet uzlov a prvkov uchovávaných susednými podoblasťami, a tým zvyšuje spotrebu pamäte aj objem komunikácie. Nastavte ju s ohľadom na kompromis medzi lepšou konvergenciou a vyššími výpočtovými nákladmi. Výber predpodmieňovača nájdete v Riešiči a predpodmieňovačoch.

Spracovanie kontaktných bodov

Pri delení siete obsahujúcej kontaktné páry umožňuje !PARTITION pomocou parametra CONTACT zadať politiku umiestnenia kontaktných bodov do oblastí. Umiestnenie kontaktných bodov ovplyvňuje stabilitu a objem komunikácie paralelných analýz zahŕňajúcich vyhľadávanie kontaktu a kontaktné väzby.

Hodnota Úloha
DEFAULT Používa štandardnú politiku umiestnenia.
SIMPLE Používa umiestnenie blízke bežnému deleniu bez priradenia osobitných váh kontaktným bodom.
AGGREGATE Delí tak, aby sa uzly súvisiace s kontaktnými pármi zoskupovali.
DISTRIBUTE Delí tak, aby sa kontaktné uzly na strane master menej sústreďovali v určitých podoblastiach.

Pri sieťach bez kontaktu parameter CONTACT spravidla nevyžaduje pozornosť. Ak je pri paralelnej analýze s kontaktom problematická konvergencia alebo vyváženie zaťaženia, prehodnoťte politiku umiestnenia kontaktných bodov. Podrobnosti o vstupnej syntaxi nájdete v !PARTITION.

Nezávisle od toho možno parametrom CONTACT_OWNER zvoliť schému vlastníctva pre paralelný kontakt. Kým CONTACT určuje „ako deliť“, CONTACT_OWNER určuje „ktorá strana je po rozdelení zodpovedná“.

Hodnota Úloha
MASTER Schéma vlastníka master (predvolená). Plocha master sa rozdelí podľa oblastí vlastniacich prvky a uzly slave sa replikujú do každej oblasti vlastniacej master.
SLAVE Schéma vlastníka slave. Každý uzol slave sa uchováva iba vo svojej vlastníckej oblasti a celá plocha master sa umiestni do tejto oblasti.

Pri konečnom kĺzaní (INTERACTION=FSLID v !CONTACT), keď uzol slave prekročí hranicu delenia oblasti na ploche master, môže schéma MASTER na hranici prerušiť vyhľadávanie susednosti, čo spôsobí stratu kontaktného stavu a histórie trenia a závislosť riešenia od počtu oblastí. Schéma SLAVE sa tomuto problému vyhýba. Možno ju zadať iba pri TYPE=NODE-BASED; spotreba pamäte sa zvýši v oblastiach vlastniacich uzly slave.

Výstup obrazu delenia oblasti

Pri !PARTITION zadanie parametra UCD vytvorí súbor UCD na kontrolu výsledku delenia. Súbor UCD možno použiť s vizualizačnými nástrojmi, napríklad MicroAVS, na kontrolu čísel oblastí a hraníc rozdelenia.

Po zmene počtu oblastí, metódy delenia alebo hĺbky prekrytia je dôležité skontrolovať nevyváženosť medzi rozdelenými oblasťami alebo neprirodzenú fragmentáciu. Výstup UCD je pomocná funkcia na overenie platnosti rozdelenia pred spustením paralelnej analýzy.

Súvisiace témy

AI-assisted translation May contain errors Official docs Status