分布式一致性、并行与在线算法

共 50 题
#

1. 线性一致性 vs 顺序一致性中 Raft/多主复制各自保证哪种一致性,客户端如何观测?

A 多主复制天然保证线性一致性
B 顺序一致性要求操作顺序与真实时间完全一致
C 线性一致性要求操作按与真实时间一致的全局顺序生效,Raft 单主复制可实现 ✓ 正确答案
D 线性一致性只要求最终一致
#

2. 缓存替换策略的适用场景中 LRU 适合时间局部性强、LFU 适合热点稳定、ARC/W-TinyLFU 如何自适应,如何用 trace 评估命中率?

A LFU 对突发热点响应最快
B LRU 适合时间局部性强的负载但怕扫描污染,W-TinyLFU 用频率 Sketch 兼顾突发与长期热点 ✓ 正确答案
C ARC 不需要自适应调节
D 缓存策略优劣与负载特征无关
#

3. 在线广告拍卖中 Adwords 的贪心与 VCG 的激励相容性,为什么次模福利最大化有 1-1/e 近似保证?

A 次模福利最大化的贪心算法有 1-1/e 近似保证,VCG 保证诚实报价是占优策略 ✓ 正确答案
B 贪心算法对任意函数都有 1-1/e 近似
C VCG 在有预算约束时仍完全激励相容
D Adwords 问题的最优竞争比是 1/2
#

4. 在线算法的设计原则中无法预知未来时如何用保守策略保证竞争比,与离线算法的对照(ski rental、list update)?

A 竞争比衡量在线算法相对最优离线算法的代价上界,ski rental 确定性最优竞争比为 2 ✓ 正确答案
B 在线算法总能达到与离线相同的代价
C MTF 策略的竞争比与列表长度成正比
D 随机化只会让在线算法更差
#

5. 算法替换的收益评估中从 O(n²) 到 O(n log n) 的改造如何选择(如排序、哈希、平衡树),何时不值得替换?

A 算法替换需综合规模、常数、输入分布与实现成本,n 很小时 O(n²) 可能仍占优 ✓ 正确答案
B 渐近复杂度完全决定实际性能
C 哈希表的 O(1) 保证所有场景最优
D 只要从 O(n²) 改到 O(n log n) 就必然值得
#

6. 数据结构选型中哈希(O(1) 点查)、平衡树(有序遍历)、日志结构(追加写)在时间/空间/并发上的权衡矩阵?

A 哈希表天然支持范围查询
B 日志结构写放大低、写并发友好但读放大高,哈希适合点查,平衡树适合有序操作 ✓ 正确答案
C 日志结构的读路径只有一层
D B 树在任何负载下都优于哈希
#

7. 在线算法的竞争比中 ski rental 与在线二分等经典问题的竞争比分析入门?

A 竞争比只需给出一个输入下的比值
B ski rental 的确定性最优策略竞争比为 2,随机化可达 e/(e-1) ✓ 正确答案
C 在线二分问题的竞争比是常数
D 下界论证不需要对抗输入
#

8. 并行算法的效率中 Amdahl 定律与并行归约/前缀和的加速比分析?

A 并行归约的工作量为 O(n log n)
B 并行前缀和的深度为 O(n)
C Amdahl 定律中串行部分占比决定加速比上界,Blelloch 前缀和的工作量为 O(n) 深度 O(log n) ✓ 正确答案
D 加速比可以超过 1/s 只要核数足够多
#

9. 外部排序的两阶段流程中如何用败者树做 k 路归并,I/O 代价(归并趟数)如何随内存大小变化?

A 内存大小不影响外部排序的 I/O 次数
B 败者树每输出一个元素需要 O(k) 比较
C 外部排序趟数为 ⌈log_k(N/M)⌉,内存增大可减少归并趟数与 I/O 代价 ✓ 正确答案
D 替代选择算法生成的 run 长度平均为 M/2
#

10. 带宽受限环境下的算法设计中如何用压缩、差分同步与增量传输减少网络开销,与批量/流式传输的取舍?

A 压缩可以完全消除带宽需求
B 批量传输的延迟一定比流式低
C rsync 用块哈希比对实现差分同步,只传输变化的块 ✓ 正确答案
D 增量传输需要重新发送全部历史数据
#

