知识卡片
多缓冲区哈希用批量并行换吞吐
内容
单次哈希计算天然是顺序的——上一步的中间结果决定下一步的输入,很难在算法内部并行。ISA-L的多缓冲区哈希技术换了个角度:不去并行化单次哈希内部的步骤,而是同时凑够S份独立的数据、用S路SIMD一次性并行计算出S个哈希摘要,再把这些摘要本身当作新的数据段继续做同样的并行哈希,直到收敛出最终结果,相比传统实现能有超过15倍的性能提升。发散:这是”把不能并行的问题,换成并行处理多个独立实例”的经典策略——当一个任务内部的依赖关系无法打破时,与其死磕内部并行,不如看能不能同时喂给硬件更多份互不相关的同类任务,代价是必须攒够一批数据才能开始计算,牺牲了单次请求的响应延迟去换取整体吞吐。
参考来源
《Linux开源存储全栈详解从Ceph到容器存储》第4章《存储加速》