我使用MPI(mpi4py)脚本(在单个节点上),它与一个非常大的对象一起使用.为了让所有进程都可以访问该对象,我通过comm.bcast()分发它.这会将对象复制到所有进程并占用大量内存,尤其是在复制过程中.因此,我想分享像指针而不是对象本身.我发现memoryview中的一些功能对于增强进程内对象的工作非常有用.对象的实际内存地址也可以通过memoryview对象字符串表示来访问,并且可以像这样分发:

from mpi4py import MPI

comm = MPI.COMM_WORLD

rank = comm.Get_rank()

if rank:

content_pointer = comm.bcast(root = 0)

print(rank, content_pointer)

else:

content = ''.join(['a' for i in range(100000000)]).encode()

mv = memoryview(content)

print(mv)

comm.bcast(str(mv).split()[-1][: -1], root = 0)

这打印:

1 0x7f362a405048

2 0x7f362a405048

...

这就是为什么我认为必须有一种方法可以在另一个过程中重建对象.但是,我在文档中找不到有关如何操作的线索.

简而言之,我的问题是:是否可以在mpi4py中的同一节点上的进程之间共享对象?

mpi4py linux例子,python-3.x – mpi4py中的共享内存相关推荐

  1. Linux 进程间通讯(IPC)方式 ------- 共享内存

    Linux 进程间通讯(IPC)方式有以下几种: 1->管道(pipe)和有名管道(fifo). 2->消息队列 3->共享内存 4->信号量 5->信号(signal) ...

  2. cuda合并访问的要求_在 CUDA C / C ++ 中使用共享内存

    在 上一篇文章 中,我研究了如何将一组线程访问的全局内存合并到一个事务中,以及对齐和跨步如何影响 CUDA 各代硬件的合并.对于最新版本的 CUDA 硬件,未对齐的数据访问不是一个大问题.然而,不管 ...

  3. ngx_lua模块中的共享内存字典项API

    在ngx_lua模块中使用共享内存字典项相关API的前提条件是已经使用lua_shared_dict命令定义了一个字典项对象,该命令的具体用法为: 语法:lua_shared_dict <nam ...

  4. Linux访问其他进程空间,Linux环境进程间通信系列(五):共享内存

    共享内存可以说是最有用的进程间通信方式,也是最快的 IPC 形式.两个不同进程 A . B 共享内存的意思是,同一块物理内存被映射到进程 A . B 各自的进程地址空间.进程 A 可以即时看到进程 B ...

  5. Linux环境进程间通信系列(五):共享内存

    共享内存(上) 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式.两个不同进程A.B共享内存的意思是,同一块物理内存被映射到进程A.B各自的进程地址空间.进程A可以即时看到进程B对共享内存 ...

  6. Linux C 进程间的IPC通信 之 共享内存(二)

    1.父子进程(有亲缘关系)的IPC通信 int shmid;       shmid = shmget(IPC_PRIVATE, 128, IPC_CREAT | 0777); //创建共享内存,参数 ...

  7. linux进程间通信快速入门【二】:共享内存编程(mmap、XSI、POSIX)

    文章目录 mmap内存共享映射 XSI共享内存 POSIX共享内存 参考 使用文件或管道进行进程间通信会有很多局限性,比如效率问题以及数据处理使用文件描述符而不如内存地址访问方便,于是多个进程以共享内 ...

  8. php 共享内存列队,php中对共享内存,消息队列的操作

    消息队列中的数据同样受到大小的约束,具体约束范围可通过msg_stat_queue的msg_qbytes看到.这段代码唯一有点小改动的地方就在接受消息时,指定了MSG_IPC_NOWAIT,不然如果目 ...

  9. linux 进程间通信及makefile 无名管道/有名管道/共享内存/信号/消息队列

    http://www.voidcn.com/article/p-hxvuiypm-mr.html https://www.cnblogs.com/wuyida/archive/2013/02/03/6 ...

  10. Linux 3.进程间通信(shmget shmat shmdt shmctl 共享内存、signal signaction sigqueue 信号、semget semctl semop 信号量)

    Linux 3.进程间通信(IPC) 共享内存 共享内存的接口指令 shmget 创建获取获取共享内存 shmat 映射:连接共享内存到当前进程的地址空间 shmdt 断开与共享内存的连接 shmct ...

最新文章

  1. 奥比中光2022春季校园招聘全面启动!
  2. phoenix数据类型,语法,方法
  3. springcloud gateway 自定义 accesslog elk
  4. eq值 推荐算法_C++实现十种排序算法
  5. transformer学习
  6. css-适配布局类型-流式布局-响应式布局
  7. pillow 初级用法
  8. everything 全盘文件查找工具及正则表达式的使用
  9. 关于联想oem系统激活方法尝试
  10. 锐起无盘服务器设置教程,“锐起无盘XP”教程安装调试教程
  11. 这个神器5秒20个爆款标题,关键还免费,做自媒体不会写标题?
  12. 教你如何实现网页自由!
  13. 公告抄袭我文章的掘金账号:[freesan44](https://juejin.cn/user/1063982986970984) 和公众号:小集
  14. MNIST手写体数字识别数据集
  15. 这100 个网络基础知识,看完成半个网络高手
  16. 佐治亚大学计算机科学与工程,2019上海软科世界一流学科排名计算机科学与工程专业排名佐治亚大学排名第401-500...
  17. 爬取虎扑社区-晒晒照片
  18. ID/cpu/MI卡、非接触式读卡器资料集合
  19. java计算机毕业设计线上文具销售系统源程序+mysql+系统+lw文档+远程调试
  20. Redis Geospatial地理位置

热门文章

  1. 目标检测第4步:显卡、GPU、CUDA、cuDNN的介绍及如何在Windows 10下安装cuDNN?
  2. 涉及子模块_COMSOL Multiphysics 5.6 RF模块更新详解
  3. java分布式会话redis_详解springboot中redis的使用和分布式session共享问题
  4. python编程制作接金币游戏_一个简单的pygame接金币游戏
  5. php 获取系统环境变量,java读取操作系统环境变量
  6. eview面板数据之混合回归模型_【视频教程】Eviews系列25|面板数据回归分析之Hausman检验及本章常见问题解答...
  7. python split函数 空格_python上手--10行代码读懂红楼梦
  8. Php公钥加密data是空,php 生成加密公钥加密私钥实例详解
  9. 逆序对java_逆序对
  10. python3.6安装dlib,一直不成功的解决办法