Gå til innhold

Nettpartisjonering

Når et stort mesh skal analyseres parallelt med flere prosesser, må nettdataene for ett domene deles i deldomener, og informasjonen som kreves for hvert prosessansvar og kommunikasjonen mellom domenene, må genereres på forhånd. Denne forbehandlingen kalles nettpartisjonering.

I FrontISTR-parallellberegning deler hecmw_part1 nettdataene for ett domene i deldomener og oppretter distribuerte nettdata. De genererte distribuerte nettdataene leses av den parallelle fistr1 og brukes av den parallelle løseren sammen med informasjonen som trengs for kommunikasjon mellom domenene.

Denne siden beskriver partisjonstype, partisjoneringsmetode, overlappingsdybde og behandling av kontaktpunkter som velges ved nettpartisjonering. Se relaterte emner for kjøreprosedyren for hecmw_part1, konkret syntaks i styringsfilen og feilmeldinger.

Funksjonsoversikt

Nettpartisjonering er prosessen der nettdata for ett domene deles i flere deldomener. FrontISTR oppretter distribuerte nettdata ved å kombinere partisjonstype, partisjoneringsmetode, antall domener og overlappingsdybde.

Valgakse Viktigste alternativer Rolle
Partisjonstype Nodebasert partisjonering, elementbasert partisjonering Bestemmer om noder eller elementer er enheten som får entydig domenetilhørighet.
Partisjoneringsmetode RCB, METIS (pMETIS / kMETIS) Bestemmer hvordan domenegrensene opprettes.
Antall domener Vilkårlig positivt heltall (for RCB: \(2^n\)) Bestemmer antallet deldomener i de distribuerte nettdataene. Vanligvis samsvarer dette med antallet MPI-prosesser.
Overlappingsdybde Heltall på 1 eller større Bestemmer hvor mange lag nabodomener beholder overlappende. Angis ved nodebasert partisjonering.
Kommunikasjonstabell Import-, eksport- og delingsinformasjon Definerer nødvendig datautveksling mellom nabodeldomener. Genereres automatisk ved nettpartisjonering.

Kommunikasjonstabellen inngår i de distribuerte nettdataene, så brukeren trenger normalt ikke redigere den direkte. Den parallelle fistr1 leser disse distribuerte nettdataene og løser de lineære ligningene med parallelle direkte metoder som MUMPS eller iterative metoder.

Valg av nettpartisjonering

For vanlig strukturanalyse og varmeledningsanalyse bør nodebasert partisjonering vurderes først. Nodebasert partisjonering gjør det enkelt å håndtere kommunikasjon av nodeverdier som kreves i parallell FEM-analyse, og gjør det også mulig å angi overlappingsdybden. Elementbasert partisjonering er et alternativ for koblede analyser og andre tilfeller der den distribuerte informasjonen etter partisjonering skal håndteres med elementene som sentrum.

Partisjoneringsmetoden velges ut fra geometri og antall domener. For en enkel geometri der antallet domener kan være \(2^n\), er RCB et enkelt og stabilt valg. For komplisert geometri eller når et vilkårlig antall domener ønskes, er METIS-basert grafpartisjonering et alternativ.

Problemets egenskaper Anbefalt valg
Standard parallell strukturanalyse eller varmeledningsanalyse Nodebasert partisjonering
Bruk av element-sentrert distribuert informasjon, for eksempel i koblede analyser Elementbasert partisjonering
Enkel, omtrent rektangulær geometri og antall domener \(2^n\) RCB
Komplisert geometri eller vilkårlig antall domener METIS
Kontaktproblemer eller MPC-betingelser med SAINV-prekondisjonering Nodebasert partisjonering med overlappingsdybde 2 eller større

Antallet domener settes vanligvis lik antallet MPI-prosesser. Se Parallell analyse for fremgangsmåten for parallell kjøring og angivelse av prosessantall. Se også Løser og prekondisjonering for forholdet mellom SAINV-prekondisjonering og overlappingsdybde.

Partisjonstyper

Partisjonstypen bestemmer hvilken enhet i meshet som får en entydig tilhørighet til ett deldomene. Ved nodebasert partisjonering bestemmes tilhørigheten for nodene, mens den ved elementbasert partisjonering bestemmes for elementene. I begge tilfeller beholdes informasjon som kreves for beregning med nabodeldomener som overlapping.

