Hyppää sisältöön

Aluejako

Kun suuren mittakaavan verkkoa analysoidaan rinnakkain useilla prosesseilla, yhden alueen verkko on ensin jaettava osa-alueisiin ja kunkin prosessin osoittamiseen sekä alueiden väliseen tiedonsiirtoon tarvittavat tiedot on muodostettava etukäteen. Tätä esikäsittelyvaihetta kutsutaan aluejaoksi.

FrontISTR:n rinnakkaislaskennassa hecmw_part1 jakaa yhden alueen verkon osa-alueisiin ja luo hajautetun verkkodatan. Rinnakkainen fistr1 lukee luodun hajautetun verkkodatan ja käyttää sitä rinnakkaisratkaisijassa yhdessä alueiden väliseen tiedonsiirtoon tarvittavien tietojen kanssa.

Tällä sivulla kuvataan aluejaossa valittavat jakotyyppi, jakomenetelmä, päällekkäisyyssyvyys ja kontaktipisteiden käsittely. hecmw_part1-ohjelman suoritusmenettely, ohjaustiedoston tarkka syntaksi ja virheviestit on kuvattu liittyvissä aiheissa.

Yleiskatsaus

Aluejako tarkoittaa yhden alueen verkon jakamista useisiin osa-alueisiin. FrontISTR luo hajautetun verkkodatan yhdistämällä jakotyypin, jakomenetelmän, alueiden määrän ja päällekkäisyyssyvyyden.

Valintaperuste Päävaihtoehdot Tehtävä
Jakotyyppi Solmupohjainen jako, elementtipohjainen jako Määrittää, annetaanko omistajuus solmulle vai elementille.
Jakomenetelmä RCB, METIS (pMETIS / kMETIS) Määrittää, miten aluerajat muodostetaan.
Alueiden määrä Mikä tahansa positiivinen kokonaisluku (\(2^n\) RCB:lle) Määrittää hajautetun verkkodatan osa-alueiden määrän. Tavallisesti tämä sovitetaan MPI-prosessien määrään.
Päällekkäisyyssyvyys Kokonaisluku 1 tai suurempi Määrittää alueen, jonka vierekkäiset osa-alueet säilyttävät päällekkäisesti. Määritetään solmupohjaisessa jaossa.
Tiedonsiirtotaulukot Tuonti-/vientitiedot, jaetut tiedot Määrittää vierekkäisten osa-alueiden väliseen tiedonsiirtoon tarvittavan datan. Luodaan automaattisesti aluejaon aikana.

Koska tiedonsiirtotaulukot sisältyvät hajautettuun verkkodataan, käyttäjien ei tavallisesti tarvitse muokata niitä suoraan. Rinnakkainen fistr1 lukee hajautetun verkkodatan ja ratkaisee lineaariset yhtälöt käyttämällä rinnakkaista suoraa menetelmää, kuten MUMPS, tai iteratiivista menetelmää.

Aluejakokokoonpanon valinta

Tavallisissa rakenne- ja lämmönjohtumisanalyyseissä kannattaa yleensä harkita ensin solmupohjaista jakoa. Solmupohjainen jako tekee rinnakkaisessa äärellisten elementtien analyysissä tarvittavien solmuarvojen tiedonsiirrosta suoraviivaista ja mahdollistaa myös päällekkäisyyssyvyyden määrittämisen. Elementtipohjainen jako on vaihtoehto esimerkiksi kytketyissä analyyseissä, joissa jaettua tietoa käsitellään ensisijaisesti elementtikohtaisesti.

Valitse jakomenetelmä geometrian ja alueiden määrän perusteella. Yksinkertaisissa geometrioissa, joissa alueiden määrä voi olla \(2^n\), RCB on yksinkertainen ja vakaa valinta. Monimutkaisissa geometrioissa tai kun tarvitaan mielivaltainen määrä alueita, graafijakoon perustuva METIS on vaihtoehto.

