Erlang、MPI 性能比较

原文网址(不知道国内能上去不):http://jkndrkn.livejournal.com/205249.htm

作者为了测试Erlang与MPI的性能,做了两大类实验:

一、数据传送速率实验

 

1.pingpong:两个进程相互间进行收发数据,就像打乒乓球一样。

 

2.pingping:也就是说该进程一直像外发送数据,而不管上次的数据是否已被处理(如果没有被处理就被这次的数据给覆盖了)

 

3.Sendrec:将多个进程组成一个圈,第一个进程发出数据,第二个接收;然后第二个发出,第三个接收;...

 

4.Alltoall:有多个进程,任意两个进程间相互传递数据。

 

二、计算性能实验

 

1.Monte-carlo仿真实验

 

2.矩阵的乘法实验

 

还有一个实验作者没有完成,这里就不写了。

 

下面是作者的实验结果:

 

数据传送速率部分实验结果:

 

下面这张图是各个数据量下的统计次数,前面的统计次数都是1000,后面数据量太大了,就没有做太多的统计。

这张图是各个数据量下的统计次数,前面的统计次数都是1000,后面数据量太大了就没有做太多的统计

 

Pingpong

 

Pingping

 

Sendrecv:

 

 

All-to-all:

 

 

计算性能测试实验结果:

 

Matrix Multiplication:

 

Monte-Carlo:

 

实验结果分析:

由上面的实验结果可以看出来,MPI在计算性能方面要远远优于Erlang, 并且在小数据量传输方面也要优于Erlang. Erlang只在较大的数据量传输时,性能才明显优于MPI。并且当核数增加时,Erlang传输数据耗时的增加速率要远大于MPI的。当然,作者是基于共享内存式的并行计算,而不是分布式的并行计算,但这些实验结果也是很有意义的。如果你设计的并行计算程序计算负担大于数据传输负担,那么你最好用MPI来进行设计。而相反,如果你设计的并行计算程序数据交互比较厉害,数据传输负担远大于计算负担,则应优先考虑用Erlang来进行设计。另外,当核数比较多时,MPI的优势就更加明显了,在数据传送速率和计算性能方面都要优于Erlang。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值