h5py неправильно собран против mpi4py

Я пытаюсь собрать h5py против mpi4py. Моя цель - иметь возможность совместно использовать файл между несколькими процессорами. h5py установлен в системе, но, вероятно, не со ссылкой на mpi4py. Фактически, когда я запускаю следующий пример сценария:

from mpi4py import MPI
import h5py

rank = MPI.COMM_WORLD.rank  # The process ID (integer 0-3 for 4-process run)

f = h5py.File('parallel_test.hdf5', 'w', driver='mpio', comm=MPI.COMM_WORLD)

dset = f.create_dataset('test', (4,), dtype='i')
dset[rank] = rank

f.close()

Я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "h5py_example.py", line 6, in <module>
    f = h5py.File('parallel_test.hdf5', 'w', driver='mpio', comm=MPI.COMM_WORLD)
  File "/usr/local/lib/python2.7/site-packages/h5py/_hl/files.py", line 259, in __init__
    fapl = make_fapl(driver, libver, **kwds)
  File "/usr/local/lib/python2.7/site-packages/h5py/_hl/files.py", line 61, in make_fapl
    kwds.setdefault('info', mpi4py.MPI.Info())
NameError: global name 'mpi4py' is not defined

Я попытался построить h5py следующим образом:

python setup.py build --mpi --hdf5=/opt/local/

но это дает мне следующую проблему:

error: option --mpi not recognized

Я также безуспешно пробовал установку с помощью homebrew и pip (надеясь, что mpi4py был связан автоматически).

Как правильно установить параллельный h5py?


person Helios83    schedule 19.09.2015    source источник
comment
У меня была такая же проблема с пакетами, установленными из apt. Это также должно решаться сопровождающими.   -  person user1603472    schedule 28.06.2016


Ответы (1)


  1. python setup.py configure --mpi --hdf5=/path_parallel_hdf5_lib/

  2. python setup.py build

  3. python setup.py install --prefix=/wheretoinstall_h5py

  4. export PYTHONPATH=$PYTHONPATH:/wheretoinstall_h5py

Вам также может понадобиться предварительно установить cython

person Jaylin    schedule 19.10.2015
comment
Это может быть очевидно (я не знаю Python), но можете ли вы объяснить, почему ОП должен использовать «настроить» вместо «сборки»? - person BSMP; 20.10.2015
comment
не могли бы вы сообщить шаги установки с самого начала? Я скачал архив tar с hdf5. - person Helios83; 20.10.2015
comment
Извините, я имел в виду, что вы должны отредактировать ту информацию, которую вы только что прокомментировали для Helios83, в свой ответ. - person BSMP; 20.10.2015
comment
@BSMP, хорошо, конечно (мой первый пост в stackoverflow) - person Jaylin; 20.10.2015
comment
#Jaylin какие хорошие варианты для wheretoinstall_h5py? я на маке - person Helios83; 21.10.2015
comment
на данный момент, после того, как я выполнил процедуру и попытался импортировать h5py, у меня возникла следующая проблема: ImportError: dlopen(/Users/me/Downloads/h5py-2.5.0/build/lib.macosx-10.10-x86_64-2.7/h5py /defs.so, 2): символ не найден: _H5Fget_mpi_atomicity - person Helios83; 21.10.2015
comment
Привет @Helios83, если вы попробуете на Mac, почему бы не использовать Anaconda, docs.h5py.org /en/latest/build.html, включить все очень просто. - person Jaylin; 21.10.2015
comment
@ Helios83, ошибка показывает, что вам нужна параллельная библиотека hdf5, установленная как общая библиотека. Это занимает много времени, чтобы установить на Mac. для «wheretoinstall_h5py» у меня нет предпочтений, вы можете создать другого директора в разделе «Документы», скажем, /Users/me/Documents/Projects/h5py-install. (Я все еще рекомендую вам попробовать Anaconda, я использовал ее на Mac, единственная причина, по которой я хочу установить H5py отдельно, это то, что я хочу изменить ее исходные коды, вы знаете, что библиотека еще не идеальна) - person Jaylin; 21.10.2015
comment
@Jaylin, не похоже, что сборки анаконды настроены для MPI. - person DilithiumMatrix; 10.11.2015