Kihagyás

Hálófelosztás

Nagy léptékű háló több folyamattal végzett párhuzamos elemzése előtt az egytartományú hálót először altartományokra kell felosztani, és előre létre kell hozni az egyes folyamatokhoz rendeléshez, valamint a tartományok közötti kommunikációhoz szükséges információt. Ezt az előfeldolgozási lépést hálófelosztásnak nevezzük.

A FrontISTR párhuzamos számításában a hecmw_part1 az egytartományú hálót altartományokra osztja, és elosztott hálóadatokat hoz létre. A létrehozott elosztott hálóadatokat a párhuzamos fistr1 olvassa be, és a párhuzamos megoldó a tartományok közötti kommunikációhoz szükséges információval együtt használja.

Ez az oldal a hálófelosztásnál választott felosztástípust, felosztási módszert, átfedési mélységet és az érintkezési pontok kezelését ismerteti. A hecmw_part1 futtatási eljárását, a vezérlőfájl konkrét szintaxisát és a hibaüzeneteket lásd a kapcsolódó témákban.

A funkciók áttekintése

A hálófelosztás az egytartományú háló több altartományra osztásának folyamata. A FrontISTR a felosztástípus, a felosztási módszer, a tartományok száma és az átfedési mélység kombinációjával hoz létre elosztott hálóadatokat.

Kiválasztási szempont Fő lehetőségek Szerep
Felosztástípus Csomópontalapú, elemalapú felosztás Meghatározza, hogy a tulajdonjog csomópont vagy elem szerint legyen hozzárendelve.
Felosztási módszer RCB, METIS (pMETIS / kMETIS) Meghatározza a tartományhatárok létrehozásának módját.
Tartományok száma Tetszőleges pozitív egész (RCB esetén \(2^n\)) Meghatározza az elosztott hálóadatok altartományainak számát. Általában az MPI-folyamatok számához igazodik.
Átfedési mélység 1 vagy nagyobb egész Meghatározza a szomszédos tartományok által redundánsan megtartott tartományt. Csomópontalapú felosztásnál adható meg.
Kommunikációs táblák Import/export információ, megosztott információ Meghatározza a szomszédos altartományok közötti szükséges adatcserét. A hálófelosztás során automatikusan jön létre.

Mivel a kommunikációs táblák az elosztott hálóadatok részét képezik, a felhasználónak általában nem kell közvetlenül szerkesztenie őket. A párhuzamos fistr1 beolvassa az elosztott hálóadatokat, és a lineáris egyenleteket párhuzamos direkt módszerrel, például MUMPS-szal, vagy iteratív módszerrel oldja meg.

Hálófelosztási konfiguráció kiválasztása

Szokásos szerkezeti és hővezetési elemzéseknél általában először a csomópontalapú felosztást érdemes megfontolni. A csomópontalapú felosztás egyszerűvé teszi a párhuzamos végeselemes elemzéshez szükséges csomóponti értékek kommunikációját, és az átfedési mélység megadását is lehetővé teszi. Az elemalapú felosztás olyan alkalmazásoknál lehet opció, például csatolt elemzésnél, ahol az elosztott információt elsősorban elemenként kell kezelni.

A felosztási módszert a geometria és a tartományok száma alapján válassza ki. Egyszerű geometriáknál, ahol a tartományok száma lehet \(2^n\), az RCB egyszerű és stabil választás. Összetett geometriáknál, vagy ha tetszőleges számú tartomány szükséges, a gráffelosztáson alapuló METIS jöhet szóba.

A feladat jellemzői Ajánlott választás
Szabványos párhuzamos szerkezeti vagy hővezetési analízis Csomópontalapú felosztás
Elemazonos központú elosztott információt használó alkalmazások, például csatolt analízis Elem alapú felosztás
Téglatesthez közeli egyszerű geometria, \(2^n\) tartománnyal RCB
Összetett geometria vagy tetszőleges számú tartomány METIS
SAINV előkondicionálót használó kontaktus- vagy MPC-kényszeres feladat Csomópontalapú felosztás 2 vagy nagyobb átfedési mélységgel

A tartományok száma általában az MPI-folyamatok számához igazodik. A párhuzamos futtatási eljárást és a folyamatszám megadását lásd: Párhuzamos analízis. A SAINV előkondicionáló és az átfedési mélység kapcsolatát lásd még: Megoldó és előkondicionálás.

Felosztástípusok

A felosztástípus határozza meg, hogy mely hálóentitáshoz rendel egyedi tulajdonost az altartomány. A csomópontalapú felosztás a csomópontokhoz, az elemalapú felosztás az elemekhez rendel tulajdonjogot. Mindkét esetben a szomszédos altartományokkal végzett számításhoz szükséges információ átfedési adatként marad meg.

Csomópontalapú felosztás

