Saat ini saya sedang mengembangkan metode dekomposisi domain untuk solusi dari masalah hamburan. Pada dasarnya saya memecahkan sistem Helmholtz BVP secara iteratif. Saya discretize persamaan menggunakan metode elemen hingga lebih dari segitiga atau tetrahedral jerat. Saya sedang mengembangkan kode menuju tesis Phd saya. Saya menyadari beberapa pustaka elemen hingga yang ada di luar sana seperti deal.ii atau DUNE dan meskipun saya pikir mereka hebat, dengan desain dan API yang menginspirasi, untuk tujuan pembelajaran saya ingin mengembangkan aplikasi kecil saya sendiri dari awal.
Saya berada pada titik di mana saya menjalankan versi serial saya dan sekarang saya ingin memparalelkannya. Bagaimanapun, ini adalah salah satu kekuatan kerangka dekomposisi domain untuk merumuskan algoritma yang mudah diparalelkan, setidaknya secara prinsip. Namun dalam praktiknya, ada banyak detail yang harus dipertimbangkan. Manajemen mesh adalah salah satunya. Jika aplikasi adalah untuk mencapai resolusi tinggi sambil scaling baik untuk banyak CPU replikasi dari seluruh jala pada setiap CPU tidak efisien.
Saya ingin bertanya kepada pengembang yang bekerja pada aplikasi serupa di lingkungan komputasi kinerja tinggi bagaimana mereka menangani masalah ini.
Ada p4est library untuk manajemen mesh terdistribusi. Saya tidak perlu AMR jadi mungkin ini berlebihan karena saya hanya tertarik menggunakan jerat yang seragam dan saya tidak yakin apakah bisa memperbaiki jerat segitiga. Saya juga bisa membuat mesh yang seragam lalu memasukkannya ke dalam salah satu partisi mesh dan melakukan beberapa pemrosesan postingan dari output.
Pendekatan paling sederhana tampaknya membuat file terpisah untuk setiap partisi yang berisi informasi mesh yang hanya relevan untuk partisi tertentu. File ini akan dibaca oleh satu CPU yang akan bertanggung jawab untuk perakitan sistem diskrit pada bagian mesh tersebut. Tentu saja, beberapa konektivitas global partisi / informasi lingkungan juga perlu disimpan dalam file yang dibaca oleh semua CPU untuk komunikasi antar proses.
Apa pendekatan lain di luar sana? Jika beberapa dari Anda dapat berbagi, apa saja metodologi yang biasa digunakan dalam industri, atau lembaga penelitian pemerintah yang terkait dengan penanganan masalah ini? Saya cukup baru dalam memprogram pemecah elemen hingga paralel dan saya ingin merasakan apakah saya memikirkan masalah ini dengan benar dan bagaimana orang lain mendekatinya. Setiap saran atau petunjuk untuk artikel penelitian yang relevan akan sangat dihargai!
Terima kasih sebelumnya!