Tôi đang cố gắng song song một chương trình C bằng cách sử dụng OpenMP.Sự khác biệt giữa OpenMP luồng riêng tư và riêng tư
Tôi muốn biết thêm về:
- Sự khác biệt giữa threadprivate chỉ thị và mệnh đề tin và
- Trong đó trường hợp chúng ta phải sử dụng bất kỳ trong số họ.
Theo như tôi biết, sự khác biệt là phạm vi toàn cầu với threadprivate và giá trị được bảo tồn trên các vùng song song. Tôi tìm thấy trong một số ví dụ rằng khi một đoạn mã chứa một số biến toàn cầu/tĩnh phải được tư nhân hóa, các biến này được bao gồm trong danh sách threadprivate và giá trị ban đầu của chúng được sao chép vào các bản sao riêng tư bằng cách sử dụng copyin.
Tuy nhiên, có quy tắc nào ngăn chúng tôi sử dụng mệnh đề riêng tư để xử lý các biến toàn cầu/tĩnh không? có lẽ bất kỳ chi tiết thực hiện nào?
Tôi không thể tìm thấy bất kỳ lời giải thích nào trong đặc tả OpenMP3.0.
Cảm ơn bạn đã trả lời nhanh và liên kết! Vì vậy, tôi có thể kết luận những điều sau đây?: 1) Trong trường hợp tôi cần tư nhân hóa dữ liệu tự động, tôi nên sử dụng mệnh đề ** riêng ** và 2) Trong trường hợp tôi cần tư nhân hóa dữ liệu phạm vi toàn cầu, phạm vi toàn cầu; Tôi nên sử dụng chỉ thị ** threadprivate **. –
@ L30nardoSV: Ý của bạn là gì với "dữ liệu tự động"? –
Tôi có nghĩa là biến địa phương. –