基于无锁数据结构的FIFO队列算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于无锁数据结构的 NHNG队列算法
王俊昌&$ 王"振&$ 付"雄&$
!&$南京邮电大学 计算机学院"南京 $&%%$+$ $$江苏省大数据安全与智能处理重点实验室"南京 $&%%$+#
摘"要 现代商用多核处理器缺少硬件支持的处理核间通信机制"多个处理核间必须通过加锁保护的共享内存传 递数据% 为此"设计一种基于软件的无锁队列作为核间通信机制"通过无锁数据结构提高软件队列的性能% 当数 据 到 达 速 率 较 低 时 "队 列 自 适 应 地 减 小 队 列 长 度 "从 而 占 用 较 小 的 内 存 空 间 "进 而 更 好 地 利 用 处 理 器 高 速 缓 存 $ 当 数据到达速率较高时"队列自适应地增加队列长度"以避免数据丢失% 实验结果表明"在数据到达速率变化较大的 实际应用场景中"该队列较 EC2*E",KC,D'3&40./P)II+,和 P8=)+)+队列具有更高的数据处理性能% 关键词 无锁数据结构$多核处理$流水线并行$自适应调整$&H:核间通信
第 !! 卷"第 # 期 " !"#$!!" %"$# "
开发研究与工程应用
计算机工程 ""
&"'()*+,-./0.++,0./
$%&# 年 # 月 1)/)2*$%&#
文 章 编 号 !"""#$%&'&"!'"'#"$!L#"() ) ) 文 献 标 志 码 *) ) ) 中 图 分 类 号 +,$!!
针对数据到达速率不稳定的实际应用场景"本 文提出一种 新 的 无 锁 队 列 N0.>=)+)+% 当 数 据 到 达 速 率 较 低 时 "自 适 应 地 减 小 队 列 大 小 "以 减 少 内 存 占 用 $而 当 数 据 到 达 速 率 较 高 时 "则 自 适 应 地 增 加 队 列 大小"以避免数据丢失%
+ *C9;<07;, 3"D+,. ?"''+,?0C#')#*0?",+(,"?+22",2#C?Q CFC,DKC,+82)((",*+D '+?FC.02' I",(,"?+220./ 0.*+,8?",+ ?"'').0?C*0"."C.D ')#*0(#+(,"?+220./ ?",+2')2*(C22DC*C*F,")/F #"?Q+D 2FC,+D '+'",>$NF+,+I",+"C2"I*KC,+8GC2+D #"?Q8I,++T)+)+02D+20/.+D C2C. 0.*+,8?",+?"'').0?C*0". '+?FC.02'"*" 0'(,"L+*F+(+,I",'C.?+"I*F+2"I*KC,+T)+)+ *F,")/F *F+DC*C2*,)?*),+K0*F")*#"?Q$9F+. *F+DC*CC,,0LC#,C*+02#"K+," *F+T)+)+CDC(*0L+#> ,+D)?+2*F+T)+)+ #+./*F"*F)2*CQ0./ )( #+22'+'",> 2(C?+C.D 'CQ0./ G+**+,)2+"I(,"?+22",?C?F+$9F+. *F+DC*CC,,0LC#,C*+02F0/F+," *F+T)+)+CDC(*0L+#> 0.?,+C2+2*F+T)+)+#+./*F *" CL"0D DC*C#"22$-O(+,0'+.*C#,+2)#*22F"K *FC**F02T)+)+FC2F0/F+, DC*C(,"?+220./ (+,I",'C.?+*FC. EC2*E",KC,D" 3&40./P)II+,C.D P8=)+)+T)+)+20. (,C?*0?C#C((#0?C*0". 2?+.C,0"2 KF+,+*F+DC*CC,,0LC#,C*+?FC./+2/,+C*#>$ + D8B E4<69, #"?Q8I,++ DC*C 2*,)?*),+$ ')#*08?",+ (,"?+220./$ (0(+#0.+ (C,C##+#02'$ 2+#I8CDR)2*'+.*$ &H: ?",+8*"8?",+ ?"'').0?C*0". FGH*&%$&('*# SR$022.$&%%%8+!$#$%%)%$'(
由于现代商用多核处理器中普遍缺乏硬件支持 的核间通信机制()) "因此当前研究大多采用基于软件 实现的无 锁 队 列(&8$"'8*) 作 为 流 水 线 的 核 间 通 信 机 制% 然 而 "现 有 无 锁 队 列 算 法 在 设 计 时 均 假 设 数 据 的 到 达
速率处于 稳 定 状 态"如 果 输 入 数 据 到Biblioteka Baidu达 速 率 波 动 较 大"队列将频 繁 地 趋 于 空 或 趋 于 满"从 而 导 致 无 锁 队 列性能急剧下降% 因此"在真实应用场景中"采用流 水线并行技术的软件性能往往急剧下降%
NHNG _5858*2@4<1;>/ J09864:O47Q#U<88F0;0 =;<57;5<8
91%A 5).?FC./&"$ "91%A 7F+.&"$ "E: B0"./&"$
!&$J?F""#"I&"'()*+,J?0+.?+"%C.R0./ :.0L+,20*> "IH"2*2C.D N+#+?"'').0?C*0".2"%C.R0./ $&%%$+"&F0.C$ $$50C./2) <+> ;CG",C*",> "IP0/ 6C*CJ+?),0*> C.D X.*+##0/+.*H,"?+220./"%C.R0./ $&%%$+"&F0.C#
")概述
近 年 来 "随 着 多 核 处 理 器 的 广 泛 应 用 "高 速 应 用 程序的并 行 化 飞 速 发 展 (&8!) % 其 中 一 种 可 行 的 并 行 化方法为流水线并行化"即多核处理器中的一个处 理器核心完成较大任务中的第一阶段子任务"然后 将该任务传递给另一个核心"该核心负责完成下一 阶段的子任务处理%
中文引用格式王俊昌"王"振"付"雄$基于无锁数据结构的 EXEV队列算法(5)$计算机工程"$%&#"!!!## *+&)8+$%$ 英文引用格式91%A 5).?FC./"91%A 7F+."E: B0"./$EXEV T)+)+C#/",0*F' GC2+D ". #"?Q8I,++DC*C2*,)?*),+( 5) $ &"'()*+,-./0.++,0./"$%&#"!!!## *+&)8+$%$
相关文档
最新文档