并行和串行的含义是啥,集群上如何算并行计算
来源:12-1 推荐系统简介
心亭
2020-02-21
老师好,前面分类的时候您提到svm的核函数目前spark并不支持并行计算,也就没实现(大概意思)。我粗浅的理解k-means等也类似,并行计算难度也很大呢,如随机森林等,很适合并行计算,但是好多算法感觉并不适合并行。以k-means为例,算法执行的顺序我理解是如下过程:随机取种子环节,新的中心点获取则是一个mr的逻辑,然后重新计算后的中心点,又可以广播到所有节点重新mr进行评估偏差大小,如此往复循环,直至最优,下一个环节只能等待上一个环节的结果。或者这本身就是并行,其实在这个过程中,实现的是计算的并行,并非算法并行呢,是不是我对并行的理解有问题?
一直没想明白,麻烦老师指点迷津,谢谢老师~
写回答
1回答
-
Wotchin
2020-02-24
大致就是你理解的思路。并行计算是一个很高深的问题,通常来说,并行可以包括很多层次,例如集群节点间并行,单节点间进程(线程)并行,执行算子并行,CPU内部的SMP机制的并行。某些算法本身就不太容易并行,例如取中位数的并行就不太容易做。而一个大的算法里面,会设计到非常多的小计算,这些小计算有的不是绝对的不能并行,只是代价太高,收益不明显。
00
相似问题