Przejdź do treści

Podział domeny

Gdy wielkoskalowa siatka jest analizowana równolegle przy użyciu wielu procesów, jednodomenową siatkę trzeba najpierw podzielić na poddomeny oraz wcześniej wygenerować informacje wymagane do przypisania poszczególnych procesów i komunikacji między domenami. Ten etap pre-processingu nazywa się podziałem domeny.

W obliczeniach równoległych FrontISTR program hecmw_part1 dzieli jednodomenową siatkę na poddomeny i tworzy rozproszone dane siatki. Wygenerowane rozproszone dane siatki są odczytywane przez równoległy fistr1 i używane przez solver równoległy wraz z informacjami wymaganymi do komunikacji między domenami.

Na tej stronie opisano typ podziału, metodę podziału, głębokość nakładania oraz sposób obsługi punktów kontaktowych wybierane przy podziale domeny. Procedurę uruchamiania hecmw_part1, konkretną składnię pliku sterującego i komunikaty błędów opisano w powiązanych tematach.

Przegląd

Podział domeny jest procesem dzielenia jednodomenowej siatki na wiele poddomen. FrontISTR tworzy rozproszone dane siatki przez połączenie typu podziału, metody podziału, liczby domen i głębokości nakładania.

Oś wyboru Główne opcje Rola
Typ podziału Podział oparty na węzłach, podział oparty na elementach Określa, czy własność jest przypisywana według węzłów, czy elementów.
Metoda podziału RCB, METIS (pMETIS / kMETIS) Określa sposób tworzenia granic domen.
Liczba domen Dowolna dodatnia liczba całkowita (\(2^n\) dla RCB) Określa liczbę poddomen w rozproszonych danych siatki. Zwykle odpowiada liczbie procesów MPI.
Głębokość nakładania Liczba całkowita co najmniej 1 Określa zakres redundantnie przechowywany przez sąsiednie domeny. Określana dla podziału opartego na węzłach.
Tabele komunikacji Informacje importu/eksportu, informacje współdzielone Definiują wymianę danych wymaganą między sąsiednimi poddomenami. Są generowane automatycznie podczas podziału domeny.

Ponieważ tabele komunikacji są zawarte w rozproszonych danych siatki, użytkownicy zwykle nie muszą ich bezpośrednio edytować. Równoległy fistr1 odczytuje rozproszone dane siatki i rozwiązuje równania liniowe przy użyciu równoległej metody bezpośredniej, takiej jak MUMPS, lub metody iteracyjnej.

Wybór konfiguracji podziału domeny

W zwykłych analizach konstrukcyjnych i przewodzenia ciepła na ogół należy najpierw rozważyć podział oparty na węzłach. Taki podział upraszcza komunikację wartości węzłowych wymaganych w równoległej metodzie elementów skończonych i umożliwia również określenie głębokości nakładania. Podział oparty na elementach jest opcją dla zastosowań, takich jak analiza sprzężona, w których informacje rozproszone mają być obsługiwane przede wszystkim według elementów.

Metodę podziału wybieraj na podstawie geometrii i liczby domen. Dla prostych geometrii, w których liczba domen może wynosić \(2^n\), RCB jest prostym i stabilnym wyborem. Dla złożonych geometrii lub gdy wymagana jest dowolna liczba domen, kandydatem jest METIS oparty na partycjonowaniu grafu.

Charakterystyka problemu Zalecany wybór
Standardowa równoległa analiza konstrukcyjna lub przewodzenia ciepła Podział oparty na węzłach
Zastosowania wykorzystujące informacje rozproszone zorientowane na elementy, takie jak analiza sprzężona Podział oparty na elementach
Prosta geometria zbliżona do prostopadłościanu, z \(2^n\) domenami RCB
Złożona geometria lub dowolna liczba domen METIS
Problemy kontaktowe lub z więzami MPC używające preconditionera SAINV Użyj podziału opartego na węzłach z głębokością nakładania co najmniej 2

Liczba domen jest zwykle dopasowana do liczby procesów MPI. Procedurę uruchamiania równoległego i określanie liczby procesów opisano w sekcji Analiza równoległa. Zależność między preconditionerem SAINV a głębokością nakładania opisano również w sekcji Solver i preconditionery.

Typy podziału

Typ podziału określa, któremu obiektowi siatki poddomena przypisuje wyłączną własność. Podział oparty na węzłach przypisuje własność węzłom, a podział oparty na elementach — elementom. W obu przypadkach informacje wymagane do obliczeń z sąsiednimi poddomenami są zachowywane jako dane nakładania.

Podział oparty na węzłach

W podziale opartym na węzłach każdy węzeł jest przypisany dokładnie do jednej poddomeny będącej jego właścicielem. Elementy są przechowywane z nakładaniem w sąsiednich poddomenach. W danych wejściowych określa się to za pomocą !PARTITION, TYPE=NODE-BASED.

