Lewati ke isi

Pembagian Domain

Ketika mesh berskala besar dianalisis secara paralel menggunakan beberapa proses, mesh domain tunggal terlebih dahulu harus dibagi menjadi subdomain dan informasi yang diperlukan untuk penetapan setiap proses serta komunikasi antardomain harus dibuat sebelumnya. Langkah prapemrosesan ini disebut pembagian domain.

Dalam komputasi paralel FrontISTR, hecmw_part1 membagi mesh domain tunggal menjadi subdomain dan membuat data mesh terdistribusi. Data mesh terdistribusi yang dihasilkan dibaca oleh fistr1 paralel dan digunakan oleh solver paralel bersama informasi yang diperlukan untuk komunikasi antardomain.

Halaman ini menjelaskan tipe pembagian, metode pembagian, kedalaman overlap, dan penanganan titik kontak yang dipilih untuk pembagian domain. Untuk prosedur eksekusi hecmw_part1, sintaks file kontrol yang spesifik, dan pesan kesalahan, lihat topik terkait.

Ikhtisar

Pembagian domain adalah proses membagi mesh domain tunggal menjadi beberapa subdomain. FrontISTR membuat data mesh terdistribusi dengan mengombinasikan tipe pembagian, metode pembagian, jumlah domain, dan kedalaman overlap.

Aspek pemilihan Opsi utama Peran
Tipe pembagian Pembagian berbasis node, pembagian berbasis elemen Menentukan apakah kepemilikan ditetapkan berdasarkan node atau elemen.
Metode pembagian RCB, METIS (pMETIS / kMETIS) Menentukan bagaimana batas domain dibuat.
Jumlah domain Bilangan bulat positif apa pun (\(2^n\) untuk RCB) Menentukan jumlah subdomain dalam data mesh terdistribusi. Biasanya disamakan dengan jumlah proses MPI.
Kedalaman overlap Bilangan bulat 1 atau lebih Menentukan rentang yang dipertahankan secara redundan oleh domain yang bersebelahan. Ditentukan untuk pembagian berbasis node.
Tabel komunikasi Informasi impor/ekspor, informasi bersama Mendefinisikan pertukaran data yang diperlukan antara subdomain yang bersebelahan. Dibuat otomatis saat pembagian domain.

Karena tabel komunikasi disertakan dalam data mesh terdistribusi, pengguna biasanya tidak perlu mengeditnya secara langsung. fistr1 paralel membaca data mesh terdistribusi dan menyelesaikan persamaan linear menggunakan metode langsung paralel seperti MUMPS atau metode iteratif.

Memilih Konfigurasi Pembagian Domain

Untuk analisis struktur dan konduksi panas biasa, pembagian berbasis node umumnya harus dipertimbangkan terlebih dahulu. Pembagian berbasis node memudahkan komunikasi nilai nodal yang diperlukan dalam analisis elemen hingga paralel dan juga memungkinkan kedalaman overlap ditentukan. Pembagian berbasis elemen merupakan pilihan untuk aplikasi seperti analisis terkopel, ketika informasi yang telah dibagi terutama hendak ditangani berdasarkan elemen.

Pilih metode pembagian berdasarkan geometri dan jumlah domain. Untuk geometri sederhana ketika jumlah domain dapat berupa \(2^n\), RCB merupakan pilihan yang sederhana dan stabil. Untuk geometri kompleks atau ketika diperlukan jumlah domain arbitrer, METIS yang berbasis pembagian graf merupakan kandidat.

Karakteristik masalah Pilihan yang direkomendasikan
Analisis struktur atau konduksi panas paralel standar Pembagian berbasis node
Aplikasi yang menggunakan informasi terdistribusi berpusat pada elemen, seperti analisis terkopel Pembagian berbasis elemen
Geometri sederhana yang mendekati balok persegi panjang, dengan \(2^n\) domain RCB
Geometri kompleks atau jumlah domain arbitrer METIS
Masalah kontak atau berkendala MPC yang menggunakan preconditioner SAINV Gunakan pembagian berbasis node dengan kedalaman overlap 2 atau lebih

Jumlah domain biasanya disamakan dengan jumlah proses MPI. Untuk prosedur eksekusi paralel dan penentuan jumlah proses, lihat Analisis Paralel. Untuk hubungan antara preconditioner SAINV dan kedalaman overlap, lihat juga Solver dan Preconditioner.

Tipe Pembagian

Tipe pembagian menentukan entitas mesh mana yang diberi kepemilikan unik oleh suatu subdomain. Pembagian berbasis node menetapkan kepemilikan pada node, sedangkan pembagian berbasis elemen menetapkan kepemilikan pada elemen. Dalam kedua kasus, informasi yang diperlukan untuk perhitungan dengan subdomain bersebelahan dipertahankan sebagai data overlap.

