2012-02-24 6 views
1

openmpi를 C : \ Program Files \ OpenMPI_v1.5.4-win32 \에 설치했으며 그래프 병렬 라이브러리를 생성하기 위해 boost를 컴파일하려고합니다. \ v2를 \ 사용자-config.jam를 구축 \ msvc 2010에서 boost MPI를 구축하는 중 오류가 발생했습니다.

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

내가 boost_1_48_0의 \ 도구의 MPI의 설정을 추가 :

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 

나는 비주얼 스튜디오 2010 명령 프롬프트에서 실행 :하지만 다음과 같은 오류가 발생했습니다 아래로 : 나는 믿고

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

이 비슷한 질문을하기 전에 물어하지만 대답은 없어되었습니다

01 당신이 괜찮다면 23,657,

답변

2

, 당신은 그런 다음 mpi.jam 파일에 일부 조정을 할 필요가 여기 https://www.microsoft.com/en-us/download/details.aspx?id=47259

에서 MS MPI 버전 6, downdload를 사용할 수 있습니다. boost 이전 버전의 경우, mpi.jam은 tools/build/v2/tools/폴더에 있으며 새로운 버전의 boost에는 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 ; 
} 
1

동일한 문제가 발생하여 Microsoft MPI로 해결했습니다. 1.61.0 및 Microsoft MPI v7.1 (https://www.microsoft.com/en-us/download/details.aspx?id=52981에서 사용 가능)을 사용합니다. SDK 및 MsMpi Setup을 다운로드하여 설치하십시오.

tools/build/src/tools에있는 mpi.jam 파일에 William이 제안한 것과 동일한 변경을했습니다.

나는 사용자 디렉토리에 위치되어야하는 사용자가 config.jam,에

using mpi ; 

명령을 추가했다. 그렇지 않으면 tools/build/src로 이동하여 거기에있는 user-config.jam 파일을 사용자 디렉토리로 이동하십시오. 추가 중

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

여러 오류가 발생합니다. 내가 공백없이 경로에서 파일을 찾을 경우 우선, 공백은 mpi.jam 파일이 이미 사용하고있는 오류 보고서에 이르게

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

처럼, 두 번째 .jam 파일에 허용되지 않습니다 다른 프로세스에 의해. qotation 표시를 경로에 추가하는 것도 도움이되지 않습니다. 그러나 추가 작업없이 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을 참조하십시오.

그게 나를 위해 해결되었습니다.

관련 문제