In this work, we design, analyze, and optimize sequential and shared-memory parallel algorithms for partitioned local depths (PaLD). Given a set of data points and pairwise distances, PaLD is a method for identifying strength of pairwise relationships based on relative distances, enabling the identification of strong ties within dense and sparse communities even if their sizes and within-community absolute distances vary greatly. We design two algorithmic variants that perform community structure analysis through triplet comparisons of pairwise distances. We present theoretical analyses of computation and communication costs and prove that the sequential algorithms are communication optimal, up to constant factors. We introduce performance optimization strategies that yield sequential speedups of up to $29\times$ over a baseline sequential implementation and parallel speedups of up to $19.4\times$ over optimized sequential implementations using up to $32$ threads on an Intel multicore CPU.
翻译:本文设计、分析并优化了用于分割局部深度(PaLD)的顺序与共享内存并行算法。给定一组数据点及其成对距离,PaLD是一种基于相对距离识别成对关系强度的方法,能够识别稠密和稀疏社区内的强联系,即使这些社区的大小及内部绝对距离差异显著。我们设计了两种算法变体,通过成对距离的三元组比较进行社区结构分析。我们从理论上分析了计算与通信成本,并证明顺序算法在常数因子内达到通信最优。我们引入了性能优化策略,使顺序实现相比基线顺序实现加速比高达$29\times$,并行实现相比优化后的顺序实现加速比高达$19.4\times$(采用英特尔多核CPU上的$32$线程)。