1

openmpiをC:\ Program Files \ OpenMPI_v1.5.4-win32 \にインストールし、boostをコンパイルしてグラフ並列ライブラリを作成したいと思います。しかし、次のエラーが発生しました。

The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
MPI auto-detection failed: unknown wrapper compiler C:/Program Files/OpenMPI_v1.
5.4-win32/bin/mpic++.exe
Please report this error to the Boost mailing list: http://www.boost.org
You will need to manually configure MPI support.
MPI launcher: mpirun -np

Visual Studio 2010コマンドプロンプトで実行した場合:

b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=32 stage --debug-configuration

以下のように、boost_1_48_0 \ tools \ build \ v2\user-config.jamにMPI構成を追加しました。

using mpi : "C:/Program Files/OpenMPI_v1.5.4-win32/bin/mpic++.exe" ;

私はこの同様の質問が以前に尋ねられたと信じていますが、答えはありません:

VisualStudio2010を使用してWindowsでOpenMPIを使用してboost::mpiライブラリを構築する方法

4

2 に答える 2

2

よろしければ、MS MPI v6 を使用して、https: //www.microsoft.com/en-us/download/details.aspx?id=47259 からダウンロードしてください。

次に、mpi.jam ファイルを調整する必要があります。古いバージョンのブーストでは、mpi.jam はフォルダー tools/build/v2/tools/ にあり、新しいバージョンのブーストでは、tools/build/src/tools/ にあります。

248 行あたりで、次の調整を行う必要があります。MS により、API を HPC と分離します。

local win_ms_mpi_sdk = "C:\\Program Files (x86)\\Microsoft SDKs\\MPI" ;
local win_ms_mpi = "C:\\Program Files\\Microsoft MPI" ;

#local cluster_pack_path_native = "C:\\Program Files\\Microsoft Compute Cluster Pack" ;
#local cluster_pack_path = [ path.make $(cluster_pack_path_native) ] ;
if [ GLOB $(win_ms_mpi_sdk)\\Include : mpi.h ]
{
  if $(.debug-configuration)
  {
    ECHO "Found Microsoft Compute Cluster Pack: $(cluster_pack_path_native)" ;
  }

  # Pick up either the 32-bit or 64-bit library, depending on which address
  # model the user has selected. Default to 32-bit.
  options = <include>$(win_ms_mpi_sdk)/Include 
            <address-model>64:<library-path>$(win_ms_mpi_sdk)/Lib/x64
            <library-path>$(win_ms_mpi_sdk)/Lib/x86
            <find-static-library>msmpi
            <toolset>msvc:<define>_SECURE_SCL=0
          ;

  # Setup the "mpirun" equivalent (mpiexec)
  .mpirun = "\"$(win_ms_mpi)\\Bin\\mpiexec.exe"\" ;
  .mpirun_flags = -n ;
}
于 2015-09-17T16:25:16.587 に答える
1

同じ問題に遭遇し、Microsoft MPI で解決しました。私はブースト 1.61.0 と Microsoft MPI v7.1 ( https://www.microsoft.com/en-us/download/details.aspx?id=52981で入手可能) を使用しています。SDK と MsMpi セットアップをダウンロードしてインストールします。

ウィリアムが提案したのと同じ変更を、tools/build/src/tools にある mpi.jam ファイルに加えました。

私は追加しました

using mpi ;

コマンドを user-config.jam に追加します。このファイルは、ユーザー ディレクトリに配置する必要があります。それ以外の場合は、tools/build/src に移動し、そこにある user-config.jam ファイルをユーザー ディレクトリに移動します。追加する

using mpi : C:\\Program Files\\Microsoft MPI\\Bin\\mpiexec.exe ;

複数のエラーにつながります。まず第一に、.jam ファイルでは空白を使用できません。次に、次のように空白のないパスにファイルを配置すると、

using mpi : C:\\MicrosoftMPI\\Bin\\mpiexec.exe ;

mpi.jam ファイルが別のプロセスで既に使用されているというエラー レポートが表示されます。パスに引用符を追加しても役に立ちません。しかし、using mpi;追加なしで、ステートメントで機能しました。

MPI SDK インクルード、Lib、および MPI Bin ディレクトリがパス環境変数にリストされていることを確認してください。

次のステップは、boost.MPI をビルドすることです。ブースト ルート ディレクトリでコマンド プロンプトを開き、目的のパラメーターと --with-mpi を指定して bjam を呼び出します。variant=debug または variant=release フラグを指定するように注意してください。指定しないと名前衝突エラーが発生します。(詳細はこちらhttp://lists.boost.org/boost-build/2009/12/22854.php )。

それが私にとってそれを解決したものです。

于 2016-08-30T17:25:10.263 に答える