Keri sisuni

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.

Sõlmepõhise jaotuse põhimõte

Joonis 10.1 Sõlmepõhise jaotuse põhimõte

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

Igas alamdomeenis säilitatavad sõlmed ja elemendid sõlmepõhise jaotuse korral

Joonis 10.2 Igas alamdomeenis säilitatavad sõlmed ja elemendid sõlmepõhise jaotuse korral

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.

Imporditavad sõlmed sõlmepõhises jaotuses

Joonis 10.3 Imporditavad sõlmed sõlmepõhises jaotuses

Eksporditavad sõlmed sõlmepõhises jaotuses

Joonis 10.4 Eksporditavad sõlmed sõlmepõhises jaotuses

Jagatud elemendid sõlmepõhises jaotuses

Joonis 10.5 Jagatud elemendid sõlmepõhises jaotuses

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.

Elemendipõhise jaotuse põhimõte

Joonis 10.6 Elemendipõhise jaotuse põhimõte

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

Igas alamdomeenis säilitatavad sõlmed ja elemendid elemendipõhise jaotuse korral

Joonis 10.7 Igas alamdomeenis säilitatavad sõlmed ja elemendid elemendipõhise jaotuse korral

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.

Imporditavad elemendid elemendipõhises jaotuses

Joonis 10.8 Imporditavad elemendid elemendipõhises jaotuses

Eksporditavad elemendid elemendipõhises jaotuses

Joonis 10.9 Eksporditavad elemendid elemendipõhises jaotuses

Jagatud sõlmed elemendipõhises jaotuses

Joonis 10.10 Jagatud sõlmed elemendipõhises jaotuses

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

AI-assisted translation May contain errors Official docs Status