Pembagian Berbasis Node

Dalam pembagian berbasis node, setiap node ditetapkan ke tepat satu subdomain pemilik. Elemen dipertahankan dengan overlap pada subdomain yang bersebelahan. Pada input, hal ini ditentukan dengan !PARTITION, TYPE=NODE-BASED.

Konsep pembagian berbasis node

Gambar 10.1 Konsep pembagian berbasis node

Setiap subdomain mempertahankan node internalnya, elemen yang memuat node internal tersebut, dan node yang menyusun elemen tersebut.

Node dan elemen yang dipertahankan setiap subdomain pada pembagian berbasis node

Gambar 10.2 Node dan elemen yang dipertahankan setiap subdomain pada pembagian berbasis node

Tabel komunikasi untuk pembagian berbasis node memuat informasi berikut.

  • Node impor: Node yang digunakan dalam suatu subdomain tetapi dimiliki oleh subdomain lain.
  • Node ekspor: Node internal yang menjadi node impor bagi subdomain lain.
  • Elemen bersama: Elemen yang dibagi dengan subdomain lain.

Node impor pada pembagian berbasis node

Gambar 10.3 Node impor pada pembagian berbasis node

Node ekspor pada pembagian berbasis node

Gambar 10.4 Node ekspor pada pembagian berbasis node

Elemen bersama pada pembagian berbasis node

Gambar 10.5 Elemen bersama pada pembagian berbasis node

Pembagian Berbasis Elemen

Dalam pembagian berbasis elemen, setiap elemen ditetapkan ke tepat satu subdomain pemilik. Node dipertahankan dengan overlap pada subdomain yang bersebelahan. Pada input, hal ini ditentukan dengan !PARTITION, TYPE=ELEMENT-BASED.

Konsep pembagian berbasis elemen

Gambar 10.6 Konsep pembagian berbasis elemen

Setiap subdomain mempertahankan elemen internalnya, node yang menyusun elemen internal tersebut, dan elemen yang memuat node-node itu.

Node dan elemen yang dipertahankan setiap subdomain pada pembagian berbasis elemen

Gambar 10.7 Node dan elemen yang dipertahankan setiap subdomain pada pembagian berbasis elemen

Tabel komunikasi untuk pembagian berbasis elemen memuat informasi berikut.

  • Elemen impor: Elemen yang digunakan dalam suatu subdomain tetapi dimiliki oleh subdomain lain.
  • Elemen ekspor: Elemen internal yang menjadi elemen impor bagi subdomain lain.
  • Node bersama: Node yang dibagi dengan subdomain lain.

Elemen impor pada pembagian berbasis elemen

Gambar 10.8 Elemen impor pada pembagian berbasis elemen

Elemen ekspor pada pembagian berbasis elemen

Gambar 10.9 Elemen ekspor pada pembagian berbasis elemen

Node bersama pada pembagian berbasis elemen

Gambar 10.10 Node bersama pada pembagian berbasis elemen

Untuk kedua tipe pembagian, hecmw_part1 secara otomatis membuat tabel komunikasi dan menuliskannya ke data mesh terdistribusi. Karena itu, pengguna biasanya tidak perlu membuat informasi impor/ekspor secara langsung.

Metode Pembagian

Metode pembagian menentukan bagaimana batas subdomain dibuat. FrontISTR mendukung RCB berbasis koordinat dan METIS berbasis pembagian graf.

Metode pembagian Karakteristik Batasan dan catatan utama
RCB Membagi mesh secara rekursif berdasarkan nilai koordinat. Memberikan pembagian cepat untuk geometri sederhana. Jumlah domain terbatas pada \(2^n\). Sumbu pembagian harus ditentukan.
pMETIS Menggunakan pembagian graf dengan mempertimbangkan konektivitas antardomain. Tersedia pada build dengan METIS diaktifkan.
kMETIS Menggunakan pembagian graf multiway sehingga cocok untuk membuat batas domain pada geometri kompleks. Tersedia pada build dengan METIS diaktifkan.

RCB adalah singkatan dari Recursive Coordinate Bisection dan membagi mesh berulang kali sepanjang sumbu koordinat. Metode ini cocok ketika jumlah domain dapat berupa \(2^n\) dan mudah digunakan untuk geometri sederhana berbentuk kotak.

METIS memperlakukan konektivitas mesh sebagai graf dan membuat subdomain melalui pembagian graf. METIS merupakan kandidat untuk geometri kompleks atau ketika jumlah domain tidak boleh dibatasi pada \(2^n\). Untuk menggunakan METIS, pustaka METIS harus diaktifkan saat build. Untuk penanganan dependensi, lihat Dependensi Wajib dan Opsional.