Ongelman ominaisuudet Suositeltu valinta
Tavallinen rinnakkainen rakenne- tai lämmönjohtumisanalyysi Solmupohjainen jako
Sovellukset, kuten kytketty analyysi, joissa käytetään elementtikeskeistä hajautettua tietoa Elementtipohjainen jako
Yksinkertainen, suorakulmaista särmiötä lähellä oleva geometria ja \(2^n\) aluetta RCB
Monimutkainen geometria tai mielivaltainen alueiden määrä METIS
Kontaktia tai MPC-rajoitteita sisältävät ongelmat, joissa käytetään SAINV-esikäsittelijää Käytä solmupohjaista jakoa ja päällekkäisyyssyvyyttä 2 tai suurempi

Alueiden määrä sovitetaan tavallisesti MPI-prosessien määrään. Rinnakkaisen suorituksen menettely ja prosessimäärän määrittäminen on kuvattu kohdassa Rinnakkainen analyysi. SAINV-esikäsittelijän ja päällekkäisyyssyvyyden suhteesta katso myös Ratkaisija ja esikäsittelijät.

Jakotyypit

Jakotyyppi määrittää, mille verkon entiteetille annetaan yksikäsitteinen omistava osa-alue. Solmupohjaisessa jaossa omistajuus annetaan solmuille, kun taas elementtipohjaisessa jaossa se annetaan elementeille. Molemmissa tapauksissa vierekkäisten osa-alueiden kanssa laskentaan tarvittava tieto säilytetään päällekkäisyysdatana.

Solmupohjainen jako

Solmupohjaisessa jaossa kukin solmu osoitetaan täsmälleen yhdelle omistavalle osa-alueelle. Elementtejä säilytetään päällekkäisesti vierekkäisissä osa-alueissa. Syötteessä tämä määritetään komennolla !PARTITION, TYPE=NODE-BASED.

Solmupohjaisen jaon periaate

Kuva 10.1 Solmupohjaisen jaon periaate

Kukin osa-alue säilyttää sisäsolmunsa, näitä sisäsolmuja sisältävät elementit ja näiden elementtien muodostavat solmut.

Kunkin osa-alueen säilyttämät solmut ja elementit solmupohjaisessa jaossa

Kuva 10.2 Kunkin osa-alueen säilyttämät solmut ja elementit solmupohjaisessa jaossa

Solmupohjaisen jaon tiedonsiirtotaulukot sisältävät seuraavat tiedot.

  • Tuontisolmut: osa-alueella käytettävät solmut, jotka toinen osa-alue omistaa.
  • Vientisolmut: sisäsolmut, jotka ovat toisen osa-alueen tuontisolmuja.
  • Jaetut elementit: muiden osa-alueiden kanssa jaetut elementit.

Tuontisolmut solmupohjaisessa jaossa

Kuva 10.3 Tuontisolmut solmupohjaisessa jaossa

Vientisolmut solmupohjaisessa jaossa

Kuva 10.4 Vientisolmut solmupohjaisessa jaossa

Jaetut elementit solmupohjaisessa jaossa

Kuva 10.5 Jaetut elementit solmupohjaisessa jaossa

Elementtipohjainen jako

Elementtipohjaisessa jaossa kukin elementti osoitetaan täsmälleen yhdelle omistavalle osa-alueelle. Solmuja säilytetään päällekkäisesti vierekkäisissä osa-alueissa. Syötteessä tämä määritetään komennolla !PARTITION, TYPE=ELEMENT-BASED.

Elementtipohjaisen jaon periaate

Kuva 10.6 Elementtipohjaisen jaon periaate

Kukin osa-alue säilyttää sisäelementtinsä, näiden sisäelementtien muodostavat solmut ja näitä solmuja sisältävät elementit.

Kunkin osa-alueen säilyttämät solmut ja elementit elementtipohjaisessa jaossa

Kuva 10.7 Kunkin osa-alueen säilyttämät solmut ja elementit elementtipohjaisessa jaossa

