上QQ阅读APP看书,第一时间看更新
1.3.4 分布式计算
算法设计是一件非常困难的工作,需要有很好的数据结构基础。本书中采用的算法设计技术主要有迭代法、分治法、动态规划法等。
互联网搜索经常面临海量数据。需要分布式的计算框架来执行对网页重要度打分等计算。有的计算数据很少,但是计算量很大;还有些计算数据量比较大,但是计算量相对比较小。例如,计算圆周率是计算密集型,互联网搜索中的计算往往是数据密集型。所以出现了数据密集型的云计算框架。MapReduce是一种常用的云计算框架。但是MapReduce是批处理的操作方式。一般来说,直到完成上一阶段的操作后才能启动下一阶段的操作。
要有一种计算,可以尽快出结果,随着时间的延长,计算结果会越来越好。很多计算可以用迭代的方式做,迭代次数越多,结果往往越好,比如PageRank或者KMeans、EM算法。当然,这个应该不只需要迭代,还需要向最优解收敛。