2015-10-21 3 views
0

Я устанавливаю h5py в соответствии с учебным пособием по адресу http://docs.h5py.org/en/latest/build.html . Установка завершена. Тем не менее, тест не пройден,Установка H5py с помощью setup.py, undefined symbol: iso_c_binding_

python setup.py test 

Я получил это:

running test 
running build_py 
running build_ext 
Summary of the h5py configuration 
Path to HDF5: '/opt/cray/hdf5-parallel/1.8.13/cray/83/' 
HDF5 Version: '1.8.13' 
MPI Enabled: True 
Rebuild Required: False 

Executing cythonize() 
Traceback (most recent call last): 
File "setup.py", line 140, in <module> 
cmdclass = CMDCLASS, 
File "/python/2.7.9/lib/python2.7/distutils/core.py", line 151, in setup  
dist.run_commands() 
File "/python/2.7.9/lib/python2.7/distutils/dist.py", line 953, in run_commands  
self.run_command(cmd) 
File "/python/2.7.9/lib/python2.7/distutils/dist.py", line 972, in run_command  
cmd_obj.run() 
File "setup.py", line 68, in run 
import h5py 
File "/h5py-2.5.0/build/lib.linux-x86_64-2.7/h5py/__init__.py", line 13, in <module> 
from . import _errors 
**ImportError:** /opt/cray/lib64/libmpichf90_cray.so.3: undefined symbol: iso_c_binding_ 

выглядит Cython не могу найти общую библиотеку, как я могу прикрепить это? Благодарю.

+4

Лично я хотел бы связаться с технической поддержкой вашего суперкомпьютера. Обычно они могут решить эти проблемы для вас. –

ответ

2

(под редакцией для параллельной сборки)

Я получил эту работу на 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 вместо этого как-то.

+0

Наконец, сдайте тест, большое спасибо, @AndyT. Я не знаю, что происходит, я чувствую, что не пропустил никаких шагов. Но, точно следуя вашим шагам, ошибка отсутствует. Благодарю. – Jaylin

+0

Рад, что он работает. Не забудьте принять ответ выше, если он решает проблему. – AndyT