Tôi đang cố gắng sử dụng MPI với ngôn ngữ lập trình D. D hỗ trợ đầy đủ cho C ABI và có thể liên kết với và gọi bất kỳ mã C nào. Tôi đã làm những thứ rõ ràng và dịch header Bộ KH & ĐT để D. sau đó tôi dịch a test program from Wikipedia để D. Tôi biên dịch nó với lệnh sau đây:MPI và D: Tùy chọn liên kết
dmd test.d -L-lmpistubs
Nó hoạt động khi tôi chỉ cần chạy ./test
, và in:
0: We have 1 processors
Tuy nhiên, khi tôi chạy với mpiexec -n 8 test
, nó in gì cả. Sự hiểu biết của tôi là thực thi MPI yêu cầu một loạt các tùy chọn liên kết lạ, đó là lý do tại sao các công cụ như mpicc
tồn tại để tự động hóa quy trình. Tuy nhiên, điều này không giúp tôi nếu tôi đang cố gắng sử dụng MPI trong D. Tôi cho rằng đó là vì tôi không sử dụng các tùy chọn liên kết phù hợp. Ai đó có thể cho tôi biết số mpicc
và cách tôi có thể thực hiện DMD không?
Chỉnh sửa: Tôi đã tìm thấy câu trả lời bằng cách sử dụng mpicc -showme
. Điều này cho thấy các lệnh mpicc
chuyển tiếp đến gcc
. Tuy nhiên, tôi cũng nhận ra rằng tôi đã dịch sai phần đầu trang. Câu hỏi tiếp theo: How do to it right.
bạn có sử dụng extern (C) khi bạn đang dịch không? –
bạn đã thử chạy 'strace -f mpicc test.c' hoặc một cái gì đó như thế, để tìm các tùy chọn liên kết? Tôi cho rằng nó đang gọi 'ld' hoặc một cái gì đó như một tiến trình con. – gmfawcett