码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MPI: 虚拟拓扑和近邻通信


    Process Topologies & Neighborhood Communication

    MPI通信域(Communicator)由进程组(Group of Processes)组成,进程组内进程从0开始按自然顺序依次被赋予唯一编号(rank),rank相当于本进程在组中的唯一身份(ID). MPI保证通信域内的任意进程对(i,j)之间,可以互相发送数据,整个进程内的所有进程组成一个连接图: 图中的顶点代表进程,顶点之间有边连接,所有的边是双通道的(即可发送数据,也可接收数据), 节点也可以给自身发送数据。

    对于有些并行应用,自然的进程编号不是便利的,用户可以在已有的通信域上定义适合本身应用的进程之间链接关系(拓扑):每个进程定义自己的上下游数据交换进程,计算中可以和这些上下游进程进行数据交换。

    虚拟拓扑是定义在通讯域上的进程命名规则。MPI实现中用一个图(graph)表示进程之间的连接关系: 图的节点(node)代表进程,有方向的边(edge)代表节点之间的连接关系,节点和节点之间可有多条有向边,每条边附有权重。


    概念
    名词解释备注
    虚拟拓扑(virtual topology)
    物理进程映射(physical mapping)

    拓扑类型
    拓扑类型解释备注
    Cartesian多维规则Grid网格、hypercube或tori
    Graph有向图Graph。边是有方向的,不一定是对称的:(i,j)边存在不保证(j,i)边存在;边有权重;两个顶点之间可有多条边连接
    Distributed Graph和Graph相同,边带权重的有向图

    函数
    • 生成函数

      函数解释备注
      MPI_CART_CREATE
      MPI_GRPAH_CREATE每个进程提供一致的全局图信息:顶点、边,进程和进程之间可以有多条边存在
      MPI_DIST_GRAPH_CREATE_ADJACENT定义本进程的上游(incoming,source)和下游(outgoing,dest)进程,可包含自身,每条边(edge)可定义权重
      MPI_DIST_GRAPH_CREATE每个进程定义图的一部分信息,每条边定义权重,带权重的多边超图
    • 查询函数

      函数解释备注
    • 近邻collective通信(Neighborhood Communication on Process Topologies)

      函数解释备注
      MPI_NEIGHBOR_ALLGATHER
      MPI_NEIGHBOR_ALLGATHERV
      MPI_NEIGHBOR_ALLTOALL
      MPI_NEIGHBOR_ALLTOALLV
      MPI_NEIGHBOR_ALLTOALLW允许发送接收不同数据类型(different datatypes)

      每个函数对应一个非阻塞版本(Nonblocking Neighborhood Communication),和长连接函数(Persistent Neighborhood Communication)

      请添加图片描述
      请添加图片描述
      请添加图片描述
      请添加图片描述
      请添加图片描述


    参考资料
    • MPI 4.0.x文档(MPICH)
    • mpi40-report: 8 ProcessTopologies
    • MPI 3.0 Neighbourhood Collectives
    • MPI-3 学习笔记(三):混合编程与邻居集合通信
  • 相关阅读:
    python的re正则表达式
    PMP每日一练 | 考试不迷路-11.02(包含敏捷+多选)
    重点问题!CPU利用率过高排查思路|原创
    高维数组是如何通过底层连续存储实现的?
    CSS学习笔记
    从零开始Blazor Server(8)--增加菜单以及调整位置
    二十三种设计模式全面解析-从线程安全到创新应用:探索享元模式的进阶之路
    一文搞懂《前后端动态路由权限》
    在Ubuntu上安装并运行DeepProbLog的简单过程
    系统迁移从CentOS7.9到Rocky8.9
  • 原文地址:https://blog.csdn.net/weixin_42849849/article/details/128169034
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号