Koncepcja podziału opartego na węzłach

Rysunek 10.1 Koncepcja podziału opartego na węzłach

Każda poddomena zachowuje swoje węzły wewnętrzne, elementy zawierające te węzły wewnętrzne oraz węzły tworzące te elementy.

Węzły i elementy zachowywane przez każdą poddomenę w podziale opartym na węzłach

Rysunek 10.2 Węzły i elementy zachowywane przez każdą poddomenę w podziale opartym na węzłach

Tabele komunikacji dla podziału opartego na węzłach zawierają następujące informacje.

  • Węzły importowane: węzły używane w poddomenie, których właścicielem jest inna poddomena.
  • Węzły eksportowane: węzły wewnętrzne będące węzłami importowanymi innej poddomeny.
  • Elementy współdzielone: elementy współdzielone z innymi poddomenami.

Węzły importowane w podziale opartym na węzłach

Rysunek 10.3 Węzły importowane w podziale opartym na węzłach

Węzły eksportowane w podziale opartym na węzłach

Rysunek 10.4 Węzły eksportowane w podziale opartym na węzłach

Elementy współdzielone w podziale opartym na węzłach

Rysunek 10.5 Elementy współdzielone w podziale opartym na węzłach

Podział oparty na elementach

W podziale opartym na elementach każdy element jest przypisany dokładnie do jednej poddomeny będącej jego właścicielem. Węzły są przechowywane z nakładaniem w sąsiednich poddomenach. W danych wejściowych określa się to za pomocą !PARTITION, TYPE=ELEMENT-BASED.

Koncepcja podziału opartego na elementach

Rysunek 10.6 Koncepcja podziału opartego na elementach

Każda poddomena zachowuje swoje elementy wewnętrzne, węzły tworzące te elementy wewnętrzne oraz elementy zawierające te węzły.

Węzły i elementy zachowywane przez każdą poddomenę w podziale opartym na elementach

Rysunek 10.7 Węzły i elementy zachowywane przez każdą poddomenę w podziale opartym na elementach

Tabele komunikacji dla podziału opartego na elementach zawierają następujące informacje.

  • Elementy importowane: elementy używane w poddomenie, których właścicielem jest inna poddomena.
  • Elementy eksportowane: elementy wewnętrzne będące elementami importowanymi innej poddomeny.
  • Węzły współdzielone: węzły współdzielone z innymi poddomenami.

Elementy importowane w podziale opartym na elementach

Rysunek 10.8 Elementy importowane w podziale opartym na elementach

Elementy eksportowane w podziale opartym na elementach

Rysunek 10.9 Elementy eksportowane w podziale opartym na elementach

Węzły współdzielone w podziale opartym na elementach

Rysunek 10.10 Węzły współdzielone w podziale opartym na elementach

Dla obu typów podziału hecmw_part1 automatycznie generuje tabele komunikacji i zapisuje je w rozproszonych danych siatki. Dlatego użytkownicy zwykle nie muszą bezpośrednio tworzyć informacji importu/eksportu.

Metody podziału

Metoda podziału określa sposób tworzenia granic poddomen. FrontISTR obsługuje RCB oparte na współrzędnych oraz METIS oparty na partycjonowaniu grafu.

Metoda podziału Charakterystyka Główne ograniczenia i uwagi
RCB Rekurencyjnie dzieli siatkę na pół na podstawie wartości współrzędnych. Zapewnia szybki podział dla prostych geometrii. Liczba domen jest ograniczona do \(2^n\). Należy określić osie podziału.
pMETIS Używa partycjonowania grafu z uwzględnieniem połączeń między domenami. Dostępne w kompilacjach z włączonym METIS.
kMETIS Używa wielokierunkowego partycjonowania grafu, dzięki czemu dobrze nadaje się do tworzenia granic domen w złożonych geometriach. Dostępne w kompilacjach z włączonym METIS.

RCB oznacza Recursive Coordinate Bisection i wielokrotnie dzieli siatkę na pół wzdłuż osi współrzędnych. Nadaje się, gdy liczba domen może wynosić \(2^n\), i jest łatwe w użyciu dla prostych geometrii o kształcie zbliżonym do pudełka.

METIS traktuje łączność siatki jako graf i tworzy poddomeny przez partycjonowanie grafu. Jest kandydatem dla złożonych geometrii lub gdy liczba domen nie powinna być ograniczona do \(2^n\). Aby używać METIS, biblioteka METIS musi być włączona podczas kompilacji. Informacje o obsłudze zależności znajdują się w sekcji Wymagane i opcjonalne zależności.

Głębokość nakładania

Głębokość nakładania to liczba warstw w zakresie redundantnie przechowywanym przez sąsiednie poddomeny. W przypadku podziału opartego na węzłach !PARTITION pozwala określić parametrem DEPTH liczbę całkowitą co najmniej 1. Domyślna głębokość nakładania wynosi 1.