11. CUDA 并行的性能模型中如何用块/线程/共享内存组织归约与扫描,访存合并(coalescing)与 bank conflict 的影响?

A bank conflict 与共享内存无关
B 全局内存访问需相邻线程访问连续地址才能合并成少量事务,共享内存同 bank 冲突会串行化 ✓ 正确答案
C 归约只能在全局内存中完成
D 访存合并与线程索引无关
#

12. 在线算法的竞争比分析中 ski rental 的确定性 2-竞争与随机化 e/(e-1) 竞争比如何推导,与最优离线(OPT)的对照?

A 下界论证不需要构造对手输入
B 随机化策略的竞争比总是 ≥ 2
C OPT 的代价总是已知的
D ski rental 确定性 2-竞争通过"短/长序列"分情形论证,随机化用 Yao 原理证明 e/(e-1) 下界 ✓ 正确答案
#

13. 负载均衡的随机策略中 Power of Two Choices 为何优于随机选择,Join the Shortest Queue 的通信代价如何取舍?

A 采样队列数越多通信开销越低
B JSQ 不需要任何全局信息
C 两选一策略用两次随机采样把最大负载降到 O(log log n),远优于随机选择的 O(log n/log log n) ✓ 正确答案
D 两选一的负载均衡效果与随机选择相同
#

14. MPI 与 OpenMP 的分工中分布式内存用消息传递、共享内存用线程并行,如何组合(MPI+OpenMP)处理大规模计算?

A OpenMP 可以跨节点通信
B MPI 用于跨节点分布式内存的进程间消息传递,OpenMP 用于节点内共享内存线程并行 ✓ 正确答案
C MPI 进程间共享地址空间
D 混合模型会增加消息数量
#

15. Narwhal & Tusk 的 DAG 共识中为什么把交易广播(Narwhal)与排序(Tusk)分离能提升吞吐,与 HotStuff 的对比?

A Tusk 需要传统的三阶段投票才能排序
B Narwhal 负责高吞吐 DAG 广播、Tusk 在其上做轻量排序,解耦使传播与共识并行流水 ✓ 正确答案
C Narwhal & Tusk 的延迟低于 HotStuff 且吞吐更高
D DAG 构建与排序耦合是提升吞吐的关键
#

16. 在线定价(Online Pricing)问题中卖家如何在不预知估值分布时定价逼近最优收益,与 secretary problem 的联系?

A secretary problem 与定价无关
B 在线定价需要预知所有买家的估值
C 未知分布下固定价格策略达到 O(log n) 竞争,关键是按 2 的幂分档选择近似最优单价 ✓ 正确答案
D 定价问题的最优竞争比是 1
#

17. 经典在线问题的工程映射中 ski rental(资源购买时机)、paging(缓存淘汰)、secretary(择优时机)分别在哪些系统场景出现?

A ski rental 映射云资源租/买决策,paging 映射缓存淘汰,secretary 映射择优决策场景 ✓ 正确答案
B paging 问题与缓存系统无关
C ski rental 只适用于滑雪板租赁
D secretary 问题只用于招聘
#

18. 内存受限环境(Flash/SSD/PMem)的算法设计中如何用外存模型(B 树、LSM)与缓存友好的数据结构降低随机访问?

A LSM 的随机写比 B 树更快
B B 树的树高与数据量成正比
C 外存模型以块传输次数衡量代价,B 树用大扇出降树高,LSM 用顺序写与布隆过滤器 ✓ 正确答案
D PMem 不需要崩溃一致性处理
#

19. 功耗受限(Edge/IoT/Mobile)的算法取舍中如何用近似/降采样/离线压缩在电池预算内完成任务,与云端卸载的权衡?

A 近似计算不损失任何精度
B 卸载计算总是比本地计算省电
C 无线通信的单位能耗远高于本地计算,降采样与压缩可显著降耗 ✓ 正确答案
D 功耗优化与延迟无关
#

20. 增量算法中如何维护随数据到达而更新的聚合结果(增量统计、增量索引),与全量重算的复杂度对比?

A 可分解聚合(sum/count/min/max)可 O(1) 增量维护,不可分解聚合需 Sketch 类流式结构 ✓ 正确答案
B 去重计数可以精确 O(1) 增量维护
C 增量索引比全量重建更精确
D m 次全量重算的复杂度是 O(m + n)
#

