a static load-balancing scheme for parallel xml parsing on multicore cpus
DESCRIPTION
A Static Load-Balancing Scheme for Parallel XML Parsing on Multicore CPUs. Yinfei Pan1, Wei Lu2, Ying Zhang1, Kenneth Chiu1 1. Department of Computer Science, State University of New York, Binghamton 2. Computer Science Department, Indiana University - PowerPoint PPT PresentationTRANSCRIPT
KUAS
A Static Load-Balancing Scheme for Parallel XML Parsing on Multicore CPUs
碩資工一甲 廖祥虎 1098308113
Yinfei Pan1, Wei Lu2, Ying Zhang1, Kenneth Chiu11. Department of Computer Science, State University of New York, Binghamton
2. Computer Science Department, Indiana [email protected], [email protected]
www.themegallery.com
大綱
概述任務分割任務分配平行剖析
效能結果結論
介紹
www.themegallery.com
Company Logo
摘要如何達到平行 XML文件 ?
軟體方法: DOM 、 SAX 。 硬體方法: CPU 內多個核心。
從本篇論文中所提出的方法是 ?
主要優點是 ? 減少同步問題和負載平衡的額外負擔。
1. 介紹SAX :
全名: Simple API for XML 。 是個循序存取 XML 的解析器 API 。 優點: 記憶體使用量遠低 DOM 。 缺點:某些種類 XML 需要存取整份文件。
DOM( 文件物件模型 ) : 全名: Document Object Model 。 優點:它內置在很多應用程式中。 缺點:記憶體使用量高。
www.themegallery.com
Company Logo
2. 概述如何達到平行剖析 XML?
管線處理。 資料平行: PXP 結構
資料平行的四個步驟: Pre-parsing Task partitioning Parallel parsing Post-parsing
www.themegallery.com
Company Logo
2. 概述PXP 結構
第三、四部分介紹
第五部分介紹
2. 概述
<root xmlns=“www.indiana.edu”><foo id=“0”>hello</foo><bar><!– comment --><?name pidata?><a>world</a></bar></root>
xmlns
root
foo bar
id hello
comment
pidata
a
world
3. 任務分割我們將 XML 文件分割成數個區塊,每一個區塊表示一個任務。此階段的目標:
中找出一組任務集合。 對每個任務做最佳的運作。
分割方式 : 靜態分割。 動態分割。
www.themegallery.com
Company Logo
3.1 子樹任務www.themegallery.com
Company Logo
3.1 子樹任務
3.1 子樹任務永久的 DOM 節點
臨時的 DOM 節點
3.1 子樹任務
3.2 陣列任務如果孩子的數目大於一定的限制時,把一個節點作為陣列。差異點 子樹任務 陣列任務
任務 一顆子樹 一片森林
建立 為整個子樹建, placeholder 節點 為每個範圍,建一個單獨
placeholder
3.2 陣列任務
3.2 陣列任務www.themegallery.com
Company Logo
4. 任務分配www.themegallery.com
Company Logo
此階段主要目標: 將分割好的任務均衡的分配給 thread 。
兩種任務分配: 子樹任務。 陣列任務。
分配步驟: 1. 我們把 XML 分割成任務。 2. 用 FIFO 循序的方法把陣列任務分配給
thread 。 3. 接著把子樹任務也分配給 thread 。
5. 平行剖析www.themegallery.com
Company Logo
使用的剖析器: libxm12 。 是 Gnome 專案開發的可跨平台 XML 剖析器。 它是根據 MIT License 的 免費軟體。
剖析時使用的 libxm12 函數: xmlParseInNodeContext() xmlReplaceNode() xmlAddChildList()
5. 平行剖析
5. 平行剖析
6. 效能結果硬體:
Sun Fire T1000 的機器, 6 核心且 24 thread 。
library 版本: libxml2 2.6.16 。
結果探討: Performance Breakdown 。 Speedup and Efficiency Analysis 。 Scalability Analysis 。
6. 效能結果XML 的文件:
來源: Protein Data Bank 。
它由兩個大陣代表分子資料,以及一組元素表示分子屬性。
6.1 Performance Breakdown
13% 53%
0.17% 0.57%
6.2 Speedup and Efficiency Analysis
6 12 18 24 30
6.2 Speedup and Efficiency Analysis
6.2 Speedup and Efficiency Analysis
6.3 Scalability Analysis
當文件大小超過256KB 時,有比較明顯的差異。
Speedup 大約3.7 。
Speedup 大約2.5 。
Speedup 大約1.5 。
7. 結論我們證明靜態剖析構想在多核心電腦且一般 XML文件架構,可擴展性和效能上比動態更好。靜態負載平衡構想最重要,是可以直接使用目前已經有的 XML 剖析器。未來發展:
一個混合的解決方案,它可以提供靜態和動態負載平衡控制。 動態構想可以考慮改善地方: work-stealing 、 scheduling policies and
lock-free structures 。
www.themegallery.com
Company Logo
KUAS
www.themegallery.com