Şu anda saçılma probleminin çözümü için bir alan ayrıştırma yöntemi geliştiriyorum. Temel olarak tekrar tekrar bir Helmholtz BVP sistemi çözüyorum. Üçgensel veya dört yüzlü ağlar üzerinde sonlu elemanlar yöntemi kullanarak denklemleri ayırıyorum. Doktora tezimin kodunu geliştiriyorum. Orada deal.ii veya DUNE gibi mevcut sonlu eleman kütüphanelerinden bazılarının farkındayım ve ilham verici tasarım ve API ile harika olduklarını düşünmeme rağmen, öğrenme amacıyla kendi küçük uygulamamı sıfırdan geliştirmek istedim.
Seri sürümlerimin çalıştığı bir noktadayım ve şimdi bunları paralelleştirmek istiyorum. Sonuçta, en azından prensipte, paralel hale getirilmesi kolay algoritmalar formüle etmek, alan ayrıştırma çerçevesinin güçlü yönlerinden biridir. Ancak uygulamada, dikkate alınması gereken birçok detay vardır. Mesh yönetimi bunlardan biridir. Uygulamalar birçok CPU'ya iyi ölçeklendirilirken yüksek çözünürlük elde edilecekse, tüm CPU'ların tamamının çoğaltılması verimsizdir.
Yüksek performanslı bilgi işlem ortamlarında benzer uygulamalar üzerinde çalışan geliştiricilere bu sorunla nasıl başa çıktıklarını sormak istedim.
Dağıtılmış ağ yönetimi için p4est kütüphanesi vardır. AMR'ye ihtiyacım yok, bu yüzden sadece üniforma kafesleri kullanmakla ilgileniyorum ve üçgen kafesleri rafine edip edemeyeceğinden emin değilim. Ayrıca, tek tip bir ağ oluşturabilir ve daha sonra ağ bölmelerinden birine besleyebilir ve çıktının sonradan işlenmesini yapabilirim.
En basit yaklaşım, her bir bölüm için yalnızca söz konusu bölümle ilgili ağ bilgilerini içeren ayrı bir dosya oluşturuyor gibi görünmektedir. Bu dosya, ayrık sistemin ağın o kısmına montajından sorumlu olacak tek bir CPU tarafından okunacaktır. Tabii ki, bazı küresel bölüm bağlantısı / mahalle bilgilerinin süreçler arası iletişim için tüm CPU'lar tarafından okunan bir dosyada saklanması gerekir.
Orada başka hangi yaklaşımlar var? Bazılarınız paylaşabildiyse, sektörde ya da devlet araştırma kurumlarında bu sorunun ele alınmasıyla ilgili yaygın olarak kullanılan yöntemlerden bazıları nelerdir? Paralel bir sonlu eleman çözücü programlamakta oldukça yeniyim ve bu problemi doğru düşünüp düşünmediğimi ve başkalarının ona nasıl yaklaştığını düşünmek istedim. İlgili araştırma makalelerine yönelik herhangi bir tavsiye veya işaretçi çok takdir edilecektir!
Şimdiden teşekkürler!