Nodebasert partisjonering

Ved nodebasert partisjonering bestemmes ett entydig deldomene for hver node. I nabodeldomener beholdes elementer overlappende. I inndata angis dette med !PARTITION, TYPE=NODE-BASED.

Prinsipp for nodebasert partisjonering

Figur 10.1 Prinsipp for nodebasert partisjonering

Hvert deldomene beholder interne noder, elementer som inneholder interne noder, og nodene som utgjør disse elementene.

Noder og elementer som beholdes av hvert deldomene ved nodebasert partisjonering

Figur 10.2 Noder og elementer som beholdes av hvert deldomene ved nodebasert partisjonering

Kommunikasjonstabellen ved nodebasert partisjonering inneholder følgende informasjon.

  • Importnoder: Noder som brukes i deldomenet, men som tilhører et annet deldomene.
  • Eksportnoder: Interne noder som er importnoder i et annet deldomene.
  • Delte elementer: Elementer som deles med andre deldomener.

Importnoder ved nodebasert partisjonering

Figur 10.3 Importnoder ved nodebasert partisjonering

Eksportnoder ved nodebasert partisjonering

Figur 10.4 Eksportnoder ved nodebasert partisjonering

Delte elementer ved nodebasert partisjonering

Figur 10.5 Delte elementer ved nodebasert partisjonering

Elementbasert partisjonering

Ved elementbasert partisjonering bestemmes ett entydig deldomene for hvert element. I nabodeldomener beholdes noder overlappende. I inndata angis dette med !PARTITION, TYPE=ELEMENT-BASED.

Prinsipp for elementbasert partisjonering

Figur 10.6 Prinsipp for elementbasert partisjonering

Hvert deldomene beholder interne elementer, nodene som utgjør de interne elementene, og elementene som inneholder disse nodene.

Noder og elementer som beholdes av hvert deldomene ved elementbasert partisjonering

Figur 10.7 Noder og elementer som beholdes av hvert deldomene ved elementbasert partisjonering

Kommunikasjonstabellen ved elementbasert partisjonering inneholder følgende informasjon.

  • Importelementer: Elementer som brukes i deldomenet, men som tilhører et annet deldomene.
  • Eksportelementer: Interne elementer som er importelementer i et annet deldomene.
  • Delte noder: Noder som deles med andre deldomener.

Importelementer ved elementbasert partisjonering

Figur 10.8 Importelementer ved elementbasert partisjonering

Eksportelementer ved elementbasert partisjonering

Figur 10.9 Eksportelementer ved elementbasert partisjonering

Delte noder ved elementbasert partisjonering

Figur 10.10 Delte noder ved elementbasert partisjonering

For begge partisjonstyper genererer hecmw_part1 kommunikasjonstabellen automatisk og skriver den til de distribuerte nettdataene. Derfor trenger brukeren normalt ikke opprette import- og eksportinformasjon direkte.

Partisjoneringsmetoder

Partisjoneringsmetoden bestemmer hvordan grensene mellom deldomenene opprettes. FrontISTR kan bruke koordinatbasert RCB og grafbasert METIS.

Partisjoneringsmetode Egenskaper Viktigste begrensninger og merknader
RCB Deler rekursivt i to ut fra koordinatverdier. Kan dele enkel geometri raskt. Antall domener er begrenset til \(2^n\). Delingsakse må angis.
pMETIS Partisjonerer med grafdeling og tar hensyn til forbindelsene mellom domenene. Tilgjengelig når FrontISTR er bygget med METIS aktivert.
kMETIS Grafdeling i flere domener; gjør det lettere å lage domenegrenser også for komplisert geometri. Tilgjengelig når FrontISTR er bygget med METIS aktivert.

RCB står for Recursive Coordinate Bisection og deler gjentatte ganger meshet i to langs koordinataksene. Metoden passer når antallet domener kan være \(2^n\), og er enkel å bruke for geometri som ligner en rektangulær blokk.

METIS behandler forbindelsene i meshet som en graf og oppretter deldomener ved grafpartisjonering. Det er et alternativ når geometrien er komplisert eller når antallet domener ikke skal begrenses til \(2^n\). For å bruke METIS må METIS-biblioteket være aktivert ved bygging. Se Påkrevde og valgfrie avhengigheter for håndtering av avhengigheter.

