Làm thế nào để lắp ráp và giải quyết một hệ thống ma trận song song từ các giá trị được tạo ra trong các bộ xử lý khác nhau?


10

Tôi đang giải quyết một vấn đề đa biến bằng cách sử dụng Phương pháp đa biến không đồng nhất (HMM) . Về cơ bản, quy trình cụ thể của tôi sử dụng quy trình lặp sau:

  1. Giải quyết nhiều hệ thống ma trận cục bộ.
  2. Tính toán một giá trị quan tâm từ các giải pháp của các hệ thống địa phương.
  3. Lắp ráp một hệ thống ma trận toàn cầu từ các "giá trị quan tâm" cục bộ
  4. Giải quyết hệ thống ma trận toàn cầu
  5. Sử dụng giải pháp của hệ thống ma trận toàn cầu để hình thành các hệ thống ma trận cục bộ mới.

Lặp lại cho đến khi một số tiêu chí hội tụ được đáp ứng.

Vì có nhiều hệ phương trình tuyến tính (độc lập) cục bộ và nhiều hệ thống có thể phù hợp với bộ nhớ RAM cục bộ, tôi cho rằng tốt nhất là tải nhiều hệ thống "cục bộ" vào mỗi bộ xử lý và giải quyết từng hệ thống ( xem câu hỏi được đăng này ).

Câu hỏi của tôi liên quan đến chiến lược tốt nhất để lắp ráp và giải quyết hệ thống ma trận toàn cầu. Trong trường hợp cụ thể của tôi, hệ thống ma trận toàn cầu đủ nhỏ để có thể phù hợp hoàn toàn với bộ nhớ RAM của bất kỳ bộ xử lý nào. Hơn nữa, ma trận cục bộ và toàn cầu không thay đổi kích thước giữa các lần lặp. Vì vậy, tôi thấy trước một trong ba chiến lược có thể:

  1. Tập hợp các "giá trị quan tâm" vào một bộ xử lý và lắp ráp / giải quyết hệ thống ma trận toàn cầu theo tuần tự trên một bộ xử lý.
  2. Sao chép các giá trị quan tâm vào mọi bộ xử lý và lắp ráp / giải quyết cùng một hệ thống ma trận toàn cầu trên mỗi bộ xử lý.
  3. Giả sử rằng mỗi bộ xử lý sở hữu "giá trị quan tâm" cần thiết để tạo ra các khối liền kề của ma trận toàn cầu, sau đó chúng ta có thể lắp ráp các phân vùng của ma trận toàn cục cục bộ, sau đó giải quyết chúng song song.

Tôi có thể thấy một số ưu điểm / nhược điểm của từng phương pháp. Trong Phương pháp 1, không có giao tiếp là cần thiết trong giai đoạn giải quyết, nhưng giao tiếp đến và từ bộ xử lý gốc có thể trở thành nút cổ chai (đặc biệt là ở quy mô). Phương pháp 2 có thể yêu cầu nhiều giao tiếp giữa các bộ xử lý hơn để lắp ráp ma trận toàn cầu so với phương thức đầu tiên, nhưng không cần giao tiếp trong giai đoạn giải quyết hoặc trong giai đoạn lắp ráp ma trận cục bộ tiếp theo. Phương pháp 3 không yêu cầu giao tiếp giữa các bộ xử lý để lắp ráp các ma trận cục bộ hoặc toàn cầu, nhưng yêu cầu nó trong giai đoạn giải quyết.

Giả sử rằng mỗi hệ thống cục bộ theo thứ tự x và có x hệ thống ma trận cục bộ. Chúng ta hãy giả sử rằng hệ thống ma trận toàn cầu có kích thước x . Theo các giả định này, một trong ba chiến lược đã nói ở trên có thể sẽ dẫn đến một giải pháp nhanh hơn của hệ thống toàn cầu? Có chiến lược ánh xạ nào khác cho ma trận toàn cầu có thể hoạt động nhanh hơn trên mỗi lần lặp không?10 3 10 3 10 3 10 3 10 3103103103103103103


Câu hỏi rất thú vị. Tôi hy vọng ai đó có câu trả lời tốt.
Thắc mắc

Bạn có ý tưởng về hệ thống toàn cầu lớn như thế nào trong mối quan hệ với các hệ thống địa phương không? Tức là, nếu có hệ thống cục bộ cần giải quyết, hệ thống toàn cầu có phải là cho số không? Bạn có một ý tưởng cho lớn như thế nào ? Các câu trả lời cho câu hỏi của bạn có thể phụ thuộc nhiều vào kích thước. k n × k n k n nnkn×knkn
Bill Barth

@BillBarth: Giả sử n theo thứ tự và chúng tôi muốn k ngày càng lớn hơn. 106
Paul

Vì vậy, câu trả lời cho câu hỏi đầu tiên của tôi là "có"? Và bạn muốn đến mức nào? Tức là, cuối cùng bạn sẽ trích xuất một triệu tham số từ các hệ thống cục bộ, hay nó sẽ ở mức tương đối nhỏ so với ? Làm thế nào lớn là các hệ thống địa phương? Cuối cùng, tất cả các hệ thống dày đặc hơn hay thưa thớt? nkn
Bill Barth

@BillBarth: Hiện tại, giả sử và ma trận toàn cầu sẽ chỉ trích xuất một tham số từ mỗi hệ thống tuyến tính. Kích thước của các hệ thống cục bộ có thể khác nhau từ trong đó n là kích thước của ma trận toàn cầu và tất cả các hệ thống tuyến tính (cục bộ và toàn cầu) đều thưa thớt, đối xứng, xác định dương và chiếm ưu thế theo đường chéo. O ( n )k<100O(n)
Paul

Câu trả lời:


4

Tôi không nghĩ có bất kỳ trường hợp nào bạn muốn giải quyết ở hạng 0. Giải quyết dự phòng hầu như luôn luôn tốt hơn vì, đối với những điều nhỏ nhặt, allreduce có hiệu quả như giảm và tính toán dự phòng chỉ có một thay vì hai.

Tuy nhiên, việc tính toán dự phòng trên tất cả các nút, hoặc trên một tập hợp con, hoặc các tập hợp con dự phòng phụ thuộc vào kích thước phần cứng và hệ thống. Vì vậy, bạn nên có một hệ thống có thể làm bất kỳ trong số họ. PCREDUNDANT trong PETSc có thể giải quyết dư thừa trên tất cả các quy trình, một số quy trình hoặc tập hợp con của các quy trình song song.

Nhưng nếu vấn đề toàn cầu có kích thước như bạn tuyên bố trong các bình luận, thì nó đủ lớn để hưởng lợi đáng kể từ một giải pháp song song. Lắp ráp song song là rất nhiều kịch bản tiêu chuẩn và khuyến nghị.106


N=4096
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.