Elementtipohjaisen jaon tiedonsiirtotaulukot sisältävät seuraavat tiedot.

  • Tuontielementit: osa-alueella käytettävät elementit, jotka toinen osa-alue omistaa.
  • Vientielementit: sisäelementit, jotka ovat toisen osa-alueen tuontielementtejä.
  • Jaetut solmut: muiden osa-alueiden kanssa jaetut solmut.

Tuontielementit elementtipohjaisessa jaossa

Kuva 10.8 Tuontielementit elementtipohjaisessa jaossa

Vientielementit elementtipohjaisessa jaossa

Kuva 10.9 Vientielementit elementtipohjaisessa jaossa

Jaetut solmut elementtipohjaisessa jaossa

Kuva 10.10 Jaetut solmut elementtipohjaisessa jaossa

Kummassakin jakotyypissä hecmw_part1 luo tiedonsiirtotaulukot automaattisesti ja kirjoittaa ne hajautettuun verkkodataan. Käyttäjien ei siksi tavallisesti tarvitse luoda tuonti-/vientitietoja suoraan.

Jakomenetelmät

Jakomenetelmä määrittää, miten osa-alueiden rajat muodostetaan. FrontISTR tukee koordinaattipohjaista RCB:tä ja graafijakoon perustuvaa METIS:iä.

Jakomenetelmä Ominaisuudet Päärajoitteet ja huomautukset
RCB Puolittaa verkon rekursiivisesti koordinaattiarvojen perusteella. Jakaa yksinkertaiset geometriat nopeasti. Alueiden määrä on rajoitettu muotoon \(2^n\). Jakoakselit on määritettävä.
pMETIS Käyttää graafijakoa ja ottaa huomioon alueiden väliset kytkennät. Käytettävissä koonneissa, joissa METIS on otettu käyttöön.
kMETIS Käyttää moniosaista graafijakoa, joten se soveltuu aluerajojen muodostamiseen monimutkaisissa geometrioissa. Käytettävissä koonneissa, joissa METIS on otettu käyttöön.

RCB on lyhenne sanoista Recursive Coordinate Bisection (rekursiivinen koordinaattipuolitus), ja se puolittaa verkon toistuvasti koordinaattiakseleita pitkin. Menetelmä soveltuu tilanteisiin, joissa alueiden määrä voi olla \(2^n\), ja on helppokäyttöinen yksinkertaisille, laatikkomaisille geometrioille.

METIS käsittelee verkon kytkentöjä graafina ja muodostaa osa-alueet graafijaolla. Se on vaihtoehto monimutkaisille geometrioille tai tilanteisiin, joissa alueiden määrää ei haluta rajoittaa muotoon \(2^n\). METIS:n käyttö edellyttää, että METIS-kirjasto on otettu käyttöön koontivaiheessa. Riippuvuuksien käsittely on kuvattu kohdassa Pakolliset ja valinnaiset riippuvuudet.

Päällekkäisyyssyvyys

Päällekkäisyyssyvyys on niiden kerrosten määrä, jotka vierekkäiset osa-alueet säilyttävät päällekkäisesti. Solmupohjaisessa jaossa !PARTITION mahdollistaa kokonaisluvun 1 tai suurempi määrittämisen DEPTH-parametrilla. Oletuspäällekkäisyyssyvyys on 1.

Tavallisessa rinnakkaisanalyysissä DEPTH=1 riittää. Kun kontaktia tai MPC-rajoitteita sisältävässä ongelmassa käytetään kuitenkin SAI-perheen esikäsittelijää, kuten SAINV, päällekkäisyyssyvyyden kasvattaminen arvoon 2 tai suuremmaksi voi parantaa esikäsittelijän laatua.

Päällekkäisyyssyvyyttä 2 tai suurempi tarvitaan myös, kun selektiivistä särmä-/solmupohjaista silotusformulointia (FORM341=SELECTIVE_ESNS) käytetään ensimmäisen kertaluvun tetraedrielementillä 341 MPI-rinnakkaislaskennassa. Särmä- ja solmupohjainen silotus keskiarvoistaa suureita kohde-elementin viereisten elementtien yli, joten jäykkyyden kokoaminen osa-alueella vaatii tietoa kahden vierekkäisyyskerroksen päässä olevista elementeistä; oletusarvolla DEPTH=1 silotus on riittämätöntä aluerajojen lähellä. Elementtiformuloinnin yksityiskohdat ovat kohdassa Elementtikirjasto.

