ขณะนี้ฉันกำลังพัฒนาวิธีการแยกส่วนโดเมนสำหรับการแก้ปัญหาการกระเจิง โดยทั่วไปฉันกำลังแก้ไขระบบของ Helmholtz BVP ซ้ำ ๆ ฉันยกเลิกสมการโดยใช้วิธีไฟไนต์เอลิเมนต์เหนือตาข่ายสามเหลี่ยมหรือเตตราฮีด ฉันกำลังพัฒนารหัสเพื่อวิทยานิพนธ์ของฉัน ฉันรู้ว่ามีไลต์อิลิเมนต์ไลบรารี่บางตัวที่มีอยู่เช่น deal.ii หรือ DUNE และถึงแม้ว่าฉันคิดว่ามันยอดเยี่ยมด้วยการออกแบบที่สร้างแรงบันดาลใจและ API เพื่อการเรียนรู้ฉันต้องการพัฒนาแอปพลิเคชันเล็ก ๆ
ฉันอยู่ในจุดที่ฉันมีรุ่นอนุกรมของฉันทำงานและตอนนี้ฉันต้องการขนานพวกเขา ท้ายที่สุดแล้วมันเป็นหนึ่งในจุดแข็งของกรอบการสลายตัวของโดเมนเพื่อกำหนดอัลกอริทึมที่ง่ายต่อการขนานอย่างน้อยก็ในหลักการ อย่างไรก็ตามในทางปฏิบัติมีรายละเอียดมากมายที่เราต้องพิจารณา การจัดการตาข่ายเป็นหนึ่งในนั้น หากแอพพลิเคชั่นนั้นต้องการความละเอียดสูงในขณะที่ปรับขนาดให้กับซีพียูจำนวนมากการจำลองแบบของ mesh ทั้งหมดใน CPU ทุกตัวนั้นไม่มีประสิทธิภาพ
ฉันต้องการถามนักพัฒนาเหล่านั้นที่ทำงานในแอปพลิเคชันที่คล้ายกันในสภาพแวดล้อมการคำนวณประสิทธิภาพสูงว่าพวกเขาจัดการกับปัญหานี้อย่างไร
มีไลบรารี p4est สำหรับการจัดการเครือข่ายแบบกระจาย ฉันไม่ต้องการ AMR ดังนั้นอาจเป็น overkill เพราะฉันสนใจที่จะใช้ตาข่ายแบบเดียวและฉันไม่แน่ใจว่ามันสามารถปรับแต่งตาข่ายแบบสามเหลี่ยมได้หรือไม่ ฉันสามารถสร้างตาข่ายแบบเดียวจากนั้นป้อนเข้าไปในหนึ่งในตัวแบ่งพาร์ติชันและทำการประมวลผลบางส่วนของผลลัพธ์
วิธีที่ง่ายที่สุดดูเหมือนว่าจะสร้างไฟล์แยกต่างหากสำหรับแต่ละพาร์ติชันที่มีข้อมูลตาข่ายที่เกี่ยวข้องกับพาร์ติชันนั้นเท่านั้น ไฟล์นี้จะถูกอ่านโดยซีพียูตัวเดียวซึ่งจะต้องรับผิดชอบในการประกอบระบบแยกในส่วนของตาข่ายนั้น แน่นอนว่าข้อมูลการเชื่อมต่อ / พื้นที่ใกล้เคียงพาร์ติชันทั่วโลกบางอย่างอาจจำเป็นต้องเก็บไว้ในไฟล์ที่ซีพียูทั้งหมดอ่านเพื่อการสื่อสารระหว่างกระบวนการ
มีวิธีอื่นใดอีกบ้าง? หากคุณบางคนสามารถแบ่งปันวิธีการที่ใช้กันทั่วไปในอุตสาหกรรมหรือสถาบันวิจัยของรัฐบาลที่เกี่ยวข้องกับการจัดการปัญหานี้คืออะไร ฉันค่อนข้างใหม่ในการเขียนโปรแกรมตัวแก้องค์ประกอบ จำกัด แบบขนานและฉันต้องการที่จะรู้สึกว่าฉันกำลังคิดเกี่ยวกับปัญหานี้อย่างถูกต้องหรือไม่และคนอื่นกำลังเข้าใกล้มันอย่างไร คำแนะนำหรือคำแนะนำเกี่ยวกับบทความวิจัยที่เกี่ยวข้องจะได้รับการชื่นชมอย่างมาก!
ขอบคุณล่วงหน้า!