Kedalaman Overlap

Kedalaman overlap adalah jumlah lapisan dalam rentang yang dipertahankan secara redundan oleh subdomain yang bersebelahan. Untuk pembagian berbasis node, !PARTITION memungkinkan bilangan bulat 1 atau lebih ditentukan dengan parameter DEPTH. Kedalaman overlap default adalah 1.

Untuk analisis paralel biasa, DEPTH=1 sudah memadai. Namun, ketika preconditioner keluarga SAI seperti SAINV digunakan untuk masalah kontak atau masalah dengan kendala MPC, meningkatkan kedalaman overlap menjadi 2 atau lebih dapat memperbaiki kualitas preconditioner.

Kedalaman overlap 2 atau lebih juga diperlukan ketika formulasi smoothing edge/nodal selektif (FORM341=SELECTIVE_ESNS) digunakan bersama elemen tetrahedral orde pertama 341 dalam komputasi paralel MPI. Smoothing berbasis edge dan berbasis node merata-ratakan besaran pada elemen yang bersebelahan dengan elemen target, sehingga perakitan kekakuan dalam suatu subdomain memerlukan informasi dari elemen hingga dua lapisan ketetanggaan; dengan default DEPTH=1, smoothing di dekat batas domain tidak memadai. Untuk rincian formulasi elemen, lihat Pustaka Elemen.

Meningkatkan kedalaman overlap menambah jumlah node dan elemen yang dipertahankan oleh subdomain bersebelahan, sehingga meningkatkan penggunaan memori dan volume komunikasi. Tentukan nilainya dengan menyeimbangkan peningkatan konvergensi dan kenaikan biaya komputasi. Untuk pemilihan preconditioner, lihat Solver dan Preconditioner.

Penanganan Titik Kontak

Ketika membagi mesh yang memuat pasangan kontak, !PARTITION memungkinkan parameter CONTACT digunakan untuk menentukan kebijakan penempatan domain bagi titik kontak. Penempatan titik kontak memengaruhi stabilitas dan volume komunikasi analisis paralel yang melibatkan pencarian kontak dan kendala kontak.

Nilai Peran
DEFAULT Menggunakan kebijakan penempatan standar.
SIMPLE Menggunakan penempatan yang mendekati pembagian biasa tanpa memberikan bobot khusus pada titik kontak.
AGGREGATE Membagi sedemikian rupa sehingga node yang terkait dengan pasangan kontak cenderung dikelompokkan.
DISTRIBUTE Membagi agar node kontak sisi master tidak cenderung terkonsentrasi pada subdomain tertentu.

Untuk mesh tanpa kontak, parameter CONTACT umumnya tidak perlu diperhatikan. Jika konvergensi atau load balancing bermasalah pada analisis paralel yang melibatkan kontak, tinjau kebijakan penempatan titik kontak. Untuk rincian sintaks input, lihat !PARTITION.

Secara terpisah, parameter CONTACT_OWNER dapat digunakan untuk memilih skema kepemilikan bagi kontak paralel. CONTACT menentukan "bagaimana membagi", sedangkan CONTACT_OWNER menentukan "sisi mana yang bertanggung jawab setelah pembagian."

Nilai Peran
MASTER Skema master-owner (default). Permukaan master dibagi berdasarkan domain pemilik elemen, dan node slave direplikasi ke setiap domain pemilik master.
SLAVE Skema slave-owner. Setiap node slave dipertahankan hanya oleh domain pemiliknya, dan seluruh permukaan master ditempatkan dalam domain tersebut.

Untuk finite sliding (pada !CONTACT dengan INTERACTION=FSLID), ketika node slave melintasi batas pembagian domain pada permukaan master, skema MASTER dapat menghentikan pencarian ketetanggaan di batas tersebut, menyebabkan keadaan kontak dan riwayat gesekan hilang serta membuat solusi bergantung pada jumlah domain. Skema SLAVE menghindari masalah ini. Skema ini hanya dapat ditentukan ketika TYPE=NODE-BASED; penggunaan memori meningkat pada domain yang memiliki node slave.

Mengeluarkan Gambar Pembagian Domain

Dengan !PARTITION, menentukan parameter UCD akan menghasilkan file UCD untuk memeriksa hasil pembagian. File UCD dapat digunakan dengan alat visualisasi seperti MicroAVS untuk memeriksa nomor domain dan batas pembagian.

Setelah mengubah jumlah domain, metode pembagian, atau kedalaman overlap, penting untuk memeriksa ketidakseimbangan antar-domain hasil pembagian atau fragmentasi yang tidak alami. Output UCD adalah fungsi bantu untuk memverifikasi validitas pembagian sebelum menjalankan analisis paralel.

Topik Terkait