Pāriet uz saturu

Apgabala sadalīšana

Ja liela mēroga tīklu analizē paralēli, izmantojot vairākus procesus, viena apgabala tīkls vispirms jāsadala apakšapgabalos un iepriekš jāizveido informācija, kas vajadzīga procesu piesaistei un starpapgabalu komunikācijai. Šo priekšapstrādes darbību sauc par apgabala sadalīšanu.

FrontISTR paralēlajos aprēķinos hecmw_part1 sadala viena apgabala tīklu apakšapgabalos un izveido sadalītā tīkla datus. Izveidotos sadalītā tīkla datus nolasa paralēlais fistr1, un paralēlais risinātājs tos izmanto kopā ar starpapgabalu komunikācijai nepieciešamo informāciju.

Šajā lapā aprakstīts apgabala sadalīšanas veids, sadalīšanas metode, pārklājuma dziļums un kontaktpunktu apstrāde. hecmw_part1 izpildes procedūru, konkrēto vadības faila sintaksi un kļūdu ziņojumus skatiet saistītajās tēmās.

Pārskats

Apgabala sadalīšana ir viena apgabala tīkla sadalīšana vairākos apakšapgabalos. FrontISTR izveido sadalītā tīkla datus, kombinējot sadalīšanas veidu, sadalīšanas metodi, apgabalu skaitu un pārklājuma dziļumu.

Izvēles aspekts Galvenās opcijas Nozīme
Sadalīšanas veids Sadalīšana pēc mezgliem, sadalīšana pēc elementiem Nosaka, vai īpašumtiesības piešķir pēc mezgla vai pēc elementa.
Sadalīšanas metode RCB, METIS (pMETIS / kMETIS) Nosaka, kā tiek izveidotas apgabalu robežas.
Apgabalu skaits Jebkurš pozitīvs vesels skaitlis (RCB gadījumā \(2^n\)) Nosaka apakšapgabalu skaitu sadalītā tīkla datos. Parasti to saskaņo ar MPI procesu skaitu.
Pārklājuma dziļums Vesels skaitlis 1 vai lielāks Nosaka diapazonu, ko kaimiņu apgabali glabā dublēti. To norāda sadalīšanai pēc mezgliem.
Komunikācijas tabulas Importa/eksporta informācija, koplietojamā informācija Definē datu apmaiņu starp kaimiņu apakšapgabaliem. Apgabala sadalīšanas laikā tiek izveidota automātiski.

Tā kā komunikācijas tabulas ir iekļautas sadalītā tīkla datos, lietotājiem parasti tās nav jārediģē tieši. Paralēlais fistr1 nolasa sadalītā tīkla datus un risina lineāros vienādojumus, izmantojot paralēlu tiešo metodi, piemēram, MUMPS, vai iteratīvu metodi.

Apgabala sadalīšanas konfigurācijas izvēle

Parastā konstrukciju un siltumvadīšanas analīzē vispirms parasti jāapsver sadalīšana pēc mezgliem. Tā vienkāršo paralēlai galīgo elementu analīzei nepieciešamo mezglu vērtību komunikāciju un ļauj norādīt pārklājuma dziļumu. Sadalīšana pēc elementiem ir izvēle tādiem lietojumiem kā sasaistīta analīze, kur sadalītā informācija galvenokārt jāapstrādā pa elementiem.

Sadalīšanas metodi izvēlieties atbilstoši ģeometrijai un apgabalu skaitam. Vienkāršai ģeometrijai, kur apgabalu skaits var būt \(2^n\), RCB ir vienkārša un stabila izvēle. Sarežģītai ģeometrijai vai gadījumos, kad vajadzīgs patvaļīgs apgabalu skaits, piemērota izvēle ir uz grafu sadalīšanu balstītais METIS.

