问题标签 [mpi4py]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 NumPy 在 MPI4Py 中发送和接收结构化数组数据
我正在尝试使用 NumPy 中的结构化数组在 MPI4Py 中发送和接收数据。以下是我的数组结构:
我正在使用 Sendrecv 方法来交换数据,如下所示:
但是当调用通信方法时出现异常:
它在使用只有一种数据类型(例如,所有字节)的数组时有效。MPI4Py 无法发送这些结构化数组,还是我做错了什么?
python - Python:使用 mpi4py 发送不连续的数据
我有一个维度为 (N,M) 的 C 有序矩阵
其中我想通过持久 MPI 请求将一列发送到另一个节点。但是,使用mpi4py
,
由于切片不连续而失败。有人可以建议一种解决方法吗?我相信 CMPI_Type_vector
允许stride
在创建类型时指定 a 。我怎样才能做到这一点mpi4py
?
python - 如何删除 openmpi 进程的内存限制?
我正在运行一个具有 mpirun 和 2 个内核的进程,当我在两个进程之间混合值时,它会被杀死。这两个进程都使用了大约 15% 的机器内存,即使混合时内存会增加,但仍然应该有足够的内存。所以我假设用于在进程之间传递消息的内存量是有限制的。我如何找出这个限制是什么以及如何删除它?
当 mpirun 死亡时,我收到的错误消息是:
这是导致错误的代码位:
该代码通常有效,它只会遇到大量数据的问题,这使得我在进程之间交换的矩阵的大小增加
python - Hello_World 没有在 Cluster:II 上使用 mpi4py
再次尝试在本地集群上学习 mpi4py。因此,我编写了一个 hello_world 程序,但它不会运行!我附上了 .py 代码和错误。有人可以指出我做错了什么吗?提前致谢。
你好世界:
错误信息:
python - 尽管 MPICC 安装正确且工作正常,但安装 mpi4py 时出现 MPICC 错误
我已经在 Ubuntu 12.04 上成功安装了 MPICH,并且可以让简单的测试 C 程序按预期编译和运行。
现在我正在尝试使用 pip 安装 mpi4py,只需通过pip install mpi4py
. 我第一次执行sudo apt-get build-dep python-mpi4py
,效果很好。
我正在使用 virtualenv,所以这个 mpi4py 安装不使用 sudo(也不应该)。
这是我在冗长的控制台输出看起来像正常编译的东西之后遇到的命令和错误(如果需要,我可以打印所有控制台输出,但我认为其中大部分是标准编译器警告,表明没有问题)。
但是,which mpicc
给出了预期的结果:/usr/bin/mpicc
如上所述,如果我用它mpicc
来编译简单的 .c 测试程序,它们可以正常工作。
我已经看到一些描述fPIC
用于编译 MPI 的标志选项的链接,但是,我只是使用 apt-get 来安装 MPI,并且特别希望这些工具只依赖本机 Ubuntu 包,而不是维护单独的安装说明来手动构建它们.
如何确定安装过程mpicc
中失败的原因?mpi4py
添加
控制台输出中的以下内容似乎是导致问题的编译命令。
当我自己从命令行尝试时,这会出现以下错误:
python - 使用 mpi4py 在 n 个 procs (x>>n) 中拆分 x 个任务
我想通过 mpi4py 在一些处理器之间拆分大量单独的任务。下面的例子可以说明我的意图:
至于我用 len(v)==number of procs 执行它,一切都很好。但是例如当 v=random.random((100,3)) 它显然不起作用。这通常是如何实现的?
提前致谢。
send - 尝试发送大数据时 mpi4py 挂起
我最近遇到了一个问题,尝试使用 mpi4py 库中的“发送”命令在多个处理器之间共享大数据。即使是 1000x3 的 numpy 浮点数组也太大而无法发送。任何想法如何克服这个问题?
提前谢谢。
pickle - 尝试发送课程时出现 mpi4py Pickling 错误
我使用 mpi4py 在几个 procs 之间拆分一些计算。基本上我只是计算一些凸包的体积,我使用 tvtk 和 mayavi 创建。
只有第一个 proc 导入这些库:
然后,我尝试在所有 proc 之间共享对象 mlab 和 tvtk:
以下步骤看起来像......
但是,显然不可能发送实例/类(或任何 mlab 和 tvtk ),因为我总是收到以下错误:
有没有办法在所有 procs 之间“共享”实例 mlab 和 tvtk?
编辑:简短的例子;你能让这个工作吗?
serialization - mpi4py:替换内置序列化
我想用 dill 替换 MPI4PY 的内置Pickle
序列化。根据文档, _p_Pickle 类应该有 2 个名为dumps
和的属性loads
。但是,当我尝试以下操作时,python 说没有这样的属性
-> AttributeError:类型对象“mpi4py.MPI._p_Pickle”没有属性“转储”
去哪儿dumps
了loads
?
python - 使用 mpi4py Bcast 发送大矩阵时断言失败错误
我正在使用 python 和 mpi4py 在计算集群上运行并行代码。我收到以下错误:
我输入了打印语句以查看它发生在哪里,当我尝试将一个大矩阵(14x14x217)从一个进程广播到总共 32 个进程中的另一个进程时,它就会发生。当我运行测试产生较小的矩阵 14x14x61 时,代码运行良好。以下是代码的相关部分(期间发生错误comm.Bcast
):
我发现以下内容:http ://listarc.com/showthread.php?4387119-Assertion+failure和mpi4py 在尝试发送大数据时挂起,这表明可以在进程之间发送的数据存在一定的大小限制。我是否正确地认为我的错误是由于数据传输的大小达到了某些限制?如果是这样,为什么它只发生在 theBcast
而不是 other Send
/Recv
通信期间,因为所涉及的矩阵几乎相同大小?