并行计算
haoke_cn
这个作者很懒,什么都没留下…
展开
-
C++并行计算 MPI Tutorial-9
目录通讯器概述使用多个通讯器的示例其他通讯器创建方法组概述使用 MPI groups使用组的例子参考在以前的所有教程中,我们都使用通讯器 MPI_COMM_WORLD。对于简单的应用程序,这已经足够了,因为我们的进程数量相对较少,并且通常要么一次要与它们之一对话,要么一次要与所有进程对话。当应用程序开始变大时,这变得不那么实用了,我们可能只想一次与几个进程进行对话。在本课程中,我们将展示如何创建新的通讯器 ,以便一次与原始进程组的子集进行通讯。通讯器概述对于简单的应用程序,使用 MPI_COMM_W原创 2020-09-27 20:35:49 · 1809 阅读 · 0 评论 -
C++ 并行计算 MPI Tutorial-8
目录reduce 介绍MPI_Reduce使用 MPI_Reduce 计算数字平均值MPI_Allreduce使用MPI_Allreduce 计算标准差参考reduce 介绍规约 Reduce 是函数式编程中的经典概念。数据规约 涉及通过函数将一组数字简化为较小的一组数字。例如,假设我们有一个数字列表 [1、2、3、4、5] 。用 sum 函数 此数字列表规约 将产生 sum([1、2、3、4、5])=15。类似地,乘法规约将产生 multiply([1、2、3、4、5]) = 120。就像您想象的原创 2020-09-27 18:55:22 · 760 阅读 · 0 评论 -
C++ 并行计算 MPI Tutorial-7
目录使用 MPI 进行并行排名-问题总览并行排名-API 定义解决并行排名问题排序数字并维护所有者功能整合运行并行排名算法参考使用 MPI 进行并行排名-问题总览当所有进程都在其本地内存中存储一个数字时,了解它们相对于所有进程包含的整个数字集的编号顺序是很有用的。例如,用户可能正在对MPI群集中的处理器进行基准测试,并想知道每个处理器相对于其他处理器的速度顺序。此信息可用于安排任务等。可以想象,如果所有其他数字分布在各个进程中,那么很难在所有其他数字的背景下找出它们的顺序。这个并行排名问题,就是我原创 2020-09-27 17:12:24 · 358 阅读 · 0 评论 -
C++ 并行计算 MPI Tutorial-6
目录MPI_Scatter 的介绍MPI_Gather 的介绍使用 MPI_Scatter 和 MPI_Gather 来计算平均数参考MPI_Scatter 的介绍MPI_Scatter 是一个跟 MPI_Bcast 类似的集体通信机制。MPI_Scatter 的操作会设计一个指定的根进程,根进程会将数据发送到 communicator 里面的所有进程。MPI_Bcast 和 MPI_Scatter 的主要区别很小但是很重要。MPI_Bcast 给每个进程发送的是同样的数据,然而 MPI_Scatte原创 2020-09-27 15:32:45 · 858 阅读 · 1 评论 -
C++ 并行计算 MPI Tutorial-5
目录MPI 广播和集体通信集体通信以及同步点使用 MPI_Bcast 来进行广播使用 MPI_Send 和 MPI_Recv 来做广播MPI_Bcast 和 MPI_Send 以及 MPI_Recv 的比较参考MPI 广播和集体通信我们已经研究了点对点通信,即两个进程之间的通信。本课是集体通讯章节的开始。集体通讯是一种通讯方法,涉及 communicator 中所有进程的参与。这节课我们会解释集体通信以及一个标准的方法 - broadcasting (广播)。集体通信以及同步点关于集体通信需要记住原创 2020-09-27 14:53:55 · 615 阅读 · 0 评论 -
C++ 并行计算 MPI Tutorial-4
目录点对点通讯应用-随机游走问题描述编码解决死锁和预防确认所有 Walker 完成参考点对点通讯应用-随机游走问题描述问题的基本定义如下,给定一个 Min, Max, 和随机游走器 W,使得 W 在往右走 S 步。如果超出范围,则会重新回到起点。W 每次只能移动一个单位。让我们概述一下如何并行处理随机游走。与许多并行处理程序一样,第一项相关任务是在各个进程之间划分域。随机游走问题具有大小为 Max - Min + 1 的一维域。假设 Walker 只能走整数大小的步数,我们可以轻松地在整个过程原创 2020-09-27 14:13:44 · 726 阅读 · 0 评论 -
C++ 并行计算 MPI Tutorial-3
目录动态接收MPI StatusCheck-Status (查询 MPI 状态程序)参考动态接收之前的教程中,传输消息的长度是预先知道的,可以将消息的长度单独的发送/接收,但是 MPI 可通过几个附加的函数调用即可支持动态消息MPI Status如果我们将 MPI_Status传递给 MPI_Recv 函数,那么接收完成后将填充有关接收操作的其他信息。主要有以下三个信息:发送方的秩,数据被存在 MPI_SOURCE 元素中,如果我们使用 MPI_Status stat,那么秩可这样获得 st原创 2020-09-27 14:13:15 · 447 阅读 · 0 评论 -
C++ 并行计算 MPI Tutorial-2
目录发送与接收MPI 方法基础 MPI 数据结构Send-Recv (发送-接收程序)Ping-Pong (乒乓程序)Ring (环程序)参考发送与接收发送和接收是 MPI 里面两个基础的概念,接下来介绍 MPI 的同步(或阻塞, blocking)发送和接收方法。MPI 的发送和接收方法是按以下方式进行的:开始的时候,A 进程决定要发送一些消息给 B 进程。A进程就会把需要发送给B进程的所有数据打包好,放到一个缓存里面。所有数据会被打包到一个大的信息里面,因此缓存常常会被比作信封数据打包进原创 2020-09-08 21:09:31 · 2341 阅读 · 1 评论 -
C++ 并行计算 MPI Tutorial-1
目录C++ 并行计算 MPI参考C++ 并行计算 MPI在处理一个任务的时候,并行程序间需要通信。MPI 是一个跨语言的通信协议,MPICH 是 MPI 的一种实现,类似的实现还有 Open MPI,Intel MPI 等。参考[1][https://mpitutorial.com/tutorials/mpi-send-and-receive/zh_cn/]...原创 2020-09-08 20:21:16 · 1438 阅读 · 0 评论