【转载】 Parallel Computing in Python using mpi4py

原地址:

https://research.computing.yale.edu/sites/default/files/files/mpi4py.pdf

 

 

 

 

 

 

 

 

 

 

=============================================

 

 

 

说明:

本文只摘录了部分因为比较重点的部分内容,如要查阅全部请关注原地址:

https://research.computing.yale.edu/sites/default/files/files/mpi4py.pdf

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

感觉效果比较好的就是下面的对通信的集合操作的图解,刚一看比较懵,细一看发现还比较形象。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=====================================================

 

 

 

示例代码:

复制代码
import numpy as np
from mpi4py import MPI


def rbind(comm, x):
    return np.vstack(comm.allgather(x))


comm = MPI.COMM_WORLD

x = np.arange(4, dtype=np.int) * comm.Get_rank()
a = rbind(comm, x)

print(a)
复制代码

 

 

复制代码
import numpy as np
from mpi4py import MPI


def rbind2(comm, x):
    size = comm.Get_size()
    m = np.zeros((size, len(x)), dtype=np.int)
    comm.Allgather([x, MPI.INT], [m, MPI.INT])
    return m


comm = MPI.COMM_WORLD

x = np.arange(4, dtype=np.int) * comm.Get_rank()
a = rbind2(comm, x)

print(a)
复制代码

 

 

 

 

 

复制代码
import numpy as np
import math
from mpi4py import MPI


comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()

x = range(20)
m = int(math.ceil(float(len(x)) / size))
x_chunk = x[rank*m:(rank+1)*m]
r_chunk = map(math.sqrt, x_chunk)
r = comm.allreduce(list(r_chunk))

if rank == 0:
    print(len(r), r)
复制代码

 

posted on   Angry_Panda  阅读(67)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示