Domeenideks jaotamine¶
Kui suurt võrku analüüsitakse paralleelselt mitme protsessiga, tuleb ühe domeeni võrk esmalt jagada alamdomeenideks ning eelnevalt genereerida protsessidele määramiseks ja domeenidevaheliseks sideks vajalik teave. Seda eeltöötlusetappi nimetatakse domeenideks jaotamiseks.
FrontISTR-i paralleelarvutuses jagab hecmw_part1 ühe domeeni võrgu alamdomeenideks ja loob jaotatud võrguandmed. Loodud jaotatud võrguandmed loeb paralleelne fistr1, mis kasutab neid koos domeenidevaheliseks sideks vajaliku teabega paralleellahendajas.
Sellel lehel kirjeldatakse domeenideks jaotamisel valitavat jaotustüüpi, jaotusmeetodit, ülekatte sügavust ja kontaktpunktide käsitlust. hecmw_part1 käivitamise, juhtfaili konkreetse süntaksi ja veateadete kohta vt seotud teemasid.
Ülevaade¶
Domeenideks jaotamine jagab ühe domeeni võrgu mitmeks alamdomeeniks. FrontISTR loob jaotatud võrguandmed, kombineerides jaotustüübi, jaotusmeetodi, domeenide arvu ja ülekatte sügavuse.
| Valikutelg | Peamised valikud | Ülesanne |
|---|---|---|
| Jaotustüüp | sõlmepõhine jaotus, elemendipõhine jaotus | Määrab, kas omand määratakse sõlme või elemendi järgi. |
| Jaotusmeetod | RCB, METIS (pMETIS / kMETIS) | Määrab, kuidas alamdomeenide piirid luuakse. |
| Domeenide arv | suvaline positiivne täisarv (RCB puhul \(2^n\)) | Määrab jaotatud võrguandmete alamdomeenide arvu. Tavaliselt viiakse see vastavusse MPI-protsesside arvuga. |
| Ülekatte sügavus | täisarv 1 või suurem | Määrab naaberdomeenides liiaselt säilitatava ulatuse. Määratakse sõlmepõhise jaotuse korral. |
| Sidetabelid | impordi-/eksporditeave, jagatud teave | Määravad naaberalamdomeenide vahel vajaliku andmevahetuse. Genereeritakse domeenideks jaotamisel automaatselt. |
Kuna sidetabelid sisalduvad jaotatud võrguandmetes, ei pea kasutaja neid tavaliselt otse muutma. Paralleelne fistr1 loeb jaotatud võrguandmed ning lahendab lineaarvõrrandid paralleelse otsemeetodiga, näiteks MUMPS-iga, või iteratiivse meetodiga.
Domeenijaotuse konfiguratsiooni valimine¶
Tavaliste konstruktsiooni- ja soojusjuhtivusanalüüside puhul tuleks üldiselt esmalt kaaluda sõlmepõhist jaotust. Sõlmepõhine jaotus muudab paralleelses lõplike elementide analüüsis vajalike sõlmeväärtuste side lihtsaks ning võimaldab määrata ülekatte sügavuse. Elemendipõhine jaotus sobib näiteks sidestatud analüüsidele, kus jaotatud teavet käsitletakse peamiselt elementide kaupa.
Valige jaotusmeetod geomeetria ja domeenide arvu järgi. Lihtsa geomeetria korral, kui domeenide arv võib olla \(2^n\), on RCB lihtne ja stabiilne valik. Keeruka geomeetria või suvalise domeenide arvu korral sobib kandidaadiks graafijaotusel põhinev METIS.
| Probleemi omadused | Soovitatav valik |
|---|---|
| Standardne paralleelne konstruktsiooni- või soojusjuhtivusanalüüs | sõlmepõhine jaotus |
| Rakendused, mis kasutavad elemendikeskset jaotatud teavet, näiteks sidestatud analüüs | elemendipõhine jaotus |
| Lihtne risttahukale lähedane geomeetria, \(2^n\) domeeni | RCB |
| Keerukas geomeetria või suvaline domeenide arv | METIS |
| Kontakti- või MPC-piirangutega probleemid, mis kasutavad SAINV eelkonditsioneerijat | kasutage sõlmepõhist jaotust ülekatte sügavusega 2 või rohkem |
Domeenide arv viiakse tavaliselt vastavusse MPI-protsesside arvuga. Paralleeltäitmise ja protsesside arvu määramise kohta vt Paralleelanalüüs. SAINV eelkonditsioneerija ja ülekatte sügavuse seose kohta vt ka Lahendaja ja eelkonditsioneerijad.
Jaotustüübid¶
Jaotustüüp määrab, millisele võrguobjektile antakse alamdomeenis unikaalne omand. Sõlmepõhises jaotuses määratakse omand sõlmedele, elemendipõhises jaotuses elementidele. Mõlemal juhul säilitatakse naaberalamdomeenidega arvutamiseks vajalik teave ülekatteandmetena.
Sõlmepõhine jaotus¶
Sõlmepõhises jaotuses kuulub iga sõlm täpselt ühele omanik-alamdomeenile. Elemente säilitatakse naaberalamdomeenides ülekattega. Sisendis määratakse see kujul !PARTITION, TYPE=NODE-BASED.

