Partitioning a graph into balanced blocks such that few edges run between blocks is a key problem for large-scale distributed processing. A current trend for partitioning huge graphs are streaming algorithms, which use low computational resources. In this work, we present a shared-memory streaming multi-recursive partitioning scheme that performs recursive multi-sections on the fly without knowing the overall input graph. Our approach has a considerably lower running time complexity in comparison with state-of-the-art non-buffered one-pass partitioning algorithms for the standard graph partitioning case. Moreover, if the topology of a distributed system is known, it is possible to further optimize the communication costs by mapping partitions onto processing elements. Our experiments indicate that our algorithm is both faster and produces better process mappings than competing tools. In case of graph partitioning, our framework is up to two orders of magnitude faster at the cost of 5% more cut edges compared to Fennel.
翻译:将图形分割成平衡的区块, 使区块之间的边缘少一些是大规模分布式处理的一个关键问题。 目前用于分割巨形图的趋势是流算法, 使用低计算资源。 在此工作中, 我们展示了一个共享的模拟流流多对流分区方案, 它在飞行上运行循环多部分, 而不知道整个输入图。 我们的方法比标准图形分割案的最先进的非缓冲单行分配算法的运行时间复杂度要低得多。 此外, 如果知道分布式系统的结构学, 有可能通过在处理元件上绘制分区图来进一步优化通信成本。 我们的实验显示, 我们的算法比相竞工具更快, 并且产生更好的进程映射。 在图形分割法中, 我们的框架比芬内尔的剪切边缘高出5%, 速度要快到两个数量级。