我正在尝试基于mpi4py模块编写一个简单的python脚本。我的脚本生成文件列表,并通过scatter命令将每个文件发送到不同的进程。 被调用的程序将打开,读取并返回每个文件的内容。 但是,当我将脚本运行为“ mpirun -np 4 python main.py /home/roberto/prog2.py”时 我收到以下错误:
[cli_0]: Command cmd=put kvsname=kvs_19767_0 key=sharedFilename[0] value=/dev/shm/mpich_shar_tmpZlYmCm
failed, reason='duplicate_keysharedFilename[0]'
Fatal error in PMPI_Init_thread: Other MPI error, error stack:
MPIR_Init_thread(392).....:
MPID_Init(139)............: channel initialization failed
MPIDI_CH3_Init(38)........:
MPID_nem_init(196)........:
MPIDI_CH3I_Seg_commit(337): PMI_KVS_Put returned -1
进行一些测试,我观察到它可归因于prog2中导入的hdf5库。它针对MPI进行编译,并且与mpi4py在主脚本中调用的MPI冲突。如果我从进口中删除它,它会起作用!无论如何,我需要在脚本中使用它。有什么建议吗?是否可以从脚本内部从MPI取消链接hdf5?
谢谢。