《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 關(guān)聯(lián)規(guī)則挖掘算法的多核并行優(yōu)化
關(guān)聯(lián)規(guī)則挖掘算法的多核并行優(yōu)化
來源:微型機與應(yīng)用2011年第1期
吳華平,鄭曉薇,張建強
(遼寧師范大學(xué) 計算機與信息技術(shù)學(xué)院,遼寧 大連 116081)
摘要: 分析了并行關(guān)聯(lián)規(guī)則挖掘算法存在的不足,提出了一種改進的關(guān)聯(lián)規(guī)則挖掘的多核并行優(yōu)化算法。該算法對Apriori算法的壓縮矩陣進行了改造,并在多核平臺下利用OpenMP技術(shù)和TBB技術(shù)對串行程序進行循環(huán)并行化和任務(wù)分配的并行化設(shè)計,最大限度地實現(xiàn)并行關(guān)聯(lián)規(guī)則挖掘。
Abstract:
Key words :

摘  要: 分析了并行關(guān)聯(lián)規(guī)則挖掘算法存在的不足,提出了一種改進的關(guān)聯(lián)規(guī)則挖掘的多核并行優(yōu)化算法。該算法對Apriori算法的壓縮矩陣進行了改造,并在多核平臺下利用OpenMP技術(shù)和TBB技術(shù)對串行程序進行循環(huán)并行化和任務(wù)分配的并行化設(shè)計,最大限度地實現(xiàn)并行關(guān)聯(lián)規(guī)則挖掘。
關(guān)鍵詞: 關(guān)聯(lián)規(guī)則;Apriori算法;頻繁項集矩陣;OpenMP;TBB;多核并行

    海量數(shù)據(jù)中隱藏著大量的不為人知的模式和知識,尋找有價值的數(shù)據(jù)模式和知識是數(shù)據(jù)挖掘研究的主要內(nèi)容[1]。關(guān)聯(lián)規(guī)則的挖掘是數(shù)據(jù)挖掘中的一項重要的基礎(chǔ)技術(shù)。經(jīng)典的關(guān)聯(lián)規(guī)則挖掘算法主要有Agrawal等提出的基于Apriori算法的頻繁集方法,該算法以遞歸統(tǒng)計為基礎(chǔ),以最小支持度為依據(jù)剪切生成頻繁集。隨著數(shù)據(jù)容量的增加,為了提高關(guān)聯(lián)規(guī)則的挖掘效率,研究人員提出了并行挖掘算法[2-3]。這些并行算法都是基于MPI和機群系統(tǒng)實現(xiàn)的,雖然具有速度快、容易實現(xiàn)、要求各節(jié)點間同步次數(shù)較少等優(yōu)點,但仍然存在著可擴展性差、網(wǎng)絡(luò)通信量大、負載不平衡、處理器空轉(zhuǎn)、規(guī)則合成難度高等缺點。
    目前市場上多核處理器已成為主流,比較有代表性的支持多核處理器的并行計算平臺之一的線程構(gòu)建模塊TBB(Thread Building Blocking),可以在其他多核化工具支持下對串行程序中的可并行化部分進行線程的并行化重構(gòu),提升多核處理器平臺的效能,簡化應(yīng)用程序的并行化過程。本文針對TBB的多核并行編程的優(yōu)勢,結(jié)合OpenMP并行編程,提出了一種改進的關(guān)聯(lián)規(guī)則挖掘多核并行優(yōu)化算法。該算法對Apriori算法的壓縮矩陣進行了改造,只需掃描一次數(shù)據(jù)庫,并利用TBB技術(shù)最大限度地壓縮矩陣,使矩陣的運算規(guī)模逐步減小。它不需要Apriori算法中的自聯(lián)接和剪枝,直接通過支持矩陣行向量的按位“與”運算并行地找出頻繁集,減少了數(shù)據(jù)移動帶來的額外開銷,提高關(guān)聯(lián)規(guī)則挖掘效率。與分布式系統(tǒng)的Apriori并行算法相比,該算法采用多核TBB并行技術(shù),不存在節(jié)點間的通信與同步、負載平衡和規(guī)則合成難度高等問題。實驗證明該算法具有高效的并行挖掘效率和較高的多核CPU利用率。