Uzdevuma raksturojums Ieteicamā izvēle
Standarta paralēla konstrukciju vai siltumvadīšanas analīze Sadalīšana pēc mezgliem
Lietojumi, kas izmanto uz elementiem centrētu sadalīto informāciju, piemēram, sasaistīta analīze Sadalīšana pēc elementiem
Vienkārša ģeometrija, kas tuva taisnstūra paralēlskaldnim, ar \(2^n\) apgabaliem RCB
Sarežģīta ģeometrija vai patvaļīgs apgabalu skaits METIS
Kontakta vai ar MPC ierobežoti uzdevumi, kuros izmanto SAINV priekšnosacītāju Izmantojiet sadalīšanu pēc mezgliem ar pārklājuma dziļumu 2 vai lielāku

Apgabalu skaitu parasti saskaņo ar MPI procesu skaitu. Paralēlās izpildes procedūru un procesu skaita norādīšanu skatiet sadaļā Paralēlā analīze. Par SAINV priekšnosacītāja un pārklājuma dziļuma saistību skatiet arī Risinātājs un priekšnosacītāji.

Sadalīšanas veidi

Sadalīšanas veids nosaka, kurai tīkla vienībai apakšapgabals piešķir unikālas īpašumtiesības. Sadalīšanā pēc mezgliem īpašumtiesības piešķir mezgliem, savukārt sadalīšanā pēc elementiem — elementiem. Abos gadījumos aprēķiniem ar kaimiņu apakšapgabaliem nepieciešamā informācija tiek saglabāta kā pārklājuma dati.

Sadalīšana pēc mezgliem

Sadalīšanā pēc mezgliem katram mezglam piešķir tieši vienu īpašnieka apakšapgabalu. Elementi kaimiņu apakšapgabalos tiek saglabāti ar pārklājumu. Ievadē to norāda ar !PARTITION, TYPE=NODE-BASED.

Sadalīšanas pēc mezgliem koncepcija

10.1. attēls. Sadalīšanas pēc mezgliem koncepcija

Katrs apakšapgabals saglabā savus iekšējos mezglus, elementus, kas satur šos iekšējos mezglus, un mezglus, kas veido šos elementus.

Mezgli un elementi, ko katrs apakšapgabals saglabā sadalīšanā pēc mezgliem

10.2. attēls. Mezgli un elementi, ko katrs apakšapgabals saglabā sadalīšanā pēc mezgliem

Sadalīšanas pēc mezgliem komunikācijas tabulās ir šāda informācija.

  • Importa mezgli: mezgli, kas tiek izmantoti apakšapgabalā, bet pieder citam apakšapgabalam.
  • Eksporta mezgli: iekšējie mezgli, kas citam apakšapgabalam ir importa mezgli.
  • Koplietojamie elementi: elementi, kas tiek koplietoti ar citiem apakšapgabaliem.

Importa mezgli sadalīšanā pēc mezgliem

10.3. attēls. Importa mezgli sadalīšanā pēc mezgliem

Eksporta mezgli sadalīšanā pēc mezgliem

10.4. attēls. Eksporta mezgli sadalīšanā pēc mezgliem

Koplietojamie elementi sadalīšanā pēc mezgliem

10.5. attēls. Koplietojamie elementi sadalīšanā pēc mezgliem

Sadalīšana pēc elementiem

Sadalīšanā pēc elementiem katram elementam piešķir tieši vienu īpašnieka apakšapgabalu. Mezgli kaimiņu apakšapgabalos tiek saglabāti ar pārklājumu. Ievadē to norāda ar !PARTITION, TYPE=ELEMENT-BASED.

Sadalīšanas pēc elementiem koncepcija

10.6. attēls. Sadalīšanas pēc elementiem koncepcija

Katrs apakšapgabals saglabā savus iekšējos elementus, mezglus, kas veido šos iekšējos elementus, un elementus, kas satur šos mezglus.

Mezgli un elementi, ko katrs apakšapgabals saglabā sadalīšanā pēc elementiem

10.7. attēls. Mezgli un elementi, ko katrs apakšapgabals saglabā sadalīšanā pēc elementiem

