[论文解读] Parallel Weighted Random Sampling
本文提出了一套高效、可扩展的并行算法,用于在共享内存和分布式内存系统中进行加权随机采样。它引入了输出敏感的线性工作量方法,用于有放回和无放回采样、别名表构建以及水库采样,实现了在最多158个线程和256个节点上的近线性加速,并针对分布式流数据设计了通信高效的架构。
Data structures for efficient sampling from a set of weighted items are an important building block of many applications. However, few parallel solutions are known. We close many of these gaps both for shared-memory and distributed-memory machines. We give efficient, fast, and practicable algorithms for sampling single items, k items with/without replacement, permutations, subsets, and reservoirs. We also give improved sequential algorithms for alias table construction and for sampling with replacement. Experiments on shared-memory parallel machines with up to 158 threads show near linear speedups both for construction and queries.
研究动机与目标
- 解决大规模数据工作负载中缺乏高效并行加权随机采样算法的问题。
- 设计可扩展、通信高效的算法,用于在分布式内存系统中进行加权采样,同时最小化协调开销。
- 开发输出敏感的算法,使工作量与采样数量呈线性关系,从而在偏态分布下提升性能。
- 优化别名表的构造过程,适用于串行和并行执行,减少空间占用并提升实用性。
- 通过完全分布式的模型实现从分布式数据流中高效进行水库采样,最大限度减少通信开销。
提出的方法
- 采用混合方法,结合基于表的采样与分治树结构,实现有放回采样的输出敏感采样。
- 设计基于工作高效并行原原子的别名表并行构造方法,包括前缀和运算与基于采样的划分。
- 对随机偏差应用非线性变换,通过排序实现线性工作量的加权随机排列。
- 在分布式系统中采用所有者计算模型,即每个处理器仅处理其本地数据,最大限度减少通信。
- 提出一种基于完全分布式流式模型的通信高效水库采样算法,最大限度减少处理器间通信。
- 使用整数排序原原子作为子程序,其复杂度取决于权重比的对数 u = log(w_max/w_min)。
实验结果
研究问题
- RQ1我们能否设计出在共享内存系统上实现线性工作量和对数延迟的并行加权随机采样算法?
- RQ2当不同样本的数量远小于总采样大小时,如何使有放回的加权采样更加高效?
- RQ3在保持可扩展性的前提下,分布式加权水库采样的最小通信成本是多少?
- RQ4我们能否以比现有串行方法更优的空间效率和性能并行构造别名表?
- RQ5是否可以通过对随机偏差的非线性变换,在线性工作量下实现加权随机排列?
主要发现
- 所提出的并行别名表构造方法在最多158个线程下,对预处理和查询阶段均实现了近线性加速。
- 用于有放回采样的输出敏感采样算法,其工作量与不同样本数量呈线性关系,在偏态分布下显著提升了性能。
- 分布式加权水库采样在最多256个节点(5120个核心)上实现了良好的加速比,展现出高可扩展性和低通信开销。
- 加权随机排列算法通过非线性变换随机偏差,利用排序实现线性工作量,避免了昂贵的采样步骤。
- 通信高效的分布式水库采样算法将处理器间通信降至局部工作量的次线性水平,尤其在随机数据分布下表现更优。
- 串行别名表构造方法得到简化且更节省空间,相较于先前方法具有实际改进优势。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。