Automatic options prefix creation not safe in presence of objects on multiple communicators

Đang mở
#8 4 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
python
Lĩnh vực
distributed-systems

Hướng nghiên cứu

Bắt đầu bằng cách xác định phần triển khai của OptionsManager và cách nó tạo các tiền tố tự động, sau đó lần theo việc sử dụng communicator nội bộ và cơ sở dữ liệu tùy chọn của nó. Tái hiện các số lượng options-manager khác nhau giữa các rank và xác minh rằng các tiền tố vẫn nhất quán một cách tập thể đối với các đối tượng được quản lý trên mỗi communicator.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

The options manager produces, if the user does not provide one, a "unique" options prefix by incrementing a class-level counter.

If two ranks diverge and one of them makes more options managers than the other, this prefix will get out of sync.

This goes against the petsc model that PetscObjectSetOptionsPrefix is collective.

I think the reason it has never bitten is that in practice the options prefix only needs to agree locally with the names we shove in the options database.

To fix this, the OptionsManager could take the internal communicator, which would have a attribute attached that stores the count. Now you get collectively consistent counts, however, multiple communicators might have counts in the same state. I think this shouldn't matter because the optionsmanager only ever manages the options for a single object.

Ngôn ngữ chính
Python
Star
4
Fork
1
Merge trung bình
2 ngày 18 giờ
Pull request đã merge (30 ngày)
1

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của firedrakeproject/petsctools

Tất cả issue của firedrakeproject/petsctools

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.