python - h5py 未针对 mpi4py 正确构建

标签 python build h5py mpi4py

我正在尝试针对 mpi4py 构建 h5py。我的目的是能够在多个处理器之间共享文件。 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?

最佳答案

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

  2. python setup.py 构建

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

  4. 导出 PYTHONPATH=$PYTHONPATH:/wheretoinstall_h5py

您可能还需要预安装 cython

关于python - h5py 未针对 mpi4py 正确构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32667244/

相关文章:

python - 提高 SQLAlchemy 的性能?

javascript - webpack 为什么要构建 global.js?

Python 和 SQL 批量插入

python - 如何使用python检查字符串中的字母是否大写?

python - 如果数据冗余,重用预建字典的有效方法是什么?深拷贝太慢

c - "make clean"结果 "No rule to make target ` 干净 '"

android - Cordova 无法构建项目

python - 为什么读取整个 hdf5 数据集比读取切片更快

Python字典太满还是其他原因?

c - 如何读取 h5py 在 C 中创建的 hdf5 bool 枚举