Tôi hiện đang phát triển một phương pháp phân rã miền cho giải pháp cho vấn đề tán xạ. Về cơ bản, tôi đang giải quyết một hệ thống các Helmholtz BVPs lặp đi lặp lại. Tôi phân biệt các phương trình bằng phương pháp phần tử hữu hạn trên các lưới tam giác hoặc tứ diện. Tôi đang phát triển mã hướng tới luận án tiến sĩ của tôi. Tôi biết một số thư viện phần tử hữu hạn hiện có như deal.ii hoặc DUNE và mặc dù tôi nghĩ chúng rất tuyệt, với thiết kế và API đầy cảm hứng, vì mục đích học tập tôi muốn phát triển ứng dụng nhỏ của riêng mình từ đầu.
Tôi đang ở thời điểm mà tôi có các phiên bản nối tiếp của mình đang chạy và bây giờ tôi muốn song song hóa chúng. Xét cho cùng, đó là một trong những thế mạnh của khung phân rã miền để hình thành các thuật toán dễ song song, ít nhất là về nguyên tắc. Trong thực tế, có nhiều chi tiết người ta phải xem xét. Quản lý lưới là một trong số đó. Nếu các ứng dụng là để đạt được độ phân giải cao trong khi nhân rộng tốt cho nhiều CPU, thì việc sao chép toàn bộ lưới trên mỗi CPU là không hiệu quả.
Tôi muốn hỏi những nhà phát triển làm việc trên các ứng dụng tương tự trong môi trường điện toán hiệu năng cao về cách họ giải quyết vấn đề này.
Có thư viện p4est để quản lý lưới phân tán. Tôi không cần AMR vì vậy nó có thể là quá mức vì tôi chỉ quan tâm đến việc sử dụng các lưới đồng nhất và tôi không chắc liệu nó có thể tinh chỉnh các lưới tam giác hay không. Tôi cũng có thể chỉ cần tạo một lưới đồng nhất sau đó đưa nó vào một trong các phân vùng lưới và thực hiện một số xử lý bài của đầu ra.
Cách tiếp cận đơn giản nhất dường như tạo một tệp riêng cho mỗi phân vùng chứa thông tin lưới chỉ liên quan đến phân vùng cụ thể đó. Tập tin này sẽ được đọc bởi một CPU duy nhất chịu trách nhiệm lắp ráp hệ thống riêng biệt trên phần lưới đó. Tất nhiên, một số thông tin vùng lân cận / kết nối phân vùng toàn cầu cũng sẽ cần được lưu trữ trong một tệp được đọc bởi tất cả các CPU để liên lạc giữa các quá trình.
Những cách tiếp cận khác đang ở ngoài kia? Nếu một số bạn có thể chia sẻ, một số phương pháp thường được sử dụng trong ngành hoặc các tổ chức nghiên cứu của chính phủ liên quan đến việc xử lý vấn đề này là gì? Tôi còn khá mới mẻ khi lập trình một bộ giải phần tử hữu hạn song song và tôi muốn cảm nhận liệu tôi có nghĩ đúng về vấn đề này hay không và cách người khác tiếp cận nó. Bất kỳ lời khuyên hoặc gợi ý cho các bài viết nghiên cứu có liên quan sẽ được đánh giá rất cao!
Cảm ơn trước!