(под редакцией для параллельной сборки)
Я получил эту работу на Cray XC30 (ARCHER: http://www.archer.ac.uk), используя следующие:
module swap PrgEnv-cray PrgEnv-gnu
module load cray-hdf5-parallel
export CRAYPE_LINK_TYPE=dynamic
export CC=cc
ARCHER имеет специальные модули для Python Enviroment на вычислительные узлы, которые ссылаются на исполняемые версии numpy и т. д. (см.: http://www.archer.ac.uk/documentation/user-guide/python.php), поэтому я также загрузил их (это может не примениться к вашей системе Cray, в случае ARCHER mpi4py уже добавлен в python-вычисление insta Л.Л.):
module load python-compute
module load pc-numpy
Наконец, я добавил пользовательские места установки я буду использовать для h5py в PYTHONPATH
export PYTHONPATH=/path/to/h5py/install/lib/python2.7/site-packages:$PYTHONPATH
Теперь я могу построить:
python setup.py configure --mpi
python setup.py install --prefix=/path/to/h5py/install
...lots of output...
Теперь, бег испытания на узел frontend не работает, но с сообщением об ошибке, которое я ожидаю увидеть на Cray XC, если вы попытаетесь запустить код MPI на узле входа/обслуживания (не удалось инициализировать канал связи, узлы входа/обслуживания не подключены к высокопроизводительная сеть, поэтому нельзя запускать MPI-код). Это говорит о том, что тест, вероятно, будет работать, если он работает на вычислительных узлах.
> python setup.py test
running test
running build_py
running build_ext
Autodetected HDF5 1.8.13
********************************************************************************
Summary of the h5py configuration
Path to HDF5: '/opt/cray/hdf5-parallel/1.8.13/GNU/49'
HDF5 Version: '1.8.13'
MPI Enabled: True
Rebuild Required: False
********************************************************************************
Executing cythonize()
[Thu Oct 22 19:53:01 2015] [unknown] Fatal error in PMPI_Init_thread: Other MPI error, error stack:
MPIR_Init_thread(547):
MPID_Init(203).......: channel initialization failed
MPID_Init(579).......: PMI2 init failed: 1
Aborted
Чтобы правильно проверить вы должны представить работу, которая запустила параллельный сценарий Python на вычислительных узлах, используя aprun. Я не думаю, что встроенная тестовая среда будет работать легко, так как она, вероятно, ожидает, что панель запуска MPI будет называться mpiexec (как на стандартном кластере), поэтому вам, возможно, придется написать свои собственные тесты. Другим вариантом было бы заставить setup.py использовать aprun вместо этого как-то.
Лично я хотел бы связаться с технической поддержкой вашего суперкомпьютера. Обычно они могут решить эти проблемы для вас. –