Sadalīšanas pēc elementiem komunikācijas tabulās ir šāda informācija.

  • Importa elementi: elementi, kas tiek izmantoti apakšapgabalā, bet pieder citam apakšapgabalam.
  • Eksporta elementi: iekšējie elementi, kas citam apakšapgabalam ir importa elementi.
  • Koplietojamie mezgli: mezgli, kas tiek koplietoti ar citiem apakšapgabaliem.

Importa elementi sadalīšanā pēc elementiem

10.8. attēls. Importa elementi sadalīšanā pēc elementiem

Eksporta elementi sadalīšanā pēc elementiem

10.9. attēls. Eksporta elementi sadalīšanā pēc elementiem

Koplietojamie mezgli sadalīšanā pēc elementiem

10.10. attēls. Koplietojamie mezgli sadalīšanā pēc elementiem

Abiem sadalīšanas veidiem hecmw_part1 automātiski izveido komunikācijas tabulas un ieraksta tās sadalītā tīkla datos. Tāpēc lietotājiem parasti nav tieši jāveido importa/eksporta informācija.

Sadalīšanas metodes

Sadalīšanas metode nosaka, kā tiek izveidotas apakšapgabalu robežas. FrontISTR atbalsta uz koordinātēm balstītu RCB un uz grafu sadalīšanu balstītu METIS.

Sadalīšanas metode Raksturlielumi Galvenie ierobežojumi un piezīmes
RCB Rekursīvi sadala tīklu uz pusēm pēc koordinātu vērtībām. Nodrošina ātru sadalīšanu vienkāršai ģeometrijai. Apgabalu skaits ir ierobežots līdz \(2^n\). Jānorāda sadalīšanas asis.
pMETIS Izmanto grafu sadalīšanu, ņemot vērā savienojamību starp apgabaliem. Pieejams būvējumos, kuros iespējots METIS.
kMETIS Izmanto daudzvirzienu grafu sadalīšanu, tāpēc ir piemērots apgabalu robežu veidošanai sarežģītā ģeometrijā. Pieejams būvējumos, kuros iespējots METIS.

RCB nozīmē Recursive Coordinate Bisection un atkārtoti sadala tīklu uz pusēm pa koordinātu asīm. Tas ir piemērots, ja apgabalu skaits var būt \(2^n\), un ir viegli izmantojams vienkāršai, kastei līdzīgai ģeometrijai.

METIS aplūko tīkla savienojamību kā grafu un izveido apakšapgabalus ar grafu sadalīšanu. Tas ir piemērots sarežģītai ģeometrijai vai gadījumiem, kad apgabalu skaitu nevajag ierobežot līdz \(2^n\). Lai izmantotu METIS, būvēšanas laikā jāiespējo METIS bibliotēka. Atkarību apstrādi skatiet sadaļā Obligātās un neobligātās atkarības.

Pārklājuma dziļums

Pārklājuma dziļums ir slāņu skaits diapazonā, ko kaimiņu apakšapgabali glabā dublēti. Sadalīšanai pēc mezgliem !PARTITION parametrā DEPTH ļauj norādīt veselu skaitli 1 vai lielāku. Noklusējuma pārklājuma dziļums ir 1.

Parastai paralēlai analīzei pietiek ar DEPTH=1. Tomēr, ja kontakta uzdevumam vai uzdevumam ar MPC ierobežojumiem izmanto SAI saimes priekšnosacītāju, piemēram, SAINV, pārklājuma dziļuma palielināšana līdz 2 vai vairāk var uzlabot priekšnosacītāja kvalitāti.

Pārklājuma dziļums 2 vai lielāks ir vajadzīgs arī tad, ja MPI paralēlajā aprēķinā pirmās kārtas tetraedriskajam elementam 341 izmanto selektīvās malu/mezglu izlīdzināšanas formulējumu (FORM341=SELECTIVE_ESNS). Uz malām un mezgliem balstītā izlīdzināšana vidējo lielumus pa elementiem, kas atrodas blakus mērķa elementam, tāpēc stinguma montāžai apakšapgabalā vajadzīga informācija no elementiem divu blakusības slāņu attālumā; ar noklusējuma DEPTH=1 izlīdzināšana apgabalu robežu tuvumā nav pietiekama. Elementa formulējuma informāciju skatiet sadaļā Elementu bibliotēka.

