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.

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

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.



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.

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

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.



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¶
- Párhuzamos analízis — a
hecmw_part1futtatási eljárása, bemeneti fájljai és az elosztott hálóadat-kimenet ellenőrzése. - Megoldó és előkondicionálás — párhuzamos megoldók, előkondicionálók, valamint a SAINV és az átfedési mélység kapcsolata.
- Hibaüzenetek listája — a
hecmw_part1ésfistr1jellemző hibaüzenetei. - Párhuzamos végeselemes módszer — a tartományfelosztás és a párhuzamos végeselemes módszerek elméleti háttere.
- !PARTITION — a hálófelosztó segédprogram vezérlőadatainak bemeneti szintaxisa.