Có một chút kỳ lạ khi bạn đề cập đến điều này trong bối cảnh đặt hàng tin nhắn. Trích dẫn bạn:
Theo như tôi hiểu, thứ tự mà các tin nhắn MPI điểm-điểm không chặn (Isend và Irecv) được nhận phù hợp với thứ tự chúng được gửi.
Điều đáng nói ở đây là Bộ KH & ĐT chỉ đảm bảo rằng các thông điệp phù hợp giữa các quy trình sẽ được nhận theo thứ tự chúng được gửi. Bạn thực sự không muốn loại đặt hàng này thay đổi, bởi vì nó làm cho mã của bạn dễ hiểu hơn và giảm bớt gánh nặng lớn cho bạn với tư cách là lập trình viên ứng dụng.
Tuy nhiên, nếu bạn đã gửi tin nhắn với các thẻ khác nhau, điều đó sẽ thay đổi tiêu chí phù hợp và bạn có thể dễ dàng nhận được tin nhắn thứ hai trước số thứ nhất. Xem ví dụ thứ hai trong phần có liên quan của tiêu chuẩn để biết chi tiết. Tôi hy vọng rằng nếu bạn có hai đoạn mã được gửi đồng thời rằng bạn đã tách các thông điệp thô và tốt bằng cách sử dụng các thẻ và không cố gắng thực hiện một số giao thức của riêng bạn khi đặt hàng tin nhắn. Đây là bản chất thứ hai đối với hầu hết các lập trình viên MPI mà tôi biết.
Dù sao, giả sử bạn đang làm điều đó, có lẽ bạn lo ngại rằng các tin nhắn chi tiết có khối lượng lớn sẽ làm tắc nghẽn mạng của bạn khi bạn muốn gửi những tin nhắn thô. Lời khuyên chung của tôi về vấn đề này là nếu đó không phải là vấn đề về hiệu suất mà bạn thực sự có thể đo lường ngay bây giờ, thì bạn thực sự không nên bận tâm giải quyết nó. Bạn dường như xác nhận rằng đó không phải là một vấn đề trong một trong những ý kiến trên.
Một giải pháp khả thi mà bạn có thể cân nhắc là sử dụng một tập thể không chặn (NBC) như Bcast hoặc Barrier để thông báo cho mọi người rằng giai đoạn thô đã được thực hiện và sẵn sàng gửi giải pháp của nó. Trong tất cả khả năng, lưu lượng truy cập NBC sẽ không được ưu tiên, nhưng các quy trình được thông báo ít nhất có thể dừng gửi gobs các giải pháp tốt cho đến khi việc gửi thô được thực hiện. NBC sẽ ở MPI-3 hoặc bạn có thể thử sử dụng libNBC nếu bạn không thể đợi lâu như vậy.
Mặc dù vậy, một lần nữa, điều này có vẻ như rất nhiều công việc cho một cái gì đó không có vẻ như đó là một vấn đề hiệu suất.