Итак, история гласит: мне нужна оболочка MPI для Python.
Я знаю, что есть mpi4py .Для текущей работы я (в основном) использую Python и Windows, я хотел бы использовать Microsoft HPC Cluster Pack, имеющий доступ к нескольким довольно «сильным» машинам, работающим под управлением Win 2008 Server.Просто упомяну, кроме Win-опыта, у меня есть немного опыта * nix с MPI и прочим, но это довольно спорный вопрос для этой проблемы.
Мой интерес к mpi4py возобновился, когда я столкнулся с Инструменты Python для Visual Studio .Это действительно классные вещи.Любой, кто является поклонником Visual Studio и Python, должен попробовать это.Хорошая работа и отличный отладчик.
На страницах документации PTVS говорится, что установка mpi4py проста ... и для ActiveState Python это похоже на правду.Однако, если вы не используете Python ActiveState и вместо этого используете «нормальный» дистрибутив Python из python.org, вам немного не повезло.
Моя машина для разработки - это ноутбук с 64-битной Win7 и Python 2.6, как в 64-битном, так и в 32-битном вариантах.Я установил MS HPC Pack 2008 R2 MS MPI и SDK.У меня Visual Studio 2008 и 2010, все покорно исправлено.
Нет бинарного установщика, и, зная, как Unix MPI могут быть чрезвычайно требовательны к версии MPI, с которой они связаны, я хотел создать свой собственный mpi4py.mpi4py в основном полагается на наличие MPI .dll (на самом деле .pyd), который связывает вызовы python с библиотеками MPI.
easy_install mpi4py и сборка этой библиотеки завершилась неудачно - невозможность указать на библиотеки MPI.Хорошо, нет проблем, я скачал tarball mpi4py, распаковал его и изменил файл mpi.cfg , чтобы он указывал на правильные папки:
# Microsoft MPI example
# ---------------------
[msmpi]
define_macros = MS_MPI=1
mpi_dir = $CCP_HOME
include_dirs = %(mpi_dir)s\Inc
libraries = msmpi
library_dirs = %(mpi_dir)s\lib\i386
Установщик MS MPI регистрируетпеременная окружения CCP_HOME, указывающая на точное место установки пакета.Название «CCP» должно быть оставлено с тех дней, когда оно называлось Microsoft Compute Cluster Pack.Должен передать это первоначальному разработчику mpi4py.
После этого компиляция проходит нормально, но я не могу связать - есть три неразрешенных внешних кода:
MPI.obj : error LNK2019: unresolved external symbol _MPI_Type_create_f90_integer@8 referenced in ...
MPI.obj : error LNK2019: unresolved external symbol _MPI_Type_create_f90_real@12 ...
MPI.obj : error LNK2019: unresolved external symbol _MPI_Type_create_f90_complex@12 ...
Кажется, что MSMPI msmpi.lib из HPC 2008 R2 не реализует их, поэтому я не могу собрать MPI.pyd.
Я мог бы попытаться закомментировать их в исходном файле mpi4py C, но я не думаю, чтоэто правильный путь.
Заранее спасибо!