W zwykłej analizie równoległej DEPTH=1 jest wystarczające. Jednak gdy w problemie kontaktowym lub problemie z więzami MPC używany jest preconditioner z rodziny SAI, taki jak SAINV, zwiększenie głębokości nakładania do co najmniej 2 może poprawić jakość preconditionera.

Głębokość nakładania co najmniej 2 jest również wymagana, gdy selektywne sformułowanie wygładzania krawędziowego/węzłowego (FORM341=SELECTIVE_ESNS) jest używane z elementem czworościennym pierwszego rzędu 341 w równoległych obliczeniach MPI. Wygładzanie oparte na krawędziach i węzłach uśrednia wielkości po elementach sąsiadujących z elementem docelowym, dlatego montaż sztywności w poddomenie wymaga informacji z elementów oddalonych o dwie warstwy sąsiedztwa; przy domyślnym DEPTH=1 wygładzanie w pobliżu granic domen jest niewystarczające. Szczegóły sformułowania elementu znajdują się w sekcji Biblioteka elementów.

Zwiększenie głębokości nakładania zwiększa liczbę węzłów i elementów przechowywanych przez sąsiednie poddomeny, a tym samym zwiększa zarówno zużycie pamięci, jak i wolumen komunikacji. Ustaw ją, równoważąc poprawę zbieżności ze wzrostem kosztu obliczeniowego. Informacje o wyborze preconditionera znajdują się w sekcji Solver i preconditionery.

Obsługa punktów kontaktowych

Przy dzieleniu siatki zawierającej pary kontaktowe !PARTITION pozwala użyć parametru CONTACT do określenia zasad rozmieszczenia punktów kontaktowych w domenach. Rozmieszczenie punktów kontaktowych wpływa na stabilność i wolumen komunikacji w analizach równoległych obejmujących wyszukiwanie kontaktu i więzy kontaktowe.

Wartość Rola
DEFAULT Używa standardowych zasad rozmieszczenia.
SIMPLE Używa rozmieszczenia zbliżonego do zwykłego podziału bez przypisywania specjalnych wag punktom kontaktowym.
AGGREGATE Dzieli w sposób sprzyjający grupowaniu węzłów związanych z parami kontaktowymi.
DISTRIBUTE Dzieli tak, aby węzły kontaktowe po stronie nadrzędnej były mniej skłonne do skupiania się w określonych poddomenach.

Dla siatek bez kontaktu parametr CONTACT zwykle nie wymaga uwagi. Jeśli w analizie równoległej obejmującej kontakt występują problemy ze zbieżnością lub równoważeniem obciążenia, przejrzyj zasady rozmieszczenia punktów kontaktowych. Szczegóły składni wejściowej: !PARTITION.

Niezależnie od tego parametr CONTACT_OWNER może służyć do wyboru schematu własności dla kontaktu równoległego. Podczas gdy CONTACT określa „jak dzielić”, CONTACT_OWNER określa „która strona odpowiada po podziale”.

Wartość Rola
MASTER Schemat właściciela po stronie nadrzędnej (domyślny). Powierzchnia nadrzędna jest dzielona według domen będących właścicielami elementów, a węzły podrzędne są replikowane do każdej domeny będącej właścicielem strony nadrzędnej.
SLAVE Schemat właściciela po stronie podrzędnej. Każdy węzeł podrzędny jest przechowywany wyłącznie przez domenę będącą jego właścicielem, a cała powierzchnia nadrzędna jest umieszczana w tej domenie.

W przypadku skończonego poślizgu (INTERACTION=FSLID w !CONTACT), gdy węzeł podrzędny przekracza granicę podziału domeny na powierzchni nadrzędnej, schemat MASTER może przerwać wyszukiwanie sąsiedztwa na granicy, powodując utratę stanu kontaktu i historii tarcia oraz uzależniając rozwiązanie od liczby domen. Schemat SLAVE pozwala tego uniknąć. Można go określić tylko przy TYPE=NODE-BASED; zużycie pamięci rośnie w domenach będących właścicielami węzłów podrzędnych.

Wyprowadzanie obrazu podziału domeny

W !PARTITION określenie parametru UCD powoduje zapis pliku UCD do sprawdzania wyniku podziału. Plik UCD może być używany w narzędziach wizualizacyjnych, takich jak MicroAVS, do sprawdzania numerów domen i granic podziału.

Po zmianie liczby domen, metody podziału lub głębokości nakładania ważne jest sprawdzenie, czy między podzielonymi domenami nie występuje nierównowaga lub nienaturalna fragmentacja. Wyjście UCD jest funkcją pomocniczą służącą do weryfikacji poprawności podziału przed uruchomieniem analizy równoległej.

Powiązane tematy