MPI и D: параметры компоновщика

Я пытаюсь использовать MPI с языком программирования D. D полностью поддерживает C ABI и может связываться с любым кодом C. Я сделал очевидные вещи и перевел заголовок MPI на D. Затем я перевел тестовую программу из Википедии на D. Я скомпилировал ее с помощью следующей команды:

dmd test.d -L- lmpistubs

Это работает, когда я просто запускаю ./ test и выводит:

0: У нас 1 процессор

Однако, когда я запускаю с mpiexec -n 8 test , ничего не печатает. Насколько я понимаю, исполняемые файлы MPI требуют множества странных параметров связывания, поэтому для автоматизации процесса существуют такие инструменты, как mpicc . Однако это не помогает мне, если я пытаюсь использовать MPI в D. Я предполагаю, что это потому, что я не использую правильные параметры компоновщика. Кто-нибудь может рассказать мне, что делает mpicc и как я могу заставить DMD делать то же самое?

Редактировать: Я нашел ответ с помощью mpicc -showme . Здесь показано, какие команды mpicc пересылают в gcc . Однако я также понял, что неправильно сделал перевод файла заголовка. Следующий вопрос: Как это сделать правильно.

10
задан Community 23 May 2017 в 12:09
поделиться