Iga alamdomeen säilitab oma sisemised sõlmed, neid sisemisi sõlmi sisaldavad elemendid ja neid elemente moodustavad sõlmed.

Sõlmepõhise jaotuse sidetabelid sisaldavad järgmist teavet.
- Imporditavad sõlmed: alamdomeenis kasutatavad sõlmed, mille omanik on teine alamdomeen.
- Eksporditavad sõlmed: sisemised sõlmed, mis on mõne teise alamdomeeni imporditavad sõlmed.
- Jagatud elemendid: teiste alamdomeenidega jagatud elemendid.



Elemendipõhine jaotus¶
Elemendipõhises jaotuses kuulub iga element täpselt ühele omanik-alamdomeenile. Sõlmi säilitatakse naaberalamdomeenides ülekattega. Sisendis määratakse see kujul !PARTITION, TYPE=ELEMENT-BASED.

Iga alamdomeen säilitab oma sisemised elemendid, neid sisemisi elemente moodustavad sõlmed ja neid sõlmi sisaldavad elemendid.

Elemendipõhise jaotuse sidetabelid sisaldavad järgmist teavet.
- Imporditavad elemendid: alamdomeenis kasutatavad elemendid, mille omanik on teine alamdomeen.
- Eksporditavad elemendid: sisemised elemendid, mis on mõne teise alamdomeeni imporditavad elemendid.
- Jagatud sõlmed: teiste alamdomeenidega jagatud sõlmed.



