a static load-balancing scheme for parallel xml parsing on multicore cpus

28
KUAS A Static Load-Balancing Scheme for Parallel XML Parsing on Multicore CPUs 碩碩碩 碩碩碩 1098308113 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 [email protected], [email protected]

Upload: keenan

Post on 10-Feb-2016

41 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

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]

Page 2: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

www.themegallery.com

大綱

概述任務分割任務分配平行剖析

效能結果結論

介紹

Page 3: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

www.themegallery.com

Company Logo

摘要如何達到平行 XML文件 ?

軟體方法: DOM 、 SAX 。 硬體方法: CPU 內多個核心。

從本篇論文中所提出的方法是 ?

主要優點是 ? 減少同步問題和負載平衡的額外負擔。

Page 4: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

1. 介紹SAX :

全名: Simple API for XML 。 是個循序存取 XML 的解析器 API 。 優點: 記憶體使用量遠低 DOM 。 缺點:某些種類 XML 需要存取整份文件。

DOM( 文件物件模型 ) : 全名: Document Object Model 。 優點:它內置在很多應用程式中。 缺點:記憶體使用量高。

www.themegallery.com

Company Logo

Page 5: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

2. 概述如何達到平行剖析 XML?

管線處理。 資料平行: PXP 結構

資料平行的四個步驟: Pre-parsing Task partitioning Parallel parsing Post-parsing

www.themegallery.com

Company Logo

Page 6: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

2. 概述PXP 結構

第三、四部分介紹

第五部分介紹

Page 7: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

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

Page 8: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

3. 任務分割我們將 XML 文件分割成數個區塊,每一個區塊表示一個任務。此階段的目標:

中找出一組任務集合。 對每個任務做最佳的運作。

分割方式 : 靜態分割。 動態分割。

www.themegallery.com

Company Logo

Page 9: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

3.1 子樹任務www.themegallery.com

Company Logo

Page 10: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

3.1 子樹任務

Page 11: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

3.1 子樹任務永久的 DOM 節點

臨時的 DOM 節點

Page 12: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

3.1 子樹任務

Page 13: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

3.2 陣列任務如果孩子的數目大於一定的限制時,把一個節點作為陣列。差異點 子樹任務 陣列任務

任務 一顆子樹 一片森林

建立 為整個子樹建, placeholder 節點 為每個範圍,建一個單獨

placeholder

Page 14: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

3.2 陣列任務

Page 15: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

3.2 陣列任務www.themegallery.com

Company Logo

Page 16: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

4. 任務分配www.themegallery.com

Company Logo

此階段主要目標: 將分割好的任務均衡的分配給 thread 。

兩種任務分配: 子樹任務。 陣列任務。

分配步驟: 1. 我們把 XML 分割成任務。 2. 用 FIFO 循序的方法把陣列任務分配給

thread 。 3. 接著把子樹任務也分配給 thread 。

Page 17: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

5. 平行剖析www.themegallery.com

Company Logo

使用的剖析器: libxm12 。 是 Gnome 專案開發的可跨平台 XML 剖析器。 它是根據 MIT License 的 免費軟體。

剖析時使用的 libxm12 函數: xmlParseInNodeContext() xmlReplaceNode() xmlAddChildList()

Page 18: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

5. 平行剖析

Page 19: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

5. 平行剖析

Page 20: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

6. 效能結果硬體:

Sun Fire T1000 的機器, 6 核心且 24 thread 。

library 版本: libxml2 2.6.16 。

結果探討: Performance Breakdown 。 Speedup and Efficiency Analysis 。 Scalability Analysis 。

Page 21: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

6. 效能結果XML 的文件:

來源: Protein Data Bank 。

它由兩個大陣代表分子資料,以及一組元素表示分子屬性。

Page 22: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

6.1 Performance Breakdown

13% 53%

0.17% 0.57%

Page 23: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

6.2 Speedup and Efficiency Analysis

6 12 18 24 30

Page 24: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

6.2 Speedup and Efficiency Analysis

Page 25: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

6.2 Speedup and Efficiency Analysis

Page 26: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

6.3 Scalability Analysis

當文件大小超過256KB 時,有比較明顯的差異。

Speedup 大約3.7 。

Speedup 大約2.5 。

Speedup 大約1.5 。

Page 27: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

7. 結論我們證明靜態剖析構想在多核心電腦且一般 XML文件架構,可擴展性和效能上比動態更好。靜態負載平衡構想最重要,是可以直接使用目前已經有的 XML 剖析器。未來發展:

一個混合的解決方案,它可以提供靜態和動態負載平衡控制。 動態構想可以考慮改善地方: work-stealing 、 scheduling policies and

lock-free structures 。

www.themegallery.com

Company Logo

Page 28: A Static Load-Balancing Scheme for Parallel XML Parsing  on  Multicore  CPUs

KUAS

www.themegallery.com