MPI基础
littleBoy777
这个作者很懒,什么都没留下…
展开
-
MPI实现求解10的八次方内素数的个数(版本二)
使用MPI计算素数个数(只计算奇数部分)在上一版本中实现了基本的功能,但是还有不是很完美。这一次要再上一版的基础中,不计算偶数,这样在理论上可以提高一倍的效率。在串行的程序中实现这样的想法是一个很简单的功能,但是现在是一个并行计算的程序,在任务的分配和计算上会有一些小麻烦。任务的分配: low_index = id * ((n - 1) / 2) / p; high_index ...原创 2019-04-12 18:09:23 · 1428 阅读 · 0 评论 -
MPI实现求解10的八次方内素数的个数(版本一)
使用MPI计算素数个数算法实现所使用的方法:当所要计算的个数达到10的8次方,甚至更多时,一台机器很难胜任这份工作。使用MPI分布式并行计算可以实现这个目标,原来一个人干的事情现在让很多个人来干,这听上去是一个很美妙的事情。但是俗话说一个和尚挑水喝,两个和尚抬水喝,三个和尚没水喝。程序也是如此,使用MPI实现多进程来进行计算,虽然有很多的好处,但是编程的复杂性也提升了不少。版本一...原创 2019-04-12 17:29:25 · 1999 阅读 · 2 评论 -
MPI实现求解10的八次方内素数的个数(版本三)
在第二版的基础上减少通讯时间第二个版本已经做了一定的忧化,并行计算的总时间是:串行时间+并行时间+通讯时间。前两个版本都是让进程0找出素数后,再通过广播的形式通知到各个进程。各个进程再进行查找筛选,如果在通讯质量不是很好的网络中进行,将会有很多的时间被浪费在线程通信上面。于是可以在版本二的基础上,让每个进程自己来计算基础的素数,而不是在嗷嗷待哺的等待着进程0来给它们喂食。这样将会减少通讯所消...原创 2019-04-14 12:09:46 · 1529 阅读 · 0 评论 -
MPI基础(一)
前言:MPI(Message Passing Interface)是一个跨语言的通讯协议,用于编写并行程序。与OpenMP并行程序不同,MPI是一种基于消息传递的并行编程技术。消息传递接口是一种编程接口标准,而不是一种具体的编程语言。 简而言之,MPI标准定义了一组具有可移植性的编程接口。不同的厂商和组织遵循着这个标准推出各自的实现,而不同的实现也会有其不同的特点。 由于MPI提供了统一的编程...转载 2019-04-06 17:15:56 · 2007 阅读 · 0 评论 -
MPI基础(二)
11.规约(reduce)在现实生活中,我们常常需要对于数据做同一种操作,并将结果返回到指定的进程中,这个过程称为集合通信。例如,将数据分散到各个进程中,先在各个进程内进行求和,再在全局完成求和-平均这个操作,这个过程是一个规约的过程。一般来说,集合通信包括通信、同步和计算三个功能。不过,目前我们暂时不需要关注整个过程,而是先使用一个规约函数去体验一下集合通信。函数说明:in...转载 2019-04-06 17:35:30 · 1180 阅读 · 0 评论