Overlappingsdybde

Overlappingsdybden er antall lag med informasjon som nabodeldomener beholder overlappende. Ved nodebasert partisjonering kan et heltall på 1 eller større angis med parameteren DEPTH i !PARTITION. Standard overlappingsdybde når parameteren utelates, er 1.

Ved vanlig parallell analyse er DEPTH=1 tilstrekkelig. Når prekondisjonering av SAI-typen, som SAINV, brukes på kontaktproblemer eller problemer med MPC-betingelser, kan en overlappingsdybde på 2 eller større forbedre kvaliteten på prekondisjoneringen.

Når selektiv kant-/nodeutjevningsformulering (FORM341=SELECTIVE_ESNS) brukes med førsteordens tetraederelement 341 i MPI-parallell kjøring, må overlappingsdybden også være 2 eller større. Ved kantbasert/nodebasert utjevning gjennomsnittberegnes størrelser fra elementer ved siden av målelementet. For å sammenstille stivheten innenfor et deldomene trengs derfor informasjon fra «naboens nabo»-elementer, og standard DEPTH=1 gir utilstrekkelig utjevning nær domenegrensene. Se Elementbibliotek for detaljer om elementformuleringen.

Økt overlappingsdybde betyr at nabodeldomener beholder flere noder og elementer, slik at både minnebruk og kommunikasjonsmengde øker. Innstillingen bør velges ved å veie mulig forbedring i konvergens mot økt beregningskostnad. Se Løser og prekondisjonering for valg av prekondisjonering.

Behandling av kontaktpunkter

Når et mesh med kontaktpar partisjoneres, kan parameteren CONTACT i !PARTITION brukes til å angi strategien for plassering av kontaktpunkter mellom domenene. Plasseringen påvirker stabiliteten og kommunikasjonsmengden i parallell analyse med kontaktsøk og kontaktbetingelser.

Verdi Betydning
DEFAULT Bruker standardstrategien for plassering.
SIMPLE Bruker en plassering nær vanlig partisjonering uten særskilt vekting av kontaktpunkter.
AGGREGATE Partisjonerer i retning av å samle nodegrupper som er knyttet til kontaktpar.
DISTRIBUTE Partisjonerer slik at mastersidens kontaktnoder i mindre grad blir skjevt fordelt mellom deldomenene.

For mesh uten kontakt er det ikke nødvendig å ta hensyn til parameteren CONTACT. Hvis det oppstår problemer med konvergens eller lastbalansering i en parallell analyse med kontakt, bør strategien for plassering av kontaktpunkter vurderes. Se !PARTITION for detaljert inndatastruktur.

Uavhengig av dette kan parameteren CONTACT_OWNER brukes til å velge eierskapsmodell for parallell kontakt. Mens CONTACT angir «hvordan det deles», angir CONTACT_OWNER «hvilken side som har ansvaret etter delingen».

Verdi Betydning
MASTER Master-eierskap (standard). Masterflaten deles etter eierdomene for elementene, og slavenodene dupliseres til hvert master-eierdomene.
SLAVE Slave-eierskap. Slavenoden beholdes bare av sitt eierdomene, og hele masterflaten plasseres i dette domenet.

Ved endelig glidning (INTERACTION=FSLID i !CONTACT) kan en slavenode krysse en domenepartisjonsgrense på masterflaten. Med MASTER kan nabosøket da brytes ved grensen, slik at kontaktstatus og friksjonshistorikk går tapt og løsningen blir avhengig av antallet domener. SLAVE unngår dette. Det kan bare angis når TYPE=NODE-BASED, og minnebruken øker i domenet som eier slavenoden.

Utdata av bilde av nettpartisjoneringen

Når parameteren UCD i !PARTITION angis, kan en UCD-fil skrives ut for å kontrollere partisjoneringsresultatet. UCD-filen kan brukes i visualiseringsverktøy som MicroAVS til å kontrollere domenenumre og partisjonsgrenser.

Etter at antall domener, partisjoneringsmetode eller overlappingsdybde er endret, er det viktig å kontrollere at domenene ikke er ubalanserte eller delt opp på en unaturlig måte. UCD-utdata er en hjelpefunksjon for å kontrollere at partisjoneringen er rimelig før den parallelle analysen kjøres.

Relaterte emner