1 挖掘關(guān)聯(lián)規(guī)則的串行算法
    關(guān)聯(lián)規(guī)則的核心是基于兩階段頻繁項集思想的遞推算法。發(fā)現(xiàn)頻繁項集是關(guān)聯(lián)規(guī)則挖掘應(yīng)用中的技術(shù)和步驟。支持度和置信度是關(guān)聯(lián)規(guī)則挖掘中的兩個重要指標(biāo),為了計算支持度,需要訪問數(shù)據(jù)庫。而Agrawal等人提出的挖掘關(guān)聯(lián)規(guī)則串行算法Apriori是首先掃描數(shù)據(jù)庫,計算每個數(shù)據(jù)項的支持度,并根據(jù)支持度閾值產(chǎn)生頻繁1-項集L1;L1用于找頻繁2-項集L2,L2而用于找L3,如此逐層迭代的搜索,直到不能找到頻繁k-項集。Apriori算法存在一些難以克服的缺陷:(1)可能產(chǎn)生大量的候選項集,沒有排除不應(yīng)該參與組合的元素;(2)多次掃描數(shù)據(jù)庫,大大增加系統(tǒng)的I/O開銷,并且數(shù)據(jù)庫有些可以刪除的項或事務(wù)被多次掃描;(3)連接程序中相同的項重復(fù)較多。針對Apriori算法的缺點,參考文獻[4]將事務(wù)數(shù)據(jù)庫轉(zhuǎn)換為基于內(nèi)存的矩陣,在矩陣上找出所需的頻繁項集,從而大大減少了數(shù)據(jù)庫的掃描次數(shù),但沒有對矩陣進行壓縮。參考文獻[5-6]對矩陣進行了壓縮,但不徹底,而且矩陣數(shù)據(jù)結(jié)構(gòu)不合理,還額外增加了轉(zhuǎn)置矩陣。
    本文介紹一種改進的基于Apriori算法的挖掘關(guān)聯(lián)規(guī)則的多核并行優(yōu)化算法。本文改進了參考文獻[4-5]中的矩陣的數(shù)據(jù)結(jié)構(gòu):在一個單純的事務(wù)矩陣中,添加2個輔助行和1個輔助列,方便矩陣進行徹底的壓縮,使矩陣的規(guī)模逐步減小,運算量也大為減少;同時為了配合查找頻繁k-項集(k>=2)的運算,設(shè)置了一個簡單的輔助二維數(shù)組,用來記錄下標(biāo)組合情況。



2 多核并行編程技術(shù)
    OpenMP是共享存儲系統(tǒng)編程的工業(yè)標(biāo)準(zhǔn),它具有簡單、移植性好和可擴展等優(yōu)點。OpenMP規(guī)范了一系列的編譯制導(dǎo)、運行時庫函數(shù)和環(huán)境變量來說明共享存儲結(jié)構(gòu)的并行機制。OpenMP實現(xiàn)的是線程級的并行,線程間通過讀/寫共享變量實現(xiàn),使用Fork-Join的并行執(zhí)行模式。
    TBB是針對多核平臺開發(fā)的一組開源的C++的模板庫,基于GPLv2開源證書,支持可伸縮的并行編程[7-8]。TBB的編程模式通過使用模板來提供常見的并行迭代模式,使程序員即使在不具備很專業(yè)的同步、負載平衡、緩存優(yōu)化等專門知識的情況下,也能夠?qū)崿F(xiàn)自動調(diào)度的并行程序,使得CPU的多個核心處于高效運轉(zhuǎn)之中。TBB完全支持嵌套的并行,程序員可以很容易地創(chuàng)建自己的并行組件,進而構(gòu)建大型的并行程序。TBB并行編程指定的是任務(wù),而不是線程[9],并以高效的方式將任務(wù)自動映射到線程,程序容易實現(xiàn),且具有更優(yōu)的可移植性和可擴展性。
3 關(guān)聯(lián)規(guī)則挖掘算法的多核并行優(yōu)化
    本文在改進算法的同時,運用多核平臺并行編程的優(yōu)勢,配合采用OpenMP的工作分區(qū)sections和并行庫TBB的tbb_parallel_for,可以實現(xiàn)每個工作段都由多個執(zhí)行核并行執(zhí)行和負載均衡的并行執(zhí)行固定數(shù)目獨立循環(huán)迭代體,用于提高查找頻繁項集的效率。基本流程如圖2所示。

  