21. 延迟受限(HFT/Realtime/Embedded)场景的算法约束中如何用预计算、近似与低延迟数据结构在期限内返回结果?

A 实时系统优化平均延迟即可
B 延迟受限场景要求最坏情形延迟有上界,预计算与查找表把运行时开销降到 O(1) ✓ 正确答案
C 动态内存分配在实时场景没有风险
D 近似算法在实时场景不被允许
#

22. 成本受限(Serverless/Spot/Preemptible)下的计算策略中如何用容错重试与状态外置应对节点回收,成本与延迟的权衡?

A 应对 Spot 节点回收需状态外置与检查点重放,检查点频率是恢复延迟与写成本的权衡 ✓ 正确答案
B 检查点越频繁成本越低
C Spot 实例不会被回收
D 幂等重试无法处理重复执行
#

23. 流处理的窗口与状态中滚动/滑动/会话窗口如何划分,状态后端(RocksDB)如何支持大状态 exactly-once?

A 会话窗口按不活动间隔切分,滑动窗口重叠,状态后端用 RocksDB + WAL + checkpoint 实现 exactly-once ✓ 正确答案
B 滚动窗口允许窗口重叠
C 水位线用于窗口的数据合并
D exactly-once 不需要状态快照
#

24. 算法基准测试的正确做法中 JMH/hyperfine/criterion 如何消除 JIT 预热与测量噪声,为什么微基准容易误导?

A 基准测试不需要统计置信区间
B 单次运行的结果即可代表性能
C 微基准可以完全预测系统性能
D JMH 用预热与 Blackhole 消除 JIT 与死代码消除干扰,微基准结果需宏观基准验证 ✓ 正确答案
#

25. 性能剖析的方法中 perf/FlameGraph 如何定位 CPU 热点与缓存缺失,与直觉优化的差异?

A 直觉优化通常能准确找到热点
B 火焰图的 y 轴表示采样数量
C perf 用周期采样与硬件计数器定位 CPU 热点与缓存缺失,火焰图 x 轴宽度表示开销占比 ✓ 正确答案
D 剖析只需关注 CPU 时间,忽略等待时间
#

26. 热路径(Hot Path)优化的原则中如何识别高频代码段并做针对性优化(分支预测、内联),与过早优化的界限?

A 内联总是能提升性能
B 热路径优化应先 profiling 确认热点,再做分支/内联/局部性定向优化,并每次验证收益 ✓ 正确答案
C 过早优化指优化任何未验证的代码
D 分支预测优化与性能无关
#

27. 并行算法的加速比中 Amdahl 定律对可并行部分比例的要求,与并联网算法的效率?

A 稀疏图比稠密图更容易获得高并行效率
B 核数无限时加速比无限增长
C Amdahl 定律要求串行部分占比极小才有高加速比,并行图算法受负载不均与同步开销限制 ✓ 正确答案
D 同步开销不影响并行效率
#

28. 分布式一致性与算法中 Raft 多数派读写如何实现线性一致,CAP 的工程含义?

A Raft 用多数派提交保证写线性一致,ReadIndex/Lease Read 保证读一致 ✓ 正确答案
B Raft 领导者本地读一定是最新的
C CAP 中的 CA 系统在分布式下可以实现
D AP 系统分区时也保证强一致
#

29. Avalanche 共识的随机抽样投票中为什么多次子采样投票能以高概率收敛,与经典 BFT(PBFT)在假设上的差异?

A Avalanche 的收敛需要全局广播
B Avalanche 用随机子采样投票使偏好滚雪球收敛,安全性是概率性的,PBFT 是确定性安全 ✓ 正确答案
C PBFT 的提交是概率性的
D 两种共识的拜占庭假设完全相同
#

30. 区块链共识的效率设计中 DPoS 的委托投票与 PoH(Solana)的可验证延迟如何提升吞吐,各自的安全假设?

A DPoS 不依赖任何质押机制
B PoH 的时间戳可以并行加速生成
C DPoS 用少量委托出块节点提升吞吐,PoH 用可验证延迟序列作为全局时钟减少排序开销 ✓ 正确答案
D 两者都保持完全去中心化的出块权
#

31. Dask 的惰性计算图中如何把 Python 任务组织成有向无环图并调度到多进程/分布式,与 Spark 的 RDD 图差异?