Palielinot pārklājuma dziļumu, palielinās mezglu un elementu skaits, ko glabā kaimiņu apakšapgabali, un līdz ar to pieaug gan atmiņas patēriņš, gan komunikācijas apjoms. Iestatiet to, līdzsvarojot uzlabotu konverģenci ar lielākām skaitļošanas izmaksām. Par priekšnosacītāja izvēli skatiet Risinātājs un priekšnosacītāji.

Kontaktpunktu apstrāde

Sadalot tīklu, kas satur kontakta pārus, !PARTITION parametrs CONTACT ļauj norādīt kontaktpunktu izvietošanas politiku pa apgabaliem. Kontaktpunktu izvietojums ietekmē paralēlās analīzes stabilitāti un komunikācijas apjomu uzdevumos ar kontakta meklēšanu un kontakta ierobežojumiem.

Vērtība Nozīme
DEFAULT Izmanto standarta izvietošanas politiku.
SIMPLE Izmanto izvietojumu, kas tuvs parastai sadalīšanai, nepiešķirot kontaktpunktiem īpašus svarus.
AGGREGATE Sadala tā, lai ar kontakta pāriem saistītie mezgli tiektos grupēties.
DISTRIBUTE Sadala tā, lai galvenās puses kontakta mezgli mazāk koncentrētos atsevišķos apakšapgabalos.

Tīkliem bez kontakta parametram CONTACT parasti nav jāpievērš uzmanība. Ja paralēlā analīzē ar kontaktu ir problēmas ar konverģenci vai slodzes balansēšanu, pārskatiet kontaktpunktu izvietošanas politiku. Ievades sintakses informāciju skatiet !PARTITION.

Neatkarīgi no tā parametru CONTACT_OWNER var izmantot, lai izvēlētos paralēlā kontakta īpašumtiesību shēmu. CONTACT norāda „kā sadalīt”, savukārt CONTACT_OWNER norāda „kura puse ir atbildīga pēc sadalīšanas”.

Vērtība Nozīme
MASTER Galvenās puses īpašnieka shēma (noklusējums). Galveno virsmu sadala pēc elementu īpašnieku apgabaliem, un pakārtotie mezgli tiek replicēti katrā galvenās puses īpašnieka apgabalā.
SLAVE Pakārtotās puses īpašnieka shēma. Katru pakārtoto mezglu glabā tikai tā īpašnieka apgabals, un visa galvenā virsma tiek ievietota šajā apgabalā.

Galīgas slīdēšanas gadījumā (INTERACTION=FSLID pie !CONTACT), kad pakārtotais mezgls šķērso apgabala sadalījuma robežu uz galvenās virsmas, MASTER shēma var pārtraukt kaimiņu meklēšanu pie robežas, izraisot kontakta stāvokļa un berzes vēstures zudumu un padarot risinājumu atkarīgu no apgabalu skaita. SLAVE shēma šo problēmu novērš. To var norādīt tikai tad, ja TYPE=NODE-BASED; apgabalos, kuriem pieder pakārtotie mezgli, palielinās atmiņas patēriņš.

Apgabala sadalījuma attēla izvadīšana

Ar !PARTITION norādot parametru UCD, tiek izvadīts UCD fails sadalīšanas rezultāta pārbaudei. UCD failu var izmantot ar vizualizācijas rīkiem, piemēram, MicroAVS, lai pārbaudītu apgabalu numurus un sadalījuma robežas.

Pēc apgabalu skaita, sadalīšanas metodes vai pārklājuma dziļuma maiņas ir svarīgi pārbaudīt, vai starp sadalītajiem apgabaliem nav nelīdzsvarotības vai nedabiskas fragmentācijas. UCD izvade ir palīgfunkcija sadalījuma pamatotības pārbaudei pirms paralēlās analīzes izpildes.

Saistītās tēmas

AI-assisted translation May contain errors Official docs Status