
关于MPI程序中计时,推荐用函数MPI_Wtick
至于单进程排序时间变少,应该是因为你用的机器的性能太好,排序 *** 作所花费的时间相对与进程通信所花费的时间并不明显,于是就出现了多进程处理比单进程处理花费的时间大很多的表象。
MPI是多点接口(Multi Point Interface)的简称,是西门子公司开发的用于PLC之间通讯的保密的协议。
MPI通讯是当通信速率要求不高、通信数据量不大时,可以采用的一种简单经济的通讯方式。MPI通信可使用PLC S7-200/300/400、 *** 作面板TP/OP及上位机MPI/PROFIBUS通信卡如CP5512/CP5611/CP5613等进行数据交换。
MPI网络的通信速率为192Kbps~12Mbps,最多可以连接32个节点,最大通讯距离为50m,但是可以通过中继器来扩展长度。
扩展资料
MPI叫多点接口通信,一般用于小范围、小点数现场级通讯,可实现西门子PLC的 *** 作面板(TP/OP)和上位机之间的数据交换。
例如西门子PLCs7-200/300/400,它的通讯速率192Kbit-12Mbit,最多可连接32个接点,通讯距离50m以内。若以中继器连接,站之间的距离可达9100m,可最多也只能用10个中继器,而且它还占用节点数。
MPI的网络组建:利用STEP7的configuretion里的功能可以给每一个网络节点分配一个MPI地址和最高地址,连接是需要在MPI网络的第一个节点和最后一个节点加终端电阻。
PLC以MPI来实现通讯,可用三种方式解决。全局数据包通讯方式、无组态连接通讯方式、组态连接通讯方式。
实现全局数据包通讯方式:在PLC硬件配置过程,组态需要通讯的PLC站之间的发送区和接收区不需要任何程序处理,只适应s7-300/400之间的通讯。
最多也只在一个项目中的15个CPU之间建立全局数据。实现全局数据通讯方法:全局数据包通讯SMATIC Manage里设置s7-300/400MPI的地址,然后在选项/定义全局数据里定义需要通讯的数据地址。
带>符号的表示发送数据,对应栏里的是接受数据,最终将设置好的项目下载到PLC即可实现MPI通讯。
参考资料来源:百度百科-mpi
OpenMP和MPI是并行编程的两个手段,对比如下:
OpenMP:线程级(并行粒度);共享存储;隐式(数据分配方式);可扩展性差。
MPI:进程级;分布式存储;显式;可扩展性好。OpenMP采用共享存储,意味着它只适应于SMP,DSM机器,不适合于集群。MPI虽适合于各种机器,但它的编程模型复杂。
需要分析及划分应用程序问题,并将问题映射到分布式进程集合。需要解决通信延迟大和负载不平衡两个主要问题。
延伸论述:
我认为,要理解OpenMP和MPI,首先要有一些 *** 作系统知识和系统编程基础——OpenMP对应的实际上是单进程多线程的并发编程模型,可以将一个单线程的程序按for循环拆分成多线程——相当于pthread_create。
对于同一个进程的多个线程来说,由于它们只是独占自己的栈内存,堆内存是共享的,因此数据交换十分地容易,直接通过共享变量就可以进行交换,编程模型非常简单易用,并且对于 *** 作系统来说,线程的上下文切换成本也比进程低很多。
然而另一方面,由于线程不能脱离进程独立存在,而一个进程不能存在于多台机器上,所以OpenMP只适用于拥有多个CPU核心的单台电脑。并且多线程编程存在临界区(Critical Section),需要你自己去加锁,解决Race Condition问题,否则的话很容易导致不可预知的后果。
而MPI则是多进程的并发编程模型,相当于你自己调用fork——每一个进程的内存地址空间都是独立的,它们彼此之间几乎什么都不共享,只能通过进程间通信(IPC)来交换彼此的数据,因此编程难度明显要大很多。
MPI有一个非常显著的优点,那就是对于一个分布式系统来说,进程是可以在分布式系统的每一台电脑之间转移的,因此对于拥有多台电脑的分布式系统来说,其并发性要明显好于OpenMP。
以上就是关于MPI 程序 计算时间问题全部的内容,包括:MPI 程序 计算时间问题、mpi是什么意思、从并行计算的角度对比,MPI 与 OpenMP 有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)