A Dask 的 compute() 只是记录操作
B Dask 用惰性任务图 + 依赖拓扑调度 Python 任务,Spark 以分区与阶段为单位执行 ✓ 正确答案
C Spark 的任务粒度比 Dask 更细
D Dask 无法分布式执行
#

32. Flink 的流处理保证中 checkpoint 与 exactly-once 状态一致性如何实现,与 Spark Streaming 的微批模型差异?

A Flink 按批次处理事件
B Flink 用 Barrier 对齐的分布式快照 + 两阶段提交实现流式 exactly-once ✓ 正确答案
C Spark Streaming 的延迟可到毫秒级
D 微批模型天然支持逐事件语义
#

33. 节俭计算(Frugal Computing)的思想中如何在资源受限时用近似/采样/离线预处理换取数量级收益,典型例子有哪些?

A 采样误差随样本量线性下降
B Count-Min Sketch 是精确计数结构
C 节俭计算用有界误差的 Sketch、采样与离线预处理换取数量级资源节省 ✓ 正确答案
D 近似结构适用于所有精度要求的场景
#

34. GPU Direct RDMA 中如何让 GPU 绕过 CPU 直接访问网卡内存,在分布式训练(NCCL)中的带宽收益与部署条件?

A GDR 只影响延迟,不影响带宽
B GDR 仍然需要 CPU 参与每次拷贝
C 任意网卡都支持 GPU Direct
D GPU Direct RDMA 让 GPU 显存直接 DMA 到网卡,绕过主机内存与 CPU,提升 NCCL 集合通信带宽 ✓ 正确答案
#

35. MapReduce 的执行模型中 shuffle 按 key 分区排序是关键步骤,Combiner 如何在 map 端预聚合降低网络量?

A Combiner 可以随意使用任何聚合函数
B shuffle 按 key 分区排序实现分组与负载均衡,Combiner 在 map 端预聚合减少网络传输 ✓ 正确答案
C shuffle 不需要排序
D shuffle 的传输量通常不是性能瓶颈
#

36. PBFT 与 HotStuff 的对比中为什么 HotStuff 用线性视图切换与门限签名把消息复杂度降到 O(n),两者在 BFT 假设上的异同?

A HotStuff 用链式三阶段 + 门限签名 + 线性视图切换把消息复杂度降到 O(n) ✓ 正确答案
B PBFT 的视图切换复杂度是 O(n)
C HotStuff 不需要门限签名
D 两者对拜占庭节点比例的假设不同
#

37. Paxos 与 Raft 的工程差异中为什么 Raft 通过强领导者与日志复制的简化使其更易实现,两者的多数派读写语义?

A Paxos 规定了完整的日志管理
B Raft 用强领导者 + 有序日志复制 + 选举日志完整性约束简化实现,两者都依赖多数派交集保证线性一致 ✓ 正确答案
C Raft 的读操作不需要确认领导者
D Raft 允许多领导者并发提案
#

38. Ray 的分布式任务模型中 actor 与 task 如何支持 Python 的弹性调度,与 Dask/Spark 在细粒度并行上的差异?

A Ray 用 task 与 actor 提供细粒度动态任务图与分布式对象存储,Spark 是阶段批式模型 ✓ 正确答案
B Ray 的任务图在运行时不可扩展
C Spark 支持细粒度的动态任务
D Ray 对象必须经磁盘传输
#

39. 流式 Sketch 的选型中 Count-Min 估频率、HLL 估基数、Misra-Gries 找频繁项,各自的空间/误差边界如何比较?

A Misra-Gries 是概率性的,可能漏掉频繁项
B HLL 可以估计每个元素的频率
C Count-Min 估计频率误差 ≤ εN,HLL 估基数相对误差 ~1.04/√m,Misra-Gries 确定性找频繁项 ✓ 正确答案
D Count-Min 的空间与误差参数无关
#

40. Spark 的 RDD 血统(lineage)容错中为什么通过记录转换操作而非数据副本恢复分区,与检查点(checkpoint)的取舍?

A checkpoint 不需要额外存储开销
B 血统容错需要存储数据副本
C RDD 血统记录转换操作,分区丢失时重放重算,长血统或昂贵转换时用 checkpoint 截断 ✓ 正确答案
D 血统重算只适用于短血统,长血统无法恢复
#

