mpi
王里扬洛夫
人的命运啊,主要是靠个人的奋斗,同时也要考虑历史的行程啊!
展开
-
MPI学习笔记之并行程序概述
在学习CUDA和CAFFE后,我又准备把MPI看一下,主要是了解一下。主要是对并行计算的强烈性趣。。。。。额,兴趣。 一、前言 1、实现方式: 并行程序的两种实现方式: 任务并行:将任务分配带若干计算核上; 数据并行:将数据进行分割,然后由不同的计算核进行处理,每个核在规模相当的数据集上大致采用相同的操作。这不由使我想到了CAFFE中的对GPU的运用来实习并行训练的思路,就是将数据集进行分原创 2017-04-06 22:03:46 · 2601 阅读 · 0 评论 -
MPI学习笔记之Random Walk 案例
翻译自mpitutorial 一、基本问题 给定一条线段,最左端表示为MIN,最右端表示为MAX,假设一个步行者W,他用S个随机步数和随机的步长走向最右端。如果他走过了最右端,就返回到开始的最左端。 二、问题分析 1、首要任务,也是并行程序中的关键——任务划分。随机行走是一个长度在(max-min+1)的一维问题。假设行者每次都是走整数步,就可以划分为相近的且大小相同的任务块。 例如当翻译 2017-04-09 20:33:46 · 1433 阅读 · 0 评论 -
MPI之聚合通信collective communication-广播
一、前言 点对点的通信学习已经通过一个案例完成了,现在开始新的一节:collective communication。聚合通信是在通信子中的所有的进程都参与的通信方式。 二、聚合与同步 1、同步 对于所有的进程来说,聚合通信必然包含了一个同步点。也就是说所有的进程必须在他们又一次执行新动作之前都到达某个点。这跟GPU中线程同步的概念很相似,很好理解。如果n个线程或者进程不遵守这个规矩,那么就翻译 2017-04-12 21:03:30 · 3497 阅读 · 1 评论 -
MPI之聚合通信-Scatter,Gather,Allgather
MPI 一、 MPI_ScatterMPI_Scatter与MPI_Bcast非常相似,都是一对多的通信方式,不同的是后者的0号进程将相同的信息发送给所有的进程,而前者则是将一段array 的不同部分发送给所有的进程,其区别可以用下图概括: 0号进程分发数据的时候是根据进程的编号进行的,array中的第一个元素发送给0号进程,第二个元素则发送给1号进程,以此类推。MPI_Scatter(翻译 2017-04-18 15:53:23 · 36266 阅读 · 1 评论 -
MPI之Reduce和Allreduce
一、前言 Reduce——规约是来自函数式编程的一个经典概念。数据规约包含通过一个函数将一批数据分成较小的一批数据。比如将一个数组的元素通过加法函数规约为一个数字。二、MPI_Reduce 与MPI_Gather类似,MPI_Reduce在每个进程上都有一组输入元素,并将一个输出元素数组返回给根进程。 输出元素包含被规约的结果。MPI_Reduce( void* send_data,翻译 2017-04-19 19:03:23 · 18569 阅读 · 0 评论 -
MPI总结
一、MPI的四个基本函数 1、MPI_InitMPI_Init:初始化MPI执行环境。 在MPI_Init函数中,并不一定都需要设置argc_p和argv_p这两个参数的,不需要的时候,将它们设置为NULL即可MPI_Init( int* argc_p, char*** argv_p );他们的第一个参数都传入通信子作为参数,第二参数都用传出参数分别把正在调用通信子原创 2017-04-23 13:44:51 · 2425 阅读 · 0 评论