4 實驗及分析
    為了驗證基于多核并行技術(shù)的改進挖掘關(guān)聯(lián)規(guī)則算法的性能,本文在Intel(R)Pentium(R)D CPU 3.0 GHz、 1.86 GHz、1 GB內(nèi)存的雙核處理器系統(tǒng)上測試了參考文獻[8]的BBM算法,改進的挖掘關(guān)聯(lián)規(guī)則串行算法(以下稱本文串行算法)及改進的挖掘關(guān)聯(lián)規(guī)則的多核并行優(yōu)化算法(以下簡稱多核并行算法)。從參考文獻[10]選擇數(shù)據(jù)集進行實驗,事務(wù)數(shù)據(jù)庫共100 000條事務(wù),事務(wù)的平均長度為12。實驗測試結(jié)果見表1,其中,加速比=本文串行執(zhí)行時間/多核并行執(zhí)行時間,CPU運行效率=加速比/核數(shù)。
    表1表明,支持度較高時,這三種算法的執(zhí)行時間差別并不大;但當(dāng)支持度逐漸降低時,與BBM算法相比,本文串行算法的執(zhí)行時間要更短,而多核并行算法的執(zhí)行時間幾乎是本文串行算法的一半,具有高的并行挖掘效率。從加速比和CPU利用率分析,多核并行算法的多核CPU運行效率達到90%左右,充分調(diào)度了兩個處理核心的資源,體現(xiàn)了計算機雙核的優(yōu)勢。

    關(guān)聯(lián)規(guī)則技術(shù)是數(shù)據(jù)挖掘中的一種重要的基礎(chǔ)算法,本文在深入研究Apriori算法的基礎(chǔ)上,提出了一種改進的關(guān)聯(lián)規(guī)則挖掘的多核并行優(yōu)化算法,綜合了布爾矩陣和多核并行編程的優(yōu)點,節(jié)約了存儲空間,減少了執(zhí)行時間,具有較高的并行挖掘效率和多核CPU的利用率。本算法的設(shè)計方法對于相關(guān)算法的研究有較好的借鑒作用。