Csomópontalapú felosztásnál minden csomópont pontosan egy tulajdonos altartományhoz van rendelve. Az elemek átfedéssel megmaradnak a szomszédos altartományokban. A bemenetben ezt a !PARTITION, TYPE=NODE-BASED adja meg.

A csomópontalapú felosztás fogalma

10.1. ábra A csomópontalapú felosztás fogalma

Minden altartomány megtartja belső csomópontjait, az ezeket tartalmazó elemeket és az ezeket az elemeket alkotó csomópontokat.

Az egyes altartományok által megtartott csomópontok és elemek csomópontalapú felosztásnál

10.2. ábra Az egyes altartományok által megtartott csomópontok és elemek csomópontalapú felosztásnál

A csomópontalapú felosztás kommunikációs táblái a következő információkat tartalmazzák.

  • Importcsomópontok: Egy altartományban használt, de másik altartomány tulajdonában lévő csomópontok.
  • Exportcsomópontok: Olyan belső csomópontok, amelyek egy másik altartomány importcsomópontjai.
  • Megosztott elemek: Más altartományokkal közösen használt elemek.

Importcsomópontok csomópontalapú felosztásnál

10.3. ábra Importcsomópontok csomópontalapú felosztásnál

Exportcsomópontok csomópontalapú felosztásnál

10.4. ábra Exportcsomópontok csomópontalapú felosztásnál

Megosztott elemek csomópontalapú felosztásnál

10.5. ábra Megosztott elemek csomópontalapú felosztásnál

Elemealapú felosztás

Elemealapú felosztásnál minden elem pontosan egy tulajdonos altartományhoz van rendelve. A csomópontok átfedéssel megmaradnak a szomszédos altartományokban. A bemenetben ezt a !PARTITION, TYPE=ELEMENT-BASED adja meg.

Az elemalapú felosztás fogalma

10.6. ábra Az elemalapú felosztás fogalma

Minden altartomány megtartja belső elemeit, az ezeket alkotó csomópontokat és az ezeket a csomópontokat tartalmazó elemeket.

Az egyes altartományok által megtartott csomópontok és elemek elemalapú felosztásnál

10.7. ábra Az egyes altartományok által megtartott csomópontok és elemek elemalapú felosztásnál

Az elemalapú felosztás kommunikációs táblái a következő információkat tartalmazzák.

  • Importelemek: Egy altartományban használt, de másik altartomány tulajdonában lévő elemek.
  • Exportelemek: Olyan belső elemek, amelyek egy másik altartomány importelemei.
  • Megosztott csomópontok: Más altartományokkal közösen használt csomópontok.

Importelemek elemalapú felosztásnál

10.8. ábra Importelemek elemalapú felosztásnál

Exportelemek elemalapú felosztásnál

10.9. ábra Exportelemek elemalapú felosztásnál

Megosztott csomópontok elemalapú felosztásnál

10.10. ábra Megosztott csomópontok elemalapú felosztásnál

Mindkét felosztástípusnál a hecmw_part1 automatikusan létrehozza a kommunikációs táblákat, és beírja őket az elosztott hálóadatokba. Ezért a felhasználóknak általában nem kell közvetlenül import/export információt létrehozniuk.

Felosztási módszerek

A felosztási módszer határozza meg az altartományhatárok létrehozásának módját. A FrontISTR támogatja a koordinátaalapú RCB-t és a gráffelosztáson alapuló METIS-t.

Felosztási módszer Jellemzők Fő korlátozások és megjegyzések
RCB Koordinátaértékek alapján rekurzívan felezi a hálót. Egyszerű geometriáknál gyors felosztást biztosít. A tartományok száma \(2^n\) értékre korlátozott. A felosztási tengelyeket meg kell adni.
pMETIS Gráffelosztást használ a tartományok közötti kapcsolatok figyelembevételével. METIS-t engedélyező buildben érhető el.
kMETIS Többutas gráffelosztást használ, ezért összetett geometriák tartományhatárainak létrehozására alkalmas. METIS-t engedélyező buildben érhető el.

Az RCB a Recursive Coordinate Bisection rövidítése, és a hálót koordinátatengelyek mentén ismételten felezi. Akkor alkalmas, ha a tartományok száma lehet \(2^n\), és egyszerű, dobozszerű geometriáknál könnyen használható.

A METIS a háló kapcsolatait gráfként kezeli, és gráffelosztással hoz létre altartományokat. Összetett geometriáknál vagy akkor jöhet szóba, ha a tartományok száma nem korlátozható \(2^n\) értékre. A METIS használatához a METIS könyvtárat fordításkor engedélyezni kell. A függőségek kezelését lásd: Kötelező és opcionális függőségek.

Átfedési mélység

