D プログラミング言語で MPI を使用しようとしています。D は C ABI を完全にサポートし、任意の C コードとリンクして呼び出すことができます。私は明白なことを行い、MPI ヘッダーを D に変換しました。次に、テスト プログラムを Wikipediaから D に変換しました。次のコマンドでコンパイルしました。
dmd test.d -L-lmpistubs
を実行するだけで機能し、次のよう./test
に出力されます。
0: We have 1 processors
ただし、で実行するとmpiexec -n 8 test
、何も出力されません。私の理解では、MPI 実行可能ファイルには一連の奇妙なリンク オプションが必要ですmpicc
。そのため、プロセスを自動化するためのツールが存在します。ただし、D で MPI を使用しようとしている場合、これは役に立ちません。適切なリンカー オプションを使用していないためだと思います。mpicc
DMDに同じことをさせる方法と方法を教えてください。
編集: を使用して答えを見つけましたmpicc -showme
。これは、どのコマンドmpicc
が に転送されるかを示していますgcc
。ただし、ヘッダー ファイルの変換が間違っていることにも気付きました。次の質問: どのようにそれを正しく行うか.