參考文獻
[1] 何軍,劉紅巖,杜小勇.挖掘多關(guān)系關(guān)聯(lián)規(guī)則[J].軟件學(xué)報,2007,18(11).
[2] Boeyen SX.509(2000): 4th Edition Overview of PKI&PMI Frameworks. http: //www. entrust. com.
[3] 何中勝.基于向量的并行關(guān)聯(lián)規(guī)則挖掘算法[J].計算機系統(tǒng)應(yīng)用,2009,18(3):42-45.
[4] 曾萬聘,周緒波,戴勃,等.關(guān)聯(lián)規(guī)則挖掘的矩陣算法[J].計算機工程,2006,32(2):45-47.
[5] 張月琴.基于0-1矩陣的頻繁項集挖掘算法研究[J].計算機工程與設(shè)計,2009,30(20).
[6] 張素蘭.一種基于事務(wù)壓縮的關(guān)聯(lián)規(guī)則優(yōu)化算法[J].計算機工程與設(shè)計,2006,27(18):3450-3453.
[7] Reinders J. Intel threading building blocks[M]. [s.l.]:O’REILLY出版社,2007.
[8]胡斌,袁道華.TBB多核編程及其混合編程模型的研究[J].計算機技術(shù)與發(fā)展,2009,19(2):89-101.
[9] Intel threading building blocks 基于任務(wù)編程[OL]. http://www. cppprog. com/2009/0401/96_2. html.
[10] ALMADEN I. Quest synthetic data generation code. http://www. almaden. ibm. com/cs/quest/syndata. html.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久久国产免费免费| 亚洲欧美日韩一区在线观看| 精品91免费| 欧美国产日本| 亚洲欧美成人精品| 欧美亚洲视频在线看网址| 精品动漫一区二区| 欧美另类视频在线| 午夜视频在线观看一区二区三区| 欧美伊人久久大香线蕉综合69| 亚洲国产成人tv| 国产精品福利av| 久久亚洲图片| 亚洲综合导航| 亚洲国产另类久久久精品极度| 亚洲乱码国产乱码精品精天堂 | 亚洲欧洲精品一区二区三区不卡 | 欧美日韩一区二区三区四区在线观看 | 黄色成人在线观看| 欧美精品一卡| 久久久国产精品一区二区三区| 亚洲精品一品区二品区三品区| 亚洲一区免费观看| 亚洲国产清纯| 国产亚洲欧洲| 国产精品久久久久久av下载红粉| 奶水喷射视频一区| 午夜视频久久久| 99亚洲一区二区| 亚洲第一福利视频| 亚洲午夜91| 亚洲日本黄色| 国产一区视频在线观看免费| 国产精品劲爆视频| 欧美激情亚洲| 久久嫩草精品久久久精品| 亚洲综合视频网| 99国产精品国产精品久久 | 久久激情五月激情| 亚洲午夜精品网| 亚洲欧洲一区二区三区在线观看| 国产婷婷色一区二区三区四区| 欧美日韩精品在线视频| 开心色5月久久精品| 久久激情视频久久| 性欧美xxxx视频在线观看| 在线一区观看| 亚洲蜜桃精久久久久久久| 久久成人免费| 香蕉久久夜色精品国产| 亚洲午夜av在线| 在线视频欧美日韩精品| 亚洲精品你懂的| 亚洲国产va精品久久久不卡综合| 国色天香一区二区| 国产日产高清欧美一区二区三区| 国产精品久久久久毛片软件 | 欧美极品在线播放| 另类春色校园亚洲| 久久漫画官网| 久久激情五月激情| 欧美一区91| 亚洲男人的天堂在线观看| 中文一区二区| av成人天堂| 日韩亚洲在线| 99热免费精品在线观看| 亚洲黄色性网站| 亚洲国产成人精品久久| 欧美中文字幕不卡| 欧美中文字幕在线观看| 欧美一区二区三区的| 欧美亚洲一区二区三区| 欧美亚洲色图校园春色| 欧美一区二区精品在线| 欧美有码在线观看视频| 先锋资源久久| 久久成人人人人精品欧| 亚洲成人在线视频播放 | 亚洲国产欧美一区二区三区久久 | 欧美激情影院| 欧美激情一区二区三区高清视频 | 亚洲看片网站| 一区二区三欧美| 国产精品99久久久久久有的能看| 一本在线高清不卡dvd| 99精品欧美一区二区三区综合在线| 亚洲精品一品区二品区三品区| 亚洲精品视频在线观看网站| 99国产精品视频免费观看| 一区二区免费在线视频| 亚洲一区二区三区免费在线观看 | 欧美在线www| 久久久www成人免费精品| 久久久精品网| 美女亚洲精品| 欧美日韩理论| 国产九区一区在线| 伊人激情综合| 亚洲精品在线二区| 亚洲在线视频免费观看| 久久aⅴ国产紧身牛仔裤| 亚洲欧美国产精品专区久久| 先锋影音国产精品| 91久久极品少妇xxxxⅹ软件| 中文精品视频| 久久久国际精品| 欧美福利视频一区| 欧美视频国产精品| 国产一区二区三区视频在线观看| 亚洲国产高清一区二区三区| 99精品视频免费观看| 亚洲制服欧美中文字幕中文字幕| 久久国产精品亚洲va麻豆| 亚洲乱亚洲高清| 午夜精品美女自拍福到在线| 久久综合网hezyo| 欧美日韩在线视频观看| 国产欧美视频一区二区| 国产真实乱子伦精品视频| 亚洲国产精品女人久久久| 日韩视频专区| 亚洲高清激情| 亚洲欧美日韩成人高清在线一区| 久久人人爽人人爽| 欧美精品久久99| 国产日韩欧美中文| 亚洲人成人一区二区三区| 欧美一级电影久久| 一本大道久久a久久精品综合| 久久成人免费| 欧美日韩不卡| 国产一区二区三区久久| 99re在线精品| 亚洲国产成人精品久久| 亚洲欧美日韩系列| 久久国产精品72免费观看| 一区二区日本视频| 久久一区激情| 国产精品萝li| 最近中文字幕日韩精品 | 亚洲老板91色精品久久| 欧美在线影院在线视频| 欧美日韩 国产精品| 国内精品久久久久久 | 亚洲免费婷婷| aa日韩免费精品视频一| 久久尤物视频| 国产麻豆精品视频| 日韩视频免费在线| 亚洲精品少妇网址| 久久精品一本| 国产精品五区| 一区二区三欧美| 99热在线精品观看| 老司机午夜精品视频| 国产视频在线观看一区二区| 亚洲少妇一区| 一本色道久久加勒比88综合| 美女主播一区| 好吊色欧美一区二区三区视频| 亚洲一区影院| 亚洲综合精品自拍| 欧美三级欧美一级| 亚洲欧洲日产国产综合网| 亚洲成人自拍视频| 久久精品视频在线看| 国产精品视频免费一区| 日韩视频免费观看高清完整版| 亚洲理论在线| 老司机午夜精品视频在线观看| 国产亚洲观看| 午夜精品视频一区| 亚洲欧美日韩精品久久亚洲区 | 国产自产2019最新不卡| 亚洲精品国产精品乱码不99按摩| 亚洲性xxxx| 国产女精品视频网站免费| 亚洲激情在线| 国产精品亚洲欧美| 亚洲国产精品久久久久婷婷884 | 久久aⅴ乱码一区二区三区| 免费成人激情视频| 亚洲午夜极品| 欧美极品欧美精品欧美视频| 销魂美女一区二区三区视频在线| 欧美日韩a区| 久久精彩免费视频| 国产精品高潮呻吟视频| 欧美在线亚洲| 欧美日韩国产小视频在线观看| 性高湖久久久久久久久| 欧美精品尤物在线| 欧美亚洲一级| 国产精品裸体一区二区三区| 亚洲欧洲美洲综合色网| 国产欧美日韩一区| 亚洲一区二区三区免费视频| 在线观看福利一区| 欧美在线啊v|