Mõlema jaotustüübi puhul genereerib hecmw_part1 sidetabelid automaatselt ja kirjutab need jaotatud võrguandmetesse. Seetõttu ei pea kasutaja tavaliselt impordi-/eksporditeavet otse looma.
Jaotusmeetodid¶
Jaotusmeetod määrab, kuidas alamdomeenide piirid luuakse. FrontISTR toetab koordinaatidel põhinevat RCB-d ja graafijaotusel põhinevat METIS-t.
| Jaotusmeetod | Omadused | Peamised piirangud ja märkused |
|---|---|---|
| RCB | Poolitab võrku rekursiivselt koordinaatväärtuste alusel. Võimaldab lihtsa geomeetria kiiret jaotamist. | Domeenide arv on piiratud kujuga \(2^n\). Jaotusteljed tuleb määrata. |
| pMETIS | Kasutab graafijaotust, arvestades domeenidevahelist ühenduvust. | Saadaval järkudes, kus METIS on lubatud. |
| kMETIS | Kasutab mitmesuunalist graafijaotust ja sobib seetõttu keeruka geomeetriaga domeenipiiride loomiseks. | Saadaval järkudes, kus METIS on lubatud. |
RCB tähendab Recursive Coordinate Bisection'it ja poolitab võrku korduvalt koordinaattelgede järgi. See sobib siis, kui domeenide arv võib olla \(2^n\), ning on lihtne kasutada lihtsa, kastikujulise geomeetria korral.
METIS käsitleb võrgu ühenduvust graafina ja loob alamdomeenid graafijaotuse abil. See sobib keeruka geomeetria korral või siis, kui domeenide arvu ei soovita piirata kujuga \(2^n\). METIS-e kasutamiseks peab METIS teek olema järgu koostamisel lubatud. Sõltuvuste käsitlust vt Nõutavad ja valikulised sõltuvused.
Ülekatte sügavus¶
Ülekatte sügavus on naaberalamdomeenides liiaselt säilitatava ulatuse kihtide arv. Sõlmepõhise jaotuse korral lubab !PARTITION parameetriga DEPTH määrata täisarvu 1 või rohkem. Vaikimisi ülekatte sügavus on 1.
Tavalise paralleelanalüüsi jaoks piisab väärtusest DEPTH=1. Kui aga kontakti- või MPC-piirangutega probleemis kasutatakse SAI-perekonna eelkonditsioneerijat, näiteks SAINV-i, võib ülekatte sügavuse suurendamine väärtuseni 2 või rohkem parandada eelkonditsioneerija kvaliteeti.
Ülekatte sügavust 2 või rohkem nõutakse ka siis, kui MPI-paralleelarvutuses kasutatakse esimese järgu tetraeedrilise elemendiga 341 valikulist serva-/sõlmepõhist silumisformulatsiooni (FORM341=SELECTIVE_ESNS). Serva- ja sõlmepõhine silumine keskmistab suurusi sihtelemendiga külgnevate elementide üle, mistõttu vajab alamdomeeni jäikuse koostamine teavet kahe külgnevuskihi kauguselt; vaikimisi DEPTH=1 korral on silumine domeenipiiride lähedal ebapiisav. Elemendiformulatsiooni üksikasju vt Elementide teek.
Ülekatte sügavuse suurendamine suurendab naaberalamdomeenides säilitatavate sõlmede ja elementide arvu ning seega nii mälukasutust kui side mahtu. Valige väärtus, tasakaalustades koonduvuse paranemise ja kasvava arvutuskulu. Eelkonditsioneerija valiku kohta vt Lahendaja ja eelkonditsioneerijad.
Kontaktpunktide käsitlus¶
Kontaktpaare sisaldava võrgu jaotamisel võimaldab !PARTITION kasutada parameetrit CONTACT, et määrata kontaktpunktide domeenidesse paigutamise reegel. Kontaktpunktide paigutus mõjutab kontaktiotsingut ja kontaktpiiranguid sisaldava paralleelanalüüsi stabiilsust ning side mahtu.
| Väärtus | Ülesanne |
|---|---|
DEFAULT | Kasutab standardset paigutusreeglit. |
SIMPLE | Kasutab tavapärase jaotuse lähedast paigutust, andmata kontaktpunktidele erikaale. |
AGGREGATE | Jaotab nii, et kontaktpaaridega seotud sõlmed kipuvad koonduma. |
DISTRIBUTE | Jaotab nii, et ülempoole kontaktsõlmed koonduksid vähem tõenäoliselt kindlatesse alamdomeenidesse. |
Kontaktita võrkude korral ei vaja parameeter CONTACT üldjuhul tähelepanu. Kui kontakti sisaldavas paralleelanalüüsis tekib probleeme koonduvuse või koormuse tasakaalustamisega, vaadake kontaktpunktide paigutusreegel üle. Sisendsüntaksi üksikasju vt !PARTITION.
Sellest sõltumatult saab parameetriga CONTACT_OWNER valida paralleelkontakti omandiskeemi. Kui CONTACT määrab „kuidas jaotada“, siis CONTACT_OWNER määrab „kumb pool vastutab pärast jaotamist“.
| Väärtus | Ülesanne |
|---|---|
MASTER | Ülempoole omandiskeem (vaikimisi). Ülempind jaotatakse elemente omavate domeenide järgi ning alamsõlmed replikeeritakse igasse ülempinda omavasse domeeni. |
SLAVE | Alampoole omandiskeem. Iga alamsõlm säilitatakse ainult tema omanikdomeenis ning kogu ülempind paigutatakse sellesse domeeni. |
Lõpliku libisemise korral (INTERACTION=FSLID võtmesõnal !CONTACT) võib alamsõlme ülempinna domeenijaotuspiiri ületamisel MASTER skeem katkestada naabrusotsingu piiril, mille tõttu kontaktiolek ja hõõrdeajalugu kaovad ning lahend hakkab sõltuma domeenide arvust. SLAVE skeem väldib seda probleemi. Seda saab määrata ainult siis, kui TYPE=NODE-BASED; alamsõlmi omavates domeenides suureneb mälukasutus.
Domeenijaotuse pildi väljastamine¶
Kui !PARTITION-is määratakse parameeter UCD, väljastatakse jaotustulemuse kontrollimiseks UCD-fail. UCD-faili saab kasutada visualiseerimisvahenditega, näiteks MicroAVS-iga, et kontrollida domeeninumbreid ja jaotuspiire.
Pärast domeenide arvu, jaotusmeetodi või ülekatte sügavuse muutmist on oluline kontrollida jaotatud domeenide koormuse tasakaalu ning ebaloomulikku killustumist. UCD-väljund on abifunktsioon, millega kontrollida jaotuse sobivust enne paralleelanalüüsi käivitamist.
Seotud teemad¶
- Paralleelanalüüs —
hecmw_part1käivitamine, sisendfailid ja jaotatud võrguandmete väljundi kontroll. - Lahendaja ja eelkonditsioneerijad — Paralleellahendajad, eelkonditsioneerijad ning SAINV-i ja ülekatte sügavuse seos.
- Veateadete loend —
hecmw_part1jafistr1tüüpilised veateated. - Paralleelne lõplike elementide meetod — Domeenideks jaotamise ja paralleelse lõplike elementide meetodi teoreetiline taust.
- !PARTITION — Domeenijaotuse utiliidi juhtandmete sisendsüntaks.