并行程序设计基础——虚拟进程拓扑

2024-08-31 03:20

本文主要是介绍并行程序设计基础——虚拟进程拓扑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、虚拟拓扑

二、笛卡尔拓扑

1、MPI_CART_CREATE

2、MPI_DIMS_CREATE

3、MPI_TOPO_TEST

4、MPI_CART_GET

5、MPI_CART_RANK

6、MPI_CARTDIM_GET

7、MPI_CART_SHIFT

8、MPI_CART_COORDS

9、MPI_CART_SUB

10、MPI_CART_MAP


        简单的MPI通信,不要求参加通信的进程具有特殊的拓扑结构,但是在一些应用中,对进程具有一定的拓扑有很强的要求,定义不同的进程拓扑结构,可以使程序设计更加自然和更易于理解,同时这样的逻辑拓扑也为在相近的物理拓扑上的高效实现提供支持。

        从本节开始介绍如何定义和使用不同的进程拓扑,主要包括两种拓扑:①具有规则的网格现状的笛卡尔拓扑;②具有任意形状的图拓扑。目前应用较多的是笛卡尔拓扑。

一、虚拟拓扑

        在许多并行应用程序中,进程的线性排列不能充分地反映进程间在逻辑上的通信模型(通常由问题几何和所用的算法决定),进程经常被排列成二维或三维网格形式的拓扑模型,而且,通常用一个图来描述逻辑进程排列,在这里我们指这种逻辑进程排列为“虚拟拓扑”。拓扑是组内通信域上的额外、可选的属性,它不能附加在组间通信域上(inter-communicator)。拓扑能够提供一种方便的命名机制,对于有特定拓扑要求的算法使用起来直接、自然且方便,拓扑还可以辅助运行时系统,将进程映射到实际的硬件结构上。

        一个进程集合的通信模型可以由一个图表示,节点代表进程,边用来连接彼此之间通信的进程。用图来说明虚拟拓扑,对于所有的应用都是足够的。然而,在许多应用中图结构是规则的,而且详细的图的建立对于用户是不方便的,在运行时可能缺乏有效性。并行应用程序中的大部分使用像“环”、“二维”或更高维的网格、圆环这样的进程拓扑。这些结构完全由在每一相应坐标方向的维数和进程数来定义,可以用简单方便的笛卡尔坐标来表示。

        MPI提供两种拓扑,即笛卡尔拓扑和图拓扑,分别用来表示简单规则的拓扑和更通用的拓扑。

笛卡尔拓扑和图拓扑调用的简单对比
操作笛卡尔拓扑图拓扑
创建MPI_CART_CREATEMPI_GRAPH_CREATE
获得维数MPI_CARTDIM_GETMPI_GRAPHDIMS_GET
获得拓扑信息MPI_CART_GETMPI_GRAPH_GET
物理映射MPI_CART_MAPMPI_GRAPH_MAP

二、笛卡尔拓扑

1、MPI_CART_CREATE

这篇关于并行程序设计基础——虚拟进程拓扑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122745

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

hdu 1285(拓扑排序)

题意: 给各个队间的胜负关系,让排名次,名词相同按从小到大排。 解析: 拓扑排序是应用于有向无回路图(Direct Acyclic Graph,简称DAG)上的一种排序方式,对一个有向无回路图进行拓扑排序后,所有的顶点形成一个序列,对所有边(u,v),满足u 在v 的前面。该序列说明了顶点表示的事件或状态发生的整体顺序。比较经典的是在工程活动上,某些工程完成后,另一些工程才能继续,此时

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

[Linux]:进程(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 进程终止 1.1 进程退出的场景 进程退出只有以下三种情况: 代码运行完毕,结果正确。代码运行完毕,结果不正确。代码异常终止(进程崩溃)。 1.2 进程退出码 在编程中,我们通常认为main函数是代码的入口,但实际上它只是用户级

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显