Responsive image
博碩士論文 etd-0708111-173858 詳細資訊
Title page for etd-0708111-173858
論文名稱
Title
通用圖像處理器上的多重型類比對演算法之實作與應用
The Implementation and Applications of Multi-pattern Matching Algorithm over General Purpose GPU
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
69
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2011-05-27
繳交日期
Date of Submission
2011-07-08
關鍵字
Keywords
平行運算、資料比對、即時處理
real-time, GPU, parallel compute, Solr, pattern matching
統計
Statistics
本論文已被瀏覽 5617 次,被下載 0
The thesis/dissertation has been browsed 5617 times, has been downloaded 0 times.
中文摘要
隨著目前的科技越來越發達,在我們的日常生活中不論是做研究或工作還是
一般生活上,我們常常要藉助各種的電腦設備來協助我們處理一些我們經常會使
用到的資料,而且處理的資料種類和數量也越來越多,例如衛星成像的數據處理、
基因工程計算、全球氣候預報數據、大量資料即時處理等等,這些大量資料中某
些特定類別的資料除了要求其正確性之外也要求其即時性,也就是希望能夠在短
時間之內求出其正確的運算結果。
根據MIT Technology Review 在2010 年8 月所公佈的相關報導指出,大量資
料即時處理為其中一個新興領域,其中也包括資料搜尋的部份,而ㄧ般談到資料
搜尋時所想到的就是資料比對,根據我們所指定要尋找的關鍵字或關鍵資料,然
後利用一些比對演算法在來源的資料做搜尋比對,進而找出結果
本研究就是要利用目前新ㄧ代GPU 的平行運算為基礎架構,去實現平行化比
對演算法,來建構出可處理大量即時資料之服務,並與目前知名的搜尋軟體Apache
Solr 做測試比較,找出其差異性與相對效能,以及未來可能之應用。
Abstract
With the current technology more and more developed, in our daily life, whether
doing research or work, we often use a variety of computer equipment to help us deal
with some of our frequently used data. And the type and quantity of data have become
more and more, such as satellite imaging data, genetic engineering, the global climate
forecasting data, and complex event processing, etc. Some certain types of the data
require both accuracy and timeliness. That is, we hope to look for some data in a shorter
time.
According to MIT Technology Review in August 2010 reported that the relevant
published, complex event processing becomes a new research, and it also includes in
the part of data search. Data search often means data comparing. Given
specified keywords or key information which we are looking for, we design a pattern
matching algorithm to find the results within a shorter time, or even real-time.
In our research, the purpose is to use the general-purpose GPU, NVIDIA Tesla
C2050, with parallel computing architecture to implement parallelism of the pattern
matching. Finally, we construct a service to handle a large number of real-time data. We
also make some performance tests and compare the results with the well-known
software “Apache Solr” to find the differences and the possible application in the future.
目次 Table of Contents
致謝.........................................................i
中文摘要.....................................................ii
英文摘要....................................................iii
1 序論. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.1 研究動機..............................................1
1.2 問題描述..............................................2
2 GPU 和CUDA 簡介..........................................4
2.1 NVIDIA GPU...........................................4
2.1.1 從GPU 到CUDA.....................................4
2.1.2 CUDA 開發..........................................4
2.1.3 CUDA 程式架構......................................5
2.2 CUDA Programming Model.................................7
2.2.1 Host 和device.........................................7
2.2.2 Kernel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.2.3 CUDA 程序流程簡介...................................9
2.3 CUDA Thread Hierarchy...................................10
2.4 GPU 計算單元................................................12
2.5 CUDA Memory Model..................................13
3 Wu-Manber 演算法簡介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
3.1 Wu-Manber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
3.2 Shift table.............................................15
3.3 Hash table............................................15
3.4 Prefix table............................................16
3.5 比對過程................................................16
4 Aho-Corasick 演算法簡介....................................20
4.1 Aho-Corasick............................................20
4.2 演算法說明.............................................20
4.3 函數定義...............................................22
5 Apache Solr 搜尋軟體簡介....................................24
5.1 Solr 介紹.............................................24
5.2 Solr 安裝與配置........................................25
5.3 Solr 搜尋機制..........................................26
5.4 Lucene 簡介.............................................27
5.4.1 Lucene Package 簡介..................................29
5.4.2 基礎class............................................30
5.4.3 進階搜索.............................................32
5.4.4 Lucene 索引文件結構..................................35
6 程式架構與實作............................................39
6.1 程式架構大綱..........................................39
6.2 演算法前置處理部份......................................41
6.2.1 Wu-Manber 前置處理..................................41
6.2.2 Aho-Corasick 前置處理...................................44
6.3 演算法搜尋部份........................................46
6.3.1 Wu-Manber 搜尋處理....................................46
6.3.2 Aho-Corasick 搜尋處理...................................50
7 測試與實驗結果分析........................................52
7.1 最小Pattern 長度對演算法效能影響.........................52
7.2 CUDA Block number 對演算法效能的影響.....................53
7.3 CPU 與GPU 效能比較....................................54
7.4 CUDA 程式與Solr 軟體比較...............................55
8 結論.......................................................57
參考文獻............................................................58
參考文獻 References
[1.] Sun Wu, and Udi Manber “A FAST ALGORITHM FOR MULTI-PATTERN
SEARCHING”, (May 1994)
[2.] Aho, A. V., and M. J. Corasick, ‘‘Efficient string matching: an aid to bibliographic
search,’’ (June 1975)
[3.] Altschul S. F., W. Gish, W. Miller, E. W. Myers, and D. J. Lipman, ‘‘Basic local
alignment search tool,’’ (1990)
[4.] Baeza-Yates R. A., ‘‘Improved string searching,’’ Software — Practice and
Experience (1989)
[5.] Boyer R. S., and J. S. Moore, ‘‘A fast string searching algorithm,’’ (October 1977),
[6.] Commentz-Walter, B, ‘‘A string matching algorithm fast on the average,’’ (1979)
[7.] Tom R. Halfhill,” PARALLEL PROCESSINGWITH CUDA, Nvidia’s
High-Performance Computing Platform Uses Massive Multithreading”(2008)
[8.] Nen-Fu Huang+,*, Hsien-Wei Hung*, Sheng-Hung Lai+, Yen-Ming Chu*,
Wen-Yen Tsai,” A GPU-based Multiple-pattern Matching Algorithm for Network
Intrusion Detection Systems”
[9.] J. Moscola, J. Lockwood, R. P. Loui, and M. Pachos, “Implementation of a
content-scanning module for an internet firewall,” April 9–11, 2003
[10.] S. Antonatos, K. Anagnostakis, and E. Markatos. Generating realistic workloads
for network intrusion detection systems. January 2004.
[11.] M. Attig and J. Lockwood. “A framework for rule processing in reconfigurable
network systems”. 2005
[12.] Z. K. Baker and V. K. Prasanna. “Time and area efficient pattern matching on
FPGAs.” 2004
59
[13.] H. Bos and K. Huang. “Towards software-based signature detection for intrusion
prevention on the network card.” September 2005
[14.] R. S. Boyer and J. S. Moore. “A fast string searching algorithm.” October 1977.
[15.] J. B. D. Cabrera, J. Gosar,W. Lee, and R. K. Mehra. “On the statistical distribution
of processing times in network intrusion detection.”, December 2004.
[16.] Giorgos Vasiliadis, Spiros Antonatos, Michalis Polychronakis, Evangelos P.,
Markatos, and Sotiris Ioannidis,” Gnort: High Performance Network Intrusion
Detection Using Graphics Processors”
[17.] http://developer.download.nvidia.com/compute/cuda/3_0/toolkit/docs/online/
[18.] http://java.chinaitlab.com/advance/732532.html
[19.] http://www.blogjava.net/RongHao/archive/2007/11/06/158621.html
[20.] http://www.ibm.com/developerworks/cn/java/j-solr2/index.html
[21.] http://chris701203.pixnet.net/blog/post/21777867
[22.] http://polinwei.blogspot.com/2008/07/ant.html
[23.] http://www.heiqu.com/show-33529-1.html
[24.] http://web.nchu.edu.tw/~jlu/cyut/tomcat55.shtml
[25.] http://543.vipe.idv.tw/2008/07/ubuntujdk.html
[26.] 張舒,褚艷利,趙開勇,張鈺勃,GPU 高性能運算之CUDA
[27.] http://www.gpgpu.org
60
[28.] http://dev.firnow.com/course/3_program/java/javajs/200861/118523.html
[29.] http://mxsfengg.javaeye.com/category/52207?show_full=true
[30.] NVIDIA CUDA™ Programming Guide Version 2.2.1, http://www.nvidia.com
[31.]
http://translate.google.com.tw/translate?hl=zh-TW&sl=zh-CN&u=http://www.guanwei.
org/post/tech/07/Boyer-Moore.html&ei=F5lmTNDeJ5DCvQPWxvT9Aw&sa=X&oi=tr
anslate&ct=result&resnum=1&ved=0CAgQ7gEwADgo&prev=/search%3Fq%3Dboyer
%2Bmoore%26start%3D40%26hl%3Dzh-TW%26sa%3DN%26rlz%3D1T4GGLL_zh-
TWTW338TW338
[32.] http://www.ibm.com/developerworks/cn/java/j-lo-lucene1/
[33.] http://www.ibm.com/developerworks/cn/web/wa-lucene2/#Listing5
[34.] http://www.ibm.com/developerworks/cn/java/wa-lucene/
[35.] http://www.docin.com/p-23453416.html
[36.] http://kheresy.wordpress.com/
[37.] http://polinwei.blogspot.com/2008/07/ant.html
[38.] http://my.opera.com/jinglepot/blog/installing-solr-on-tomcat-version-5-5-and
[39.] http://www.heiqu.com/show-33529-1.html
[40.] http://web.nchu.edu.tw/~jlu/cyut/tomcat55.shtml
61
[41.] http://apachecat.wordpress.com/2008/03/27/solr 超新手入門/
[42.]
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.WordDelimiterFilter
Factory
[43.] http://wiki.chenlb.com/solr/doku.php?id=solrtomcat
[44.] http://apachecat.wordpress.com/category/ir/
[45.] http://www.javaeye.com/topic/364513
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:校內校外均不公開 not available
開放時間 Available:
校內 Campus:永不公開 not available
校外 Off-campus:永不公開 not available

您的 IP(校外) 位址是 18.191.216.163
論文開放下載的時間是 校外不公開

Your IP address is 18.191.216.163
This thesis will be available to you on Indicate off-campus access is not available.

紙本論文 Printed copies
紙本論文的公開資訊在102學年度以後相對較為完整。如果需要查詢101學年度以前的紙本論文公開資訊,請聯繫圖資處紙本論文服務櫃台。如有不便之處敬請見諒。
開放時間 available 已公開 available

QR Code