Недавно потребовалось накидать windows програмку под MPI, и мне конечно же захотелось воспользоватся boost'ом, точнее его обёрткой boost.mpi. Однако путь этот оказался сложным и тернистым и именно поэтому я оставлю здесь эту заметку, надеюсь кому-нибуть она сэкономит и время и нервы.
В качестве реализации MPI мы будем использовать Windows MPI (т.к. с попытками подружить Boost с OpenMPI и MPICH2 был очень плачевный опыт).
1. Качаем и устанавливаем Windows MPI
2. Качаем Boost (я использовал 1.55), распаковывамем и подготавливаем его к сборке. Для этого открываем файл \tools\build\v2\user-config.jam и в самый конец вписываем строку:
using mpi ;
Теперь открываем tools\build\v2\tools\mpi.jam и фиксим путь к Windows MPI, для этого находим
local cluster_pack_path_native = "C:\\Program Files\\Microsoft Compute Cluster Pack" ;
и меняем на путь к вашей библиотеке
local cluster_pack_path_native = "C:\\Program Files\\Microsoft MPI" ;
Это необходимо делать, так как при сборке автопоиск MPI в бусте использует путь к старым версиям ms mpi
3. Компилируем Boost.mpi или весь Boost, как вам удобнее. Вот например конфиг для компиляции только статических библиотек boost.mpi (и их зависимостей) под Visual Studio:
call .\bootstrap.bat
.\b2.exe --with-mpi^
stage --stagedir=stage32 ^
toolset=msvc ^
variant=debug ^
link=static ^
threading=multi ^
runtime-link=static
.\b2.exe --with-mpi^
stage --stagedir=stage32 ^
toolset=msvc ^
variant=release ^
link=static ^
threading=multi ^
runtime-link=static
.\b2.exe --with-mpi^
stage --stagedir=stage64 ^
toolset=msvc ^
variant=debug ^
link=static ^
threading=multi ^
runtime-link=static ^
address-model=64
.\b2.exe --with-mpi^
stage --stagedir=stage64 ^
toolset=msvc-10.0 ^
variant=release ^
link=static ^
threading=multi ^
runtime-link=static ^
address-model=64
4. Профит
P.S. не забываем подключать в проект библиотеку msmpi.lib и пути к заголовочным файлам mpi
В качестве реализации MPI мы будем использовать Windows MPI (т.к. с попытками подружить Boost с OpenMPI и MPICH2 был очень плачевный опыт).
1. Качаем и устанавливаем Windows MPI
2. Качаем Boost (я использовал 1.55), распаковывамем и подготавливаем его к сборке. Для этого открываем файл \tools\build\v2\user-config.jam и в самый конец вписываем строку:
using mpi ;
Теперь открываем tools\build\v2\tools\mpi.jam и фиксим путь к Windows MPI, для этого находим
local cluster_pack_path_native = "C:\\Program Files\\Microsoft Compute Cluster Pack" ;
и меняем на путь к вашей библиотеке
local cluster_pack_path_native = "C:\\Program Files\\Microsoft MPI" ;
Это необходимо делать, так как при сборке автопоиск MPI в бусте использует путь к старым версиям ms mpi
3. Компилируем Boost.mpi или весь Boost, как вам удобнее. Вот например конфиг для компиляции только статических библиотек boost.mpi (и их зависимостей) под Visual Studio:
call .\bootstrap.bat
.\b2.exe --with-mpi^
stage --stagedir=stage32 ^
toolset=msvc ^
variant=debug ^
link=static ^
threading=multi ^
runtime-link=static
.\b2.exe --with-mpi^
stage --stagedir=stage32 ^
toolset=msvc ^
variant=release ^
link=static ^
threading=multi ^
runtime-link=static
.\b2.exe --with-mpi^
stage --stagedir=stage64 ^
toolset=msvc ^
variant=debug ^
link=static ^
threading=multi ^
runtime-link=static ^
address-model=64
.\b2.exe --with-mpi^
stage --stagedir=stage64 ^
toolset=msvc-10.0 ^
variant=release ^
link=static ^
threading=multi ^
runtime-link=static ^
address-model=64
4. Профит
P.S. не забываем подключать в проект библиотеку msmpi.lib и пути к заголовочным файлам mpi
Комментариев нет:
Отправить комментарий