Với truyền thông tập thể khu vực MPI3.0 đã được giới thiệu. Và 2 trong số đó (MPI_NEIGHBOR_ALLTOALLW
và MPI_INEIGHBOR_ALLTOALLW
) chuyển vị trí (sdispls
và rdispls
) là các mảng const MPI_Aint
. Ngược lại, cách thức tương tự, nhưng tập thể, funcion (MPI_ALLTOALLW
và MPI_ALLTOALLW
) được xác định bằng các dấu nháy của const int
.MPI_Aint trong MPI_ (I) NEIGHBOR_ALLTOALLW() vs int trong MPI_ (I) ALLTOALLW()
Cũng xem xét những gì các v3.0 MPI tiêu chuẩn nói về MPI_Aint (trang 16):
2.5.6 Địa chỉ
Một số thủ tục MPI sử dụng đối số địa chỉ đại diện cho một địa chỉ tuyệt đối trong sự kêu gọi chương trình. Kiểu dữ liệu của đối số như vậy là MPI_Aint trong C và INTEGER (KIND = MPI_ADDRESS_KIND) trong Fortran. Các loại này phải có cùng chiều rộng và mã hóa các giá trị địa chỉ theo cách tương tự sao cho giá trị địa chỉ bằng một ngôn ngữ có thể được chuyển trực tiếp sang ngôn ngữ khác mà không cần chuyển đổi. Có hằng số MPI MPI_BOTTOM để cho biết sự bắt đầu của dải địa chỉ.
tôi vẫn không nắm được vấn đề, và nếu tồn tại, sự khác biệt (ngoài mà MPI_Aint
không thể phủ định) giữa int
và MPI_Aint
!
Với câu trả lời và kích thước của bạn (MPI_Aint) hiện tại là 8, cảm ơn :) p.s: Nhưng tại sao giải thích này không có trong tiêu chuẩn? – Nicola
Thông thường những điều như vậy được thảo luận trong danh sách gửi thư công khai và diễn đàn thảo luận của [Diễn đàn MPI] (http://www.mpi-forum.org/). –
Tiêu chuẩn MPI không có nghĩa là hướng dẫn sử dụng, ngay cả khi nó xuất hiện như vậy. Xem sách "Sử dụng MPI" để được giải thích. – Jeff