Päällekkäisyyssyvyyden kasvattaminen lisää vierekkäisten osa-alueiden säilyttämien solmujen ja elementtien määrää ja kasvattaa siten sekä muistinkäyttöä että tiedonsiirtomäärää. Aseta arvo tasapainottamalla konvergenssin paraneminen ja laskentakustannusten kasvu. Esikäsittelijän valinnasta katso Ratkaisija ja esikäsittelijät.

Kontaktipisteiden käsittely

Kontaktipareja sisältävää verkkoa jaettaessa !PARTITION-komennon CONTACT-parametrilla voidaan määrittää kontaktipisteiden alueille sijoittamisen käytäntö. Kontaktipisteiden sijoittelu vaikuttaa kontaktihakua ja kontaktirajoitteita sisältävän rinnakkaisanalyysin vakauteen ja tiedonsiirtomäärään.

Arvo Tehtävä
DEFAULT Käyttää tavallista sijoittelukäytäntöä.
SIMPLE Käyttää tavallista jakoa lähellä olevaa sijoittelua ilman erityisten painojen antamista kontaktipisteille.
AGGREGATE Jakaa siten, että kontaktipareihin liittyvät solmut pyritään ryhmittelemään.
DISTRIBUTE Jakaa siten, että master-puolen kontaktisolmut eivät keskittyisi tietyille osa-alueille.

Kontaktittomissa verkoissa CONTACT-parametri ei yleensä vaadi huomiota. Jos konvergenssissa tai kuormantasapainotuksessa on ongelmia kontaktia sisältävässä rinnakkaisanalyysissä, tarkista kontaktipisteiden sijoittelukäytäntö. Syöttösyntaksin yksityiskohdat ovat kohdassa !PARTITION.

Tästä riippumatta CONTACT_OWNER-parametrilla voidaan valita rinnakkaiskontaktin omistajuusmenettely. CONTACT määrittää "miten jaetaan", kun taas CONTACT_OWNER määrittää "kumpi puoli vastaa jaon jälkeen".

Arvo Tehtävä
MASTER Master-omistajamenettely (oletus). Master-pinta jaetaan elementit omistavien alueiden mukaan ja slave-solmut replikoidaan kuhunkin master-pinnan omistavaan alueeseen.
SLAVE Slave-omistajamenettely. Kukin slave-solmu säilytetään vain sen omistavalla alueella ja koko master-pinta sijoitetaan tälle alueelle.

Äärellisessä liukumisessa (!CONTACT-komennon INTERACTION=FSLID), kun slave-solmu ylittää master-pinnan aluejakorajan, MASTER-menettely voi katkaista vierekkäisyyshaun rajalla, jolloin kontaktitila ja kitkahistoria menetetään ja ratkaisu alkaa riippua alueiden määrästä. SLAVE-menettely välttää tämän ongelman. Se voidaan määrittää vain, kun TYPE=NODE-BASED; muistinkäyttö kasvaa alueilla, jotka omistavat slave-solmuja.

Aluejakokuvan tulostaminen

Kun !PARTITION-komennossa määritetään UCD-parametri, tulostetaan UCD-tiedosto jakotuloksen tarkistamista varten. UCD-tiedostoa voidaan käyttää visualisointityökaluilla, kuten MicroAVS, alueiden numeroiden ja jakorajojen tarkasteluun.

Alueiden määrän, jakomenetelmän tai päällekkäisyyssyvyyden muuttamisen jälkeen on tärkeää tarkistaa jaettujen alueiden välinen epätasapaino ja epäluonnollinen pirstoutuminen. UCD-tulostus on aputoiminto jaon kelvollisuuden varmistamiseen ennen rinnakkaisanalyysin suorittamista.

Liittyvät aiheet

AI-assisted translation May contain errors Official docs Status