python - 关于 mpi4py Scatter large arrays 的问题
问题描述
我正在尝试使用 mpi4py 分散大型 numpy 数组。python代码片段如下所示
import numpy as np
from mpi4py import MPI
comm = MPI.COMM_WORLD
size = comm.Get_size()
rank = comm.Get_rank()
assert size == 32
multi_dm = None
multi_gas = None
dm_split = np.empty((512*512/32, 1024), dtype=np.float64)
gas_split = np.empty((512*512/32, 1024), dtype=np.float64)
if (rank == 0):
dm_temp = np.random.normal(0.0, 1.0, (512, 512, 1024)
gas_temp = np.random.normal(0.0, 1.0, (512, 512, 1024)
indexes = np.where(dm_temp[:,:,0]>-1.0)
multi_dm = np.zeros( (512*512, 1024), dtype=np.float64)
multi_gas = np.zeros( (512*512, 1024), dtype=np.float64)
multi_dm = dm_temp[indexes]
multi_gas = gas_temp[indexes]
del dm_temp
del gas_temp
comm.Scatter(multi_dm, dm_split, root=0)
comm.Scatter(multi_gas, gas_split, root=0)
输入后mpiexec -n 32 ipython some_name.py
,它给了我如下所示的错误消息。
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 36749 RUNNING AT super
= EXIT CODE: 11
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions
我应该怎么做才能解决这个问题?
解决方案
推荐阅读
- webrtc - 如何使用在surfaceview上完成的Agora Video Calling远程视频的MLKIT?
- security - 在允许的图像上报告内容安全策略违规
- python - 关于操作 RRD/XML 文件以在 windows 上与 pandas/python 一起使用的建议
- python - 使用前一行的值根据 groupby 在 df 中插入行
- apache-kafka - kafka connect kinesis 连接器无法启动
- sql-server - Equal 运算符上的 SQL SERVER 和 NULL 值
- python - 为什么 numba 会破坏此功能?
- c# - 无法使用 c# 批准对 WSUS 中的组的更新
- python - 如何为每个班级和小组生成单独的小提琴图
- flutter - Flutter Camera 录制的视频与浏览器不兼容 - 如何转换为 .mp4?