Az átfedési mélység a szomszédos altartományok által redundánsan megtartott tartomány rétegeinek száma. Csomópontalapú felosztásnál a !PARTITION DEPTH paraméterével 1 vagy nagyobb egész adható meg. Az alapértelmezett átfedési mélység 1.

Szokásos párhuzamos elemzéshez a DEPTH=1 elegendő. Ha azonban kontaktusfeladathoz vagy MPC-kényszereket tartalmazó feladathoz SAI-családba tartozó előkondicionálót, például SAINV-t használunk, az átfedési mélység 2-re vagy nagyobbra növelése javíthatja az előkondicionáló minőségét.

Legalább 2-es átfedési mélység szükséges akkor is, amikor MPI-párhuzamos számításban a 341-es elsőrendű tetraéder elemmel a szelektív él-/csomópontsimítási formuláció (FORM341=SELECTIVE_ESNS) használatos. Az él- és csomópontalapú simítás a cél elem szomszédos elemein átlagolja a mennyiségeket, ezért egy altartományon belüli merevség-összeállításhoz két szomszédsági réteggel távolabbi elemek információja is szükséges; az alapértelmezett DEPTH=1 mellett a tartományhatárok közelében a simítás elégtelen. Az elemformuláció részleteit lásd: Elemkönyvtár.

Az átfedési mélység növelése növeli a szomszédos altartományok által megtartott csomópontok és elemek számát, így a memóriahasználatot és a kommunikációs mennyiséget is. Az értéket a jobb konvergencia és a nagyobb számítási költség közötti egyensúly alapján állítsa be. Az előkondicionáló kiválasztását lásd: Megoldó és előkondicionálás.

Érintkezési pontok kezelése

Kontaktuspárokat tartalmazó háló felosztásakor a !PARTITION CONTACT paraméterével megadható az érintkezési pontok tartományelhelyezési szabálya. Az érintkezési pontok elhelyezése befolyásolja a kontaktuskeresést és kontaktuskényszereket tartalmazó párhuzamos elemzés stabilitását és kommunikációs mennyiségét.

Érték Szerep
DEFAULT A szabványos elhelyezési szabályt használja.
SIMPLE A szokásos felosztáshoz közeli elhelyezést használ, külön súlyok hozzárendelése nélkül az érintkezési pontokhoz.
AGGREGATE Úgy oszt fel, hogy a kontaktuspárokhoz tartozó csomópontok hajlamosak legyenek egy csoportba kerülni.
DISTRIBUTE Úgy oszt fel, hogy a master oldali kontaktuscsomópontok kevésbé koncentrálódjanak egyes altartományokban.

Kontaktust nem tartalmazó hálóknál a CONTACT paraméter általában nem igényel figyelmet. Ha kontaktust tartalmazó párhuzamos elemzésben a konvergencia vagy a terheléselosztás problémás, vizsgálja felül az érintkezési pontok elhelyezési szabályát. A bemeneti szintaxis részleteit lásd: !PARTITION.

Ettől függetlenül a CONTACT_OWNER paraméterrel kiválasztható a párhuzamos kontaktus tulajdonosi sémája. Míg a CONTACT azt adja meg, „hogyan történjen a felosztás”, a CONTACT_OWNER azt, „melyik oldal felelős a felosztás után”.

Érték Szerep
MASTER Master-tulajdonos séma (alapértelmezett). A master felületet az elemeket birtokló tartományok osztják fel, a slave csomópontok pedig minden master-tulajdonos tartományba lemásolódnak.
SLAVE Slave-tulajdonos séma. Minden slave csomópontot csak a saját tulajdonos tartománya tart meg, és a teljes master felület ebbe a tartományba kerül.

Véges csúszásnál (a !CONTACT alatt INTERACTION=FSLID), amikor egy slave csomópont a master felületen átlép egy hálófelosztási határt, a MASTER séma a határon megszakíthatja a szomszédságkeresést, ami a kontaktusállapot és a súrlódástörténet elvesztéséhez vezethet, és a megoldást a tartományok számától függővé teheti. A SLAVE séma elkerüli ezt a problémát. Csak TYPE=NODE-BASED esetén adható meg; a slave csomópontokat birtokló tartományok memóriahasználata nő.

Hálófelosztási kép kimenete

A !PARTITION UCD paraméterének megadásával UCD-fájl írható ki a felosztási eredmény ellenőrzésére. Az UCD-fájl MicroAVS és hasonló vizualizációs eszközökkel használható a tartományszámok és tartományhatárok vizsgálatára.

A tartományok számának, a felosztási módszernek vagy az átfedési mélységnek a módosítása után fontos ellenőrizni az elosztott tartományok közötti egyensúlytalanságot vagy természetellenes töredezettséget. Az UCD-kimenet segédfunkció a felosztás érvényességének ellenőrzésére a párhuzamos elemzés futtatása előtt.

Kapcsolódó témák