我的背景是科学HPC,直到我目前的工作,我主要与MPI和CUDA合作。在这些编程模型中,每个核心执行以解决问题的单个算法有时不如控制节点间通信的元算法重要。我在扩散方程等问题的背景下理解这些概念,其中确保核心以比消息传递阶段之间执行的实际有限差异更新更重要的方式进行通信。
现在我作为一名工程师为一家大公司工作大数据,而且他的火花非常流利。我现在处理的问题涉及连接,聚合和在更高抽象级别(分区,随机,阶段,任务,内存管理等)进行优化。
尽管我很感兴趣,但旧习惯很难改变,但我无法找到有关火花如何处理全部和分散/聚集类型通信以执行洗牌的一致信息。
用什么通信算法来执行这些计算?具体做法是:
我理解什么是shuffle IS以及它为什么需要发生,只是没有具体说明它是如何在网络上发生的。或者,如果可以通过以下方式进行分解,那就更好了:
在更高层次上,我也想知道如何处理同步。
非常感谢。