并行计算评价指标
2016-08-27 15:09
483 查看
并行算法通常包含三种评价的方法,用来评价算法各方面的优劣。
1.speedup
评测speedup的方法是,保持数据不变,增加计算机的数目。计算机数目为m时的speedup计算方法如下:
speedup(m)=在一台机器上面使用的时间/在m台机器上面使用的时间。
该评测指标,如果能够随着m保持一个线性的增长,则表示,多台机器能够很好的缩短所需时间。
然而,线性的speedup是非常难以达到的,因为当机器增加时,存在一个通讯损耗的问题,还有就是各个计算机节点本身的问题(the skew of the slaves),比如算法所花费的总时间通常是由最慢的机器决定的。如果各计算机需要的时间不一样的话,就存在这个the skew of the slaves的问题。
2.scaleup
评测scaleup的方法是,在扩大数据的同时,增加计算机的数目。scaleup计算方法如下:
scaleup(DB,m)=使用1台电脑在DB上运行算法使用的时间/使用m台电脑在m*DB上运行算法使用的时间。
如果scaleup值随着m的改变,一直在1.0附近,或者更低,则表示该算法,对数据集的大小有很好的适应性。
3.sizeup
评测sizeup的方法是,保持计算机的数目不变,扩大数据。用来测试算法本身的一个时间复杂度。
sizeup(DB,m)=在m*DB数据上面所花费的时间/在DB上面所花费的时间。
并行算法还有一个部分的评价可以单独拿出来进行分析,这就是I/O和通讯时间。
可以采用保持数据集的大小不变,增加计算机的数目,查看I/O操作和通讯的花费与计算机数目之间的关系。
1.speedup
评测speedup的方法是,保持数据不变,增加计算机的数目。计算机数目为m时的speedup计算方法如下:
speedup(m)=在一台机器上面使用的时间/在m台机器上面使用的时间。
该评测指标,如果能够随着m保持一个线性的增长,则表示,多台机器能够很好的缩短所需时间。
然而,线性的speedup是非常难以达到的,因为当机器增加时,存在一个通讯损耗的问题,还有就是各个计算机节点本身的问题(the skew of the slaves),比如算法所花费的总时间通常是由最慢的机器决定的。如果各计算机需要的时间不一样的话,就存在这个the skew of the slaves的问题。
2.scaleup
评测scaleup的方法是,在扩大数据的同时,增加计算机的数目。scaleup计算方法如下:
scaleup(DB,m)=使用1台电脑在DB上运行算法使用的时间/使用m台电脑在m*DB上运行算法使用的时间。
如果scaleup值随着m的改变,一直在1.0附近,或者更低,则表示该算法,对数据集的大小有很好的适应性。
3.sizeup
评测sizeup的方法是,保持计算机的数目不变,扩大数据。用来测试算法本身的一个时间复杂度。
sizeup(DB,m)=在m*DB数据上面所花费的时间/在DB上面所花费的时间。
并行算法还有一个部分的评价可以单独拿出来进行分析,这就是I/O和通讯时间。
可以采用保持数据集的大小不变,增加计算机的数目,查看I/O操作和通讯的花费与计算机数目之间的关系。
相关文章推荐
- 康诺云推出三款智能硬件产品,为健康管理业务搭建数据池
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#递归算法之分而治之策略
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- C#算法函数:获取一个字符串中的最大长度的数字
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法