41. TLA+ 建模分布式协议中如何用状态机与不变量验证 Raft/Paxos 的安全性,模型检查在什么规模下会状态爆炸?

A 模型检查可以验证无限规模的协议
B TLA+ 用状态变量 + 非确定性 Next 建模协议,TLC 穷举可达状态验证不变量 ✓ 正确答案
C 不变量只能表达活性
D 状态爆炸与节点数无关
#

42. Tendermint 的 BFT 共识中为什么两轮投票+锁定期能保证安全性,与 PBFT 在视图切换上的简化?

A Tendermint 的视图切换与 PBFT 一样复杂
B 锁定期会阻止所有后续提案
C Tendermint 只需要一轮投票
D Tendermint 用两轮投票 + 锁定期防止双提交,换轮只需广播锁与投票信息 ✓ 正确答案
#

43. 大数据处理框架的选型中批处理(MapReduce/Spark)、流处理(Flink)与迭代图计算(Pregel)各适合什么负载?

A Pregel 适合 SQL 聚合
B 批处理适合离线全量分析,流处理适合低延迟实时事件,Pregel 适合迭代图算法 ✓ 正确答案
C Flink 只能做批处理
D 图计算可以直接用 MapReduce 高效完成每轮迭代
#

44. 分治思想在大数据中的应用中外排序、分布式聚合(两阶段归并)与 MapReduce 的契合,如何划分数据减少 shuffle?

A 两阶段聚合无法处理局部聚合
B combiner 会增加 shuffle 数据量
C 数据倾斜与分区器无关
D 外排序、两阶段聚合与 MapReduce 都是"划分 + 归并"的分治结构 ✓ 正确答案
#

45. 常数优化的层次中缓存局部性、SIMD 向量化与 cache-oblivious 布局分别优化什么,如何用 profiling 定位瓶颈?

A profiling 无法区分访存瓶颈与计算瓶颈
B cache-oblivious 布局需要知道缓存大小
C SIMD 对随机访问同样高效
D 缓存局部性优化访问模式,SIMD 做数据级并行,cache-oblivious 用递归分块适配任意缓存 ✓ 正确答案
#

46. 写时复制(COW)与路径复制(Path Copying)的性能收益中共享不可变结构能减少复制,CRDT 的合并开销如何控制?

A 共享不可变结构无法支持多版本访问
B COW 在写多读少时收益最大
C CRDT 合并必须处理全部历史操作
D 路径复制只复制修改路径并共享未变子树,复制量正比于改动规模而非数据总量 ✓ 正确答案
#

47. 算法并行化的模式中 Fork-Join 分治、MapReduce 数据并行与 CUDA 线程并行各自的加速比受什么因素限制(Amdahl)?

A Fork-Join 受分治串行部分与任务粒度限制,MapReduce 受 shuffle 通信与倾斜限制,CUDA 受访存与占用率限制 ✓ 正确答案
B Fork-Join 的任务粒度越细越好
C MapReduce 的数据倾斜不影响加速比
D CUDA 的占用率越高越好,无副作用
#

48. 嵌入式/移动端的资源受限设计中近似、在线与流式算法如何在小内存低功耗约束下给出可用结果?

A 浮点运算在 MCU 上开销与定点相同
B 嵌入式设备可以缓存全部历史数据
C 流式 Sketch 与采样用 O(1) 内存处理无限数据流,定点/量化与查表用精度换算力 ✓ 正确答案
D 流式算法需要预知数据总量
#

49. 近似算法的选型中贪婪(集合覆盖 ln n)、LP 舍入(顶点覆盖 2)、局部搜索(k-median)各自的近似比与适用问题?

A 集合覆盖用贪婪得 ln n 近似,顶点覆盖用 LP 舍入得 2 近似,k-median 用局部搜索得常数近似 ✓ 正确答案
B 贪婪算法对所有问题都达到常数近似
C LP 舍入得到的解一定是最优整数解
D 局部搜索保证全局最优
#

50. 采样算法中蓄水池抽样(等概率)、加权采样与流式采样的实现,采样误差如何随样本量减小?

A 加权采样用均匀随机数即可
B 蓄水池抽样需要预知流长度
C 蓄水池抽样让每个元素以 k/n 概率入选(O(1) 内存),采样标准误按 1/√n 收敛 ✓ 正确答案
D 样本量与总体规模成正比才能保证精度