Я пытаюсь использовать MPI с языком программирования D. D полностью поддерживает C ABI и может связываться с любым кодом C и вызывать его. Я сделал очевидный материал и перевел заголовок MPI на D. Затем я перевел тестовую программу из Википедии в D. Я скомпилировал ее с помощью следующую команду:
dmd test.d -L-lmpistubs
Он работает, когда я просто запускаю ./test
и печатает:
0: We have 1 processors
Однако, когда я запускаю с mpiexec -n 8 test
, он ничего не печатает. Я понимаю, что для исполняемых файлов MPI требуется множество странных ссылок, поэтому для автоматизации процесса используются инструменты типа mpicc
. Тем не менее, это не помогает мне, если я пытаюсь использовать MPI в D. Я предполагаю это, потому что я не использую параметры правильного компоновщика. Может кто-нибудь, пожалуйста, скажите мне, что делает mpicc
и как я могу заставить DMD сделать то же самое?
Изменить: я нашел ответ, используя mpicc -showme
. Это показывает, какие команды mpicc
переходят на gcc
. Однако я также понял, что неправильно сделал перевод заголовка. Следующий вопрос: Как это сделать правильно.