• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于GPU的可擴(kuò)展哈希方法*

    2015-12-19 11:59:22胡學(xué)萱奚建清林妙
    關(guān)鍵詞:表項(xiàng)數(shù)組哈希

    胡學(xué)萱 奚建清 林妙

    (1.華南理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,廣東 廣州510006;2.華南理工大學(xué) 軟件學(xué)院,廣東 廣州510006)

    哈希索引是一種快速的數(shù)據(jù)檢索方法,已廣泛應(yīng)用于文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)及一些情報(bào)檢索系統(tǒng)中[1].動(dòng)態(tài)哈希能優(yōu)雅地?cái)U(kuò)展存儲(chǔ)空間,根據(jù)其方法的不同,可分為可擴(kuò)展哈希[2]和線性哈希[3].如 何擴(kuò)展和收縮哈希表,快速更新索引記錄以便有效地使用哈希索引,一直以來受到人們的廣泛關(guān)注.Ellis[4]提出了一種基于目錄鎖和桶鎖的兩級(jí)鎖模式的可擴(kuò)展并行哈希算法;Hsu 等[5]提出了一種可以并發(fā)插入刪除的可擴(kuò)展哈希算法;Kumar[6]提出的EHCW算法使用了兩階段鎖和事務(wù)回滾的策略,可并發(fā)擴(kuò)展/收縮目錄,分裂/合并數(shù)據(jù)頁;Lea[7]提出了一種基于復(fù)雜鎖模式的Java 并發(fā)包,允許在改變表大小的同時(shí)進(jìn)行并行查詢;Gao 等[8]提出的可擴(kuò)展哈希算法周期性地切換到全局以調(diào)整哈希表大小狀態(tài),進(jìn)行多進(jìn)程協(xié)作執(zhí)行數(shù)據(jù)項(xiàng)遷移;Shalev 等[9]提出的RSO 算法通過改變桶地址來擴(kuò)展或收縮表;Zhang 等[10]提出了基于線性哈希和RSO算法的LHlf 算法;陳虎等[11]提出了一種利用多核處理器的并行計(jì)算能力提升批量插入線性哈希表性能的算法;黃玉龍等[12]提出了一種圖形處理器(GPU)加速的線性哈希表的批量插入算法GBLHT.

    高性能和可擴(kuò)展的哈希表是當(dāng)代大數(shù)據(jù)應(yīng)用的需求,故需要提高哈希表的并發(fā)處理能力.可編程圖形處理器因其眾核和高存儲(chǔ)器帶寬而成為并行計(jì)算的超強(qiáng)工具,統(tǒng)一計(jì)算設(shè)備架構(gòu)(CUDA)這種基于GPU 的計(jì)算架構(gòu),提供了易用的編程模型和應(yīng)用程序接口(API),使得將GPU 用于通用計(jì)算成為可能[13].為充分利用GPU 的高并發(fā)計(jì)算能力,提升可擴(kuò)展哈希方法的性能,文中提出了一種基于GPU 的可擴(kuò)展哈希方法gEHT.

    1 相關(guān)的哈希方法

    1.1 可擴(kuò)展哈希方法

    可擴(kuò)展哈希方法分裂和合并桶時(shí),不像線性哈希方法那樣按順序進(jìn)行,而是按需要進(jìn)行[2],即當(dāng)向桶內(nèi)插入的數(shù)據(jù)量超過桶的剩余容量時(shí),就分裂該桶,一次分裂產(chǎn)生的兩個(gè)桶互為對(duì)應(yīng)桶;反之,當(dāng)桶及其對(duì)應(yīng)桶內(nèi)數(shù)據(jù)被刪除后不足一個(gè)桶的容量時(shí),就合并這兩個(gè)桶.

    圖1給出了一個(gè)初始桶經(jīng)過多次分裂形成的分裂樹,其中樹根為初始桶,實(shí)節(jié)點(diǎn)為已分裂產(chǎn)生的桶,稱為實(shí)桶,虛節(jié)點(diǎn)為預(yù)分裂產(chǎn)生的桶,稱為虛桶;實(shí)有向邊為已產(chǎn)生的分裂,虛有向邊為預(yù)產(chǎn)生的分裂.桶分裂一次,產(chǎn)生實(shí)有向邊所指的下一層的兩個(gè)桶,最底層的所有實(shí)桶為現(xiàn)有桶.可見,桶000、001、100、101、10 和11 為現(xiàn)有桶.

    圖1 桶的分裂樹Fig.1 Split tree of bucket

    由于各桶的層次無序,必然導(dǎo)致有些目錄項(xiàng)所指的桶為虛桶,解決的方法是將這樣的目錄項(xiàng)指向該虛桶的實(shí)上級(jí)桶,即分裂樹上該虛桶到初始桶的分裂路徑上最大深度的實(shí)桶.這樣,在檢索數(shù)據(jù)時(shí),能一次定位到不同局部深度的桶上,而不用層層探索,加快了檢索速度.

    1.2 基于并行技術(shù)的動(dòng)態(tài)哈希

    文獻(xiàn)[4-7]中提出基于鎖的算法,具有死鎖、長(zhǎng)時(shí)間延遲和優(yōu)先級(jí)倒置的缺點(diǎn),當(dāng)進(jìn)行表的擴(kuò)展或收縮時(shí),這些情況更加嚴(yán)重.文獻(xiàn)[8]算法使用了write-all 算法,時(shí)間復(fù)雜度為常數(shù).RSO 算法[9]使用鏈表來存儲(chǔ)數(shù)據(jù),故其訪問效率低,僅適用于將關(guān)鍵字的低位作為最高有效位的哈希函數(shù).文獻(xiàn)[10-12]算法使用了溢出桶,降低了檢索效率,并且延遲的分裂使得分裂前溢出桶的數(shù)據(jù)要重新遷移到分裂后的桶中,這種冗余的數(shù)據(jù)遷移必然會(huì)降低插入的效率.

    2 可擴(kuò)展哈希方法在GPU 上的實(shí)現(xiàn)

    2.1 基于GPU 的存儲(chǔ)結(jié)構(gòu)

    為了在GPU 上動(dòng)態(tài)伸縮表并克服可擴(kuò)展哈希表成倍擴(kuò)展的缺陷,文中采用兩層表結(jié)構(gòu),分別是段表segList 和桶表bucketList,段表存放段地址,桶表存放桶地址.以桶表的伸縮實(shí)現(xiàn)少量的表擴(kuò)展,段表的重構(gòu)實(shí)現(xiàn)大量的表擴(kuò)展[12].當(dāng)擴(kuò)展的桶集中在少數(shù)的段時(shí),只需擴(kuò)展少數(shù)的桶表,其他未擴(kuò)展桶表可被重用.另外,段表、桶表和桶內(nèi)數(shù)據(jù)都采用數(shù)組(即便于GPU 并行處理的結(jié)構(gòu)),并且桶內(nèi)數(shù)據(jù)采用數(shù)組的結(jié)構(gòu)體(SOA)結(jié)構(gòu)而非結(jié)構(gòu)體的數(shù)組(AOS),以適應(yīng)GPU 的存儲(chǔ)器的優(yōu)化存取要求.文獻(xiàn)[12]的兩層存儲(chǔ)結(jié)構(gòu)僅用于動(dòng)態(tài)伸縮.文中采用的存儲(chǔ)結(jié)構(gòu)如下:

    上述定義中,Gd 為全局深度,bucketNum 為現(xiàn)有桶的數(shù)量,Ld 為桶的局部深度,insertLoc 為桶內(nèi)下一個(gè)空閑地址,數(shù)組is_df 是每條數(shù)據(jù)的刪除標(biāo)記.初始時(shí)有M 段,每段由N 個(gè)桶構(gòu)成,每個(gè)桶的容量為b 條記錄.維護(hù)這種結(jié)構(gòu)的挑戰(zhàn)在于保證桶分裂/合并和表擴(kuò)展/收縮后,目錄項(xiàng)能指向改變后的桶.表及桶的改變分為以下4 種情況:

    (1)桶分裂,段表不擴(kuò)展.如果桶b[i]分裂產(chǎn)生新桶b[i+M·N·2b[i].Ld],分裂后所有桶的最大局部深度未超過全局深度,則段表不擴(kuò)展.如果沒有第(i+M·N·2b[i].Ld)/N 段桶表則增加它,修改該桶表第(i+M·N·2b[i].Ld)%N 項(xiàng)指向新桶,其他項(xiàng)指向相應(yīng)虛桶的實(shí)上級(jí)桶.桶b[i]和b[i+M·N·2b[i].Ld]的局部深度為b[i].Ld+1.

    (2)桶合并,段表不收縮.若桶b[i]和b[i+M·N·2b[i].Ld]合并,合并后所有桶的最大局部深度不小于全局深度,則段表不收縮.釋放桶b[i+M·N·2b[i].Ld],修改桶表目錄項(xiàng)i+M·N·2b[i].Ld指向桶b[i],桶b[i]的局部深度為b[i].Ld-1.若第(i+M·N·2b[i].Ld)/N 段桶表所有表項(xiàng)指向的桶的局部深度都小于全局深度,則釋放該段桶表.

    (3)段表擴(kuò)展.若分裂后所有桶的最大局部深度大于全局深度,則段表擴(kuò)展.擴(kuò)展后的第(i+M·N·2b[i].Ld)/N 項(xiàng)指向新增的桶表,其他表項(xiàng)指向其實(shí)上級(jí)桶所在的桶表.

    (4)段表收縮.合并后所有桶的最大局部深度小于全局深度,則段表收縮.

    圖2為桶分裂/合并和表擴(kuò)展/收縮的一個(gè)例子.圖2(a)所示的桶經(jīng)過收縮和擴(kuò)展,產(chǎn)生圖2(b)、2(c)所示的桶和表.其中,圖2(a)的桶00 和10、01和11 分別合并為圖2(b)的兩個(gè)桶0 和1,則原指向桶00、10 的表項(xiàng)合并后指向其實(shí)上級(jí)桶0,指向01、11 的表項(xiàng)合并后指向其實(shí)上級(jí)桶1,桶的最大局部深度小于合并前的全局深度,段表和桶表收縮為原表的一半.圖2(a)的桶00 擴(kuò)展為圖2(c)的桶000 和100,桶的最大局部深度大于原全局深度,段表擴(kuò)展一倍,桶表擴(kuò)展第2 段,使段表的第2 項(xiàng)指向新增的桶表,第3 項(xiàng)指向第1 段桶表.新增的桶表中,第4 項(xiàng)指向新增的桶100,其他擴(kuò)展的表項(xiàng)5 指向虛桶101 的實(shí)上級(jí)桶01.可見,采用這種目錄結(jié)構(gòu)雖然擴(kuò)展了指向新增桶的桶表,但能尋址倍增的桶(包括虛桶).

    圖2 表的收縮和擴(kuò)展Fig.2 Shrinking and growing of table

    2.2 創(chuàng)建哈希表算法

    哈希索引的創(chuàng)建包括創(chuàng)建段表、桶表和桶,并使段表和桶表的各項(xiàng)指向新創(chuàng)建的桶表和桶.算法并行創(chuàng)建段內(nèi)的桶,偽代碼如下:

    2.3 查詢算法

    檢索數(shù)據(jù)先計(jì)算該數(shù)據(jù)的散列值,然后定位到桶中并在桶中搜索該數(shù)據(jù).在GPU 中,可使每個(gè)數(shù)據(jù)用一個(gè)線程處理,高并發(fā)地執(zhí)行.文獻(xiàn)[12]的查詢算法是基于線性哈希的,因而,對(duì)每個(gè)數(shù)據(jù)的查詢,延遲比可擴(kuò)展哈希大.文中查詢算法的偽代碼如下:

    2.4 刪除算法

    本算法采用延遲刪除的策略,即刪除并不立即執(zhí)行,只對(duì)刪除數(shù)據(jù)做標(biāo)記.在批量插入數(shù)據(jù)時(shí),用插入數(shù)據(jù)覆蓋有刪除標(biāo)記的數(shù)據(jù).該算法只需要在查詢算法queryEHTable 中加入對(duì)要?jiǎng)h除的索引記錄做標(biāo)記,文中不再贅述.

    2.5 插入算法

    當(dāng)批量插入的數(shù)據(jù)量大于該桶的剩余容量時(shí),需要分裂桶,如果分裂后仍不能滿足插入需要,則要繼續(xù)分裂直到滿足需求為止.分裂會(huì)使部分?jǐn)?shù)據(jù)遷移到新桶中,這些中間過程的數(shù)據(jù)遷移是不必要的,會(huì)降低索引更新速度,成為插入過程的性能瓶頸[11].因此,文中采用預(yù)分裂技術(shù),先循環(huán)預(yù)測(cè)桶的分裂情況,再分裂桶或擴(kuò)展表并插入數(shù)據(jù);充分利用GPU的計(jì)算能力,并行處理預(yù)測(cè)過程和實(shí)際插入過程以提高插入效率.

    批量插入算法流程如圖3所示,預(yù)測(cè)部分和插入部分的算法主要由子算法A、B、C、D 構(gòu)成.插入算法的步驟如下:

    圖3 批量插入算法流程圖Fig.3 Flowchart of batch insertion algorithm

    (1)計(jì)算數(shù)據(jù)插入的桶號(hào)insert_bucketNo、各桶插入數(shù)據(jù)量insert_bucketNum、待分裂的桶號(hào)needSMBucketNo、待分裂的段號(hào)needSMSegNo、桶預(yù)計(jì)分裂到的局部深度SMBucketLd、待分裂桶的數(shù)量needSMBucketNum、所有待分裂桶預(yù)計(jì)分裂到的最大局部深度maxOfBucketLd.若待分裂桶的數(shù)量needSMBucketNum>0,則置待分裂桶標(biāo)記needSMBucketFlag=1,并根據(jù)上輪循環(huán)預(yù)計(jì)的桶分裂到的局部深度SMBucketLd,循環(huán)計(jì)算以上數(shù)據(jù),直到needSMBucketNum=0,如算法A(countInsert).

    (2)若所有待分裂桶預(yù)計(jì)分裂到的最大局部深度maxOfBucketLd>Gd,則轉(zhuǎn)步驟(3),否則轉(zhuǎn)步驟(4).

    (3)擴(kuò)展段表和桶表,將擴(kuò)展的段表表項(xiàng)指向新建的桶表,如算法B(growsTable).

    (4)若有需要分裂的桶,即needSMBucketFlag=1,則轉(zhuǎn)步驟(5),否則轉(zhuǎn)步驟(6).

    (5)分裂桶,修改桶表指針,如算法C(splitBucket).

    (6)插入數(shù)據(jù),如算法D(insertData).

    如2.4 節(jié)所述,插入數(shù)據(jù)將覆蓋有刪除標(biāo)記的數(shù)據(jù),因此批量插入數(shù)據(jù)除了上述情況外,也會(huì)有合并桶和收縮表的情況.限于篇幅,以下偽代碼僅為分裂桶和擴(kuò)展表的情況:

    2.6 算法優(yōu)化

    根據(jù)CUDA 的編程模型,將計(jì)算密集的任務(wù)交給GPU 線程網(wǎng)格處理,如核函數(shù)A、B、C、D,而CPU執(zhí)行邏輯復(fù)雜的處理.在GPU 上的并行優(yōu)化主要從以下幾個(gè)方面考慮:

    1)任務(wù)粒度劃分.粒度越細(xì),越能充分利用GPU大量的輕量級(jí)線程,算法的并行度越高.文中的創(chuàng)建算法中,桶間并行執(zhí)行;查詢算法中,各數(shù)據(jù)可并行查詢;插入算法的預(yù)測(cè)部分中,對(duì)各數(shù)據(jù)的插入位置、各桶分裂情況的計(jì)算相互獨(dú)立;在擴(kuò)展表、分裂桶和插入數(shù)據(jù)算法中,段間、桶間和數(shù)據(jù)間的操作相互獨(dú)立,蘊(yùn)含大量并行操作,如For each tid…parallel do 與End for 之間的代碼所示.

    2)程序重構(gòu).GPU 的體系結(jié)構(gòu)使其適于進(jìn)行邏輯簡(jiǎn)單和數(shù)據(jù)并行的密集計(jì)算.文中合并多個(gè)循環(huán)以增強(qiáng)計(jì)算密度,隱藏訪存延遲;重構(gòu)分支以避免warp 內(nèi)分支轉(zhuǎn)移造成性能下降;將不同粒度的并行操作合并為一個(gè)核函數(shù),以增強(qiáng)計(jì)算密度、減少核函數(shù)啟動(dòng)開銷和數(shù)據(jù)傳輸開銷.

    計(jì)算每個(gè)桶是否分裂、分裂到的層次等,其迭代空間是所有的桶,因而可合并循環(huán),如A7-A13 行;計(jì)算每個(gè)數(shù)據(jù)的插入位置與計(jì)算每個(gè)桶是否需要分裂,其任務(wù)粒度不同,故不能合并循環(huán),但可以合并為一個(gè)核函數(shù),以便將待插入數(shù)據(jù)eData 放入共享存儲(chǔ)器重用,如算法A.計(jì)算桶是否分裂以及桶的層數(shù),需要根據(jù)插入數(shù)據(jù)量與桶的剩余容量大小比較進(jìn)行分支選擇,文中重構(gòu)該分支語句,將比較插入數(shù)據(jù)量與桶的剩余容量大小的邏輯值賦給記錄桶是否分裂的數(shù)組needSMBucketNo,并將該數(shù)組作為桶層數(shù)的增量,如A8、A9 行.

    3)數(shù)據(jù)的組織與存儲(chǔ)訪問.適合并行處理的數(shù)據(jù)結(jié)構(gòu)、對(duì)GPU 上各存儲(chǔ)器的充分利用以及規(guī)則的訪問模式是存儲(chǔ)優(yōu)化的主要方法.

    (1)數(shù)組能體現(xiàn)數(shù)據(jù)的并行性,適于GPU 上的密集計(jì)算.文中對(duì)哈希表結(jié)構(gòu)、算法的輸入數(shù)據(jù)eData、中 間 變 量(如insert_bucketNo、insert_bucket Num、needSMBucketNo、SMBucketLd 等)及輸出結(jié)果qResult 都使用數(shù)組.為了全局存儲(chǔ)器的合并訪問,盡量將數(shù)據(jù)由AOS 轉(zhuǎn)為SOA 結(jié)構(gòu)[14],如桶內(nèi)數(shù)據(jù)Data 和輸入數(shù)據(jù)eData.文獻(xiàn)[12]采用數(shù)組結(jié)構(gòu),但沒有將AOS 轉(zhuǎn)為SOA 結(jié)構(gòu).

    (2)GPU 的多層次存儲(chǔ)器可滿足不同需求,共享存儲(chǔ)器訪問速度快但容量有限,為塊內(nèi)線程所共有,適合存放重用的局部性數(shù)據(jù);全局存儲(chǔ)器容量大但速度慢.高效利用片上局部存儲(chǔ)器,可提高計(jì)算全局訪存比CGMA[13],且采用規(guī)則訪問的模式能顯著改善程序的存儲(chǔ)墻問題.如算法A 中,待插入數(shù)據(jù)eData 循環(huán)重用,宜用共享存儲(chǔ)器存儲(chǔ).從上述算法可以看出,各數(shù)組的訪存模式中,除insert_bucketNum 為隨機(jī)訪存,needSMSegNo 為跳步訪存外,其他都是規(guī)則訪問,使得全局存儲(chǔ)器能合并訪問,不產(chǎn)生局部訪存沖突,而這兩個(gè)數(shù)組的非規(guī)則訪存,并不適宜進(jìn)行循環(huán)重構(gòu)和數(shù)組重構(gòu)[15]來改變其訪存模式.文獻(xiàn)[12]未提到共享存儲(chǔ)器的使用以及數(shù)據(jù)的規(guī)則訪問.

    4)使用cuda 提供的原子函數(shù)和并行算法庫以提高代碼的性能,如A5、A11、A12 和D1 行所示.

    3 算法性能分析

    文中從時(shí)間和空間兩方面討論gEHT 的性能.假設(shè)哈希表初始段數(shù)為M,每段的桶數(shù)為N,每個(gè)桶的容量為b,現(xiàn)有桶的數(shù)量為bucketNum,現(xiàn)有記錄數(shù)為m,批處理的數(shù)據(jù)規(guī)模為batchNum.

    3.1 時(shí)間開銷

    (1)查詢時(shí)間開銷.由queryEHTable 算法可知,其時(shí)間開銷tq主要由計(jì)算搜索鍵對(duì)應(yīng)散列值的時(shí)間tc、定位包含數(shù)據(jù)的桶以及在桶中檢索目標(biāo)數(shù)據(jù)的時(shí)間ts構(gòu)成.由Q3 和Q4-Q8 行知,tc的復(fù)雜度為O(1),ts的復(fù)雜度為O(b),因此,查詢時(shí)間tq的復(fù)雜度為O(b)+O(1),即為常數(shù)時(shí)間,且數(shù)據(jù)規(guī)模batch-Num 越大,越能充分利用GPU 的并行計(jì)算能力,從而獲得更高的吞吐量.

    (2)插入時(shí)間開銷.由insertEHTable 算法可知,其總時(shí)間開銷ti主要由預(yù)測(cè)部分和實(shí)際操作部分各子算法的執(zhí)行時(shí)間tA、tB、tC和tD組成.

    子算法A 循環(huán)執(zhí)行,在最好情況下數(shù)據(jù)平均插入所有桶中,循環(huán)次數(shù)為batchNum/(bucketNum·b);在最壞情況下數(shù)據(jù)都插入同一個(gè)桶中,循環(huán)次數(shù)為batchNum/b,其循環(huán)內(nèi)部的A2-A6、B7-B13 行并行執(zhí)行,時(shí)間開銷為O(1).算法B、C 中B2-C11、C1-C7行也是并行執(zhí)行,其并行內(nèi)部循環(huán)次數(shù)與預(yù)測(cè)部分的循環(huán)次數(shù)相同,循環(huán)內(nèi)部的時(shí)間開銷為O(1).算法D 中D1 行的時(shí)間代價(jià)為O(logrbatchNum)[14](r 為基數(shù)),D2-D4 行并行執(zhí)行的時(shí)間開銷為O(1).因此,總時(shí)間開銷ti在最好情況下為O(batchNum/(bucketNum·b)+ logrbatchNum),在最壞情況下為O(batchNum/b+logrbatchNum)).

    3.2 空間開銷

    文中從總空間開銷和表擴(kuò)展的開銷兩個(gè)方面來分析.

    1)總空間開銷.在GPU 上建立的哈希索引,如2.1 節(jié)所述,其顯存的開銷S 主要包括段表空間SsegList、桶表空間SbucketList和桶空間Sbucket.

    若m 條記錄占有桶數(shù)L(m)≈m/(bln 2)[16],則占有空間Sbucket=bL(m)≈m/ln2,桶表所需空間SbucketList為O(m(1+1/b)/b)[17],段表空間SsegList為O(m(1+1/b)/(Nb)),總空間S 為O(m/ln2+m(1+1/b)/b+m(1+1/b)/(Nb)).

    2)表擴(kuò)展的開銷.假設(shè)分裂桶產(chǎn)生a 個(gè)桶段的擴(kuò)展,0≤a≤M(M 為擴(kuò)展前桶的段數(shù),即段表長(zhǎng)度),則段表增加M 項(xiàng),桶表增加aN 項(xiàng)(N 為每段桶表的長(zhǎng)度),共擴(kuò)展M+aN 項(xiàng).若無段表僅有桶表,則表項(xiàng)要增加MN 項(xiàng).

    (1)當(dāng)數(shù)據(jù)傾斜,分裂的桶不多,即a?M 時(shí),雙層表結(jié)構(gòu)中表的擴(kuò)展是線性的,而單層表結(jié)構(gòu)中表的擴(kuò)展是二次的,更加劇烈;

    (2)當(dāng)數(shù)據(jù)均勻分布,每段都有桶分裂,即a≈M時(shí),雙層結(jié)構(gòu)表的擴(kuò)展接近M+MN 項(xiàng),單層結(jié)構(gòu)表的擴(kuò)展接近MN 項(xiàng),而M?MN,因此這種情況下,雙層結(jié)構(gòu)比單層結(jié)構(gòu)多的表項(xiàng)也是有限的.

    4 實(shí)驗(yàn)

    實(shí)驗(yàn)在CPU+GPU 的異構(gòu)平臺(tái)上進(jìn)行,CPU 為Intel Core i7-4770k,四核3.50 GHz 主頻,GPU 為NVIDIA GeForce GTX 770,1536 CUDA Cores,每個(gè)核的頻率為1.19 GHz,顯存容量為4 GB.集成開發(fā)環(huán)境為VisioStudio2010,GPU 開發(fā)工具包為CUDA5.5.

    文中設(shè)計(jì)兩部分實(shí)驗(yàn),分別從時(shí)間和空間兩個(gè)方面檢驗(yàn)gEHT 算法的有效性.測(cè)試數(shù)據(jù)集是隨機(jī)產(chǎn)生的鍵值對(duì)構(gòu)成的記錄,每條記錄平均長(zhǎng)度為10B,每桶的記錄容量b 為64 條,初始桶的總數(shù)M×N 為8×1024.

    實(shí)驗(yàn)1對(duì)比Lea 算法、RSO 算法、GBLHT 算法和gEHT 算法在數(shù)據(jù)操作上的時(shí)間性能,其中Lea算法和RSO 算法均采用4 線程.

    在包含90%的查詢數(shù)據(jù)、6%的插入數(shù)據(jù)和4%的刪除數(shù)據(jù)的負(fù)載下,4 種算法的吞吐量如圖4所示.在4 線程算法中,鎖沖突對(duì)Lea 算法帶來的影響不大,其性能略高于RSO 算法.RSO 算法和gEHT算法的性能都會(huì)隨著數(shù)據(jù)量的增加而有所波動(dòng),這是因?yàn)楸硎湛s或擴(kuò)展的時(shí)間損耗使其吞吐量下降.GBLHT 算法采用的線性哈希及前述優(yōu)化問題,使其性能略低于gEHT 算法.總的來說,隨著負(fù)載的增加,GBLHT 和gEHT 算法充分利用了GPU 的計(jì)算能力,顯著地提高了吞吐量.

    圖4 不同負(fù)載下4 種算法的吞吐量Fig.4 Throughputs of four algorithms under different loads

    實(shí)驗(yàn)2測(cè)試Fagin 的EH(Extendible Hashing)算法和gEHT 算法隨著數(shù)據(jù)的插入表擴(kuò)展所占用的空間情況.

    圖5 表的大小與插入數(shù)據(jù)量的關(guān)系Fig.5 Directory size versus number of insertions

    如圖5所示,EH 算法在擴(kuò)展表時(shí),表長(zhǎng)成倍增長(zhǎng),而gEHT 算法接近線性的增長(zhǎng),并且隨著插入數(shù)據(jù)的增加,表空間擴(kuò)展的速度放緩,甚至小于EH 算法的表空間大小.這是因?yàn)殡S著表空間的擴(kuò)大,更多的段表項(xiàng)指向相同的桶表,越來越多的桶表被重用,以致盡管gEHT 算法比EH 算法多出段表,其總的表空間大小也不會(huì)超過EH 算法.

    5 結(jié)論

    可擴(kuò)展哈希是一種具有最快檢索速度的動(dòng)態(tài)哈希,文中利用GPU 實(shí)現(xiàn)了可擴(kuò)展哈希算法gEHT.首先利用GPU 的計(jì)算能力和CUDA 的編程模型,設(shè)計(jì)并實(shí)現(xiàn)了哈希表的創(chuàng)建、索引的更新以及數(shù)據(jù)檢索的高并發(fā)算法;為了克服表長(zhǎng)增長(zhǎng)劇烈的缺陷,文中采用二級(jí)表結(jié)構(gòu),使得段表能重用部分桶表,大大地節(jié)省了表結(jié)構(gòu)對(duì)空間的需求.最后,通過實(shí)驗(yàn)驗(yàn)證了gEHT 算法的性能.

    顯存空間十分有限,文中討論的算法都是在待處理數(shù)據(jù)能夠全部放在顯存中的前提下進(jìn)行處理的.大數(shù)據(jù)的特征使得批量處理的數(shù)據(jù)量更大,當(dāng)其大于顯存容量時(shí),又應(yīng)該如何在GPU 上使用哈希索引,是下一步要考慮的問題.

    [1]Du H C,Ghanta S,Maly K J,et al.An efficient file structure for document retrieval in the automated office environment [J].IEEE Transactions on Knowledge and Data Engineering,1989,1(2):258-273.

    [2]Fagin Ronald,Nievergelt Jurg,Pippenger Nicholas,et al.Extendible hashing:a fast access method for dynamic files[J].ACM Transactions on Database Systems,1979,4(3):315-344.

    [3]Lirwzn W.linear hashing:a new tool for files and table addressing [C]//Proceedings of the 6th Conference on VLDB.Montreal:VLDB Endowment,1980:212-223.

    [4]Ellis C S.Concurrency in linear hashing [J].ACM Transactions on Database Systems,1987,12(2):195-217.

    [5]Hsu M,Yang W.Concurrent operations in extendible hashing[C]//Proceedings of the 12th Conference on VLDB.Kyoto:Morgan Kaufmann Publishers Inc,1986:241-247.

    [6]Kumar Vijay.Concurrent operations on extendible hashing and its performance [J].Communications of the ACM,1990,33(6):681-694.

    [7]Lea D.Hash table util.con current.concurrent hash map,revision 1.25,in JSR-166,the proposed Java Concurrency package [EB/OL].(2013-12-01)[2014-03-10].http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/.

    [8]Gao H,Groote J F,Hesselink W H.Almost wait-free resizable hashtables[C]//Proceedings of the 18th International Parallel and Distributed Processing Symposium.Santa Fe:IEEE,2004:681-689.

    [9]Shalev Ori,Shavit Nir.Split-ordered lists:lock-free extensiblehash tables (poster paper) [J].Journal of the ACM,2006,53(3):379-405.

    [10]Zhang D,Larson P-A.LHlf:lock-free linear hashing[C]//Proceedings of the 17th ACM SIGPLAN Symposium on Principles&Practice of Parallel Programming.New York:ACM,2012:307-308.

    [11]陳虎,唐海浩,廖江苗,等.面向批量插入優(yōu)化的并行存儲(chǔ)引擎MTPower [J].計(jì)算機(jī)學(xué)報(bào),2010,33(8):1492-1499.Chen Hu,Tang Hai-hao,Liao Jiang-miao,et al.MTPower:a parallel database storage engine for batch insertion[J].Chinese Journal of Computers,2010,33(8):1492-1499.

    [12]黃玉龍,奚建清,張平健,等.GBLHT:一種GPU 加速的批量插入線性哈希表[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2012,40(4):49-56.Huang Yu-long,Xi Jian-qing,Zhang Ping-jian,et al.GBLHT:a GPU-accelerated linear Hash table with batch insertion [J].Journal of South China University of Technology:Natural Science Edition,2012,40(4):49-56.

    [13]NVIDIA Corporation.NVIDIA CUDA programming guide version 4.2[EB/OL].(2012-04-16)[2014-03-10].http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#ixzz3I5UFqJtq.

    [14]Bell N,Hoberock J.Thrust:a productivity-oriented library for CUDA[EB/OL].(2012-12-10)[2014-03-10].http://cloud.github.com/downloads/thrust/thrust/Thrust% 3A%20A% 20Productivity-Oriented% 20Library% 20for%20CUDA.pdf.

    [15]Leung S-T.Array restructuring for cache locality [R].Seattle:Department of Computer Science and Engineering,University of Washington,1996.

    [16]Enbody R J,Du H C.Dynamic hashing schemes [J].ACM Computing Surveys,1988,20(2):85-113.

    [17]Gonnct G H.算法和數(shù)據(jù)結(jié)構(gòu)手冊(cè)[M].張子讓,周曉東,譯,北京:人民郵電出版社,1988.

    猜你喜歡
    表項(xiàng)數(shù)組哈希
    一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
    JAVA稀疏矩陣算法
    JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
    基于ARMA模型預(yù)測(cè)的交換機(jī)流表更新算法
    SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
    基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
    基于維度分解的哈希多維快速流分類算法
    尋找勾股數(shù)組的歷程
    基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
    一種基于Bigram二級(jí)哈希的中文索引結(jié)構(gòu)
    国产高清videossex| 色综合婷婷激情| 国产精品 国内视频| 日韩欧美一区视频在线观看| 一边摸一边抽搐一进一出视频| 国产精品欧美亚洲77777| 91国产中文字幕| 成人免费观看视频高清| 女人高潮潮喷娇喘18禁视频| 757午夜福利合集在线观看| 成人三级做爰电影| 亚洲精华国产精华精| 亚洲成av片中文字幕在线观看| 久久久久久人人人人人| 亚洲午夜理论影院| 亚洲成国产人片在线观看| 午夜福利在线免费观看网站| 美女午夜性视频免费| 欧美日韩黄片免| 咕卡用的链子| 久久ye,这里只有精品| 黄色片一级片一级黄色片| 国产有黄有色有爽视频| 另类亚洲欧美激情| 欧美亚洲日本最大视频资源| 欧美性长视频在线观看| 精品午夜福利视频在线观看一区 | 久久午夜亚洲精品久久| 国产在线视频一区二区| 亚洲成人免费av在线播放| 久久精品亚洲精品国产色婷小说| 欧美日韩亚洲国产一区二区在线观看 | kizo精华| 狠狠精品人妻久久久久久综合| 女人爽到高潮嗷嗷叫在线视频| av网站免费在线观看视频| 国产不卡av网站在线观看| 国产欧美日韩一区二区三区在线| 一本大道久久a久久精品| 淫妇啪啪啪对白视频| 日韩大片免费观看网站| 男人操女人黄网站| 91av网站免费观看| 老汉色av国产亚洲站长工具| 在线观看一区二区三区激情| 热re99久久精品国产66热6| 久久国产亚洲av麻豆专区| 可以免费在线观看a视频的电影网站| 国产福利在线免费观看视频| 日本精品一区二区三区蜜桃| 精品一品国产午夜福利视频| 国产高清视频在线播放一区| 一区二区三区激情视频| 丁香六月欧美| 免费av中文字幕在线| 少妇的丰满在线观看| 成人手机av| 久久中文字幕一级| 国产精品免费一区二区三区在线 | 亚洲欧美一区二区三区久久| 国产一区二区 视频在线| 国产精品亚洲av一区麻豆| 久久久国产成人免费| 亚洲九九香蕉| 捣出白浆h1v1| 大型黄色视频在线免费观看| 国产成+人综合+亚洲专区| 午夜免费鲁丝| 777米奇影视久久| 18禁裸乳无遮挡动漫免费视频| 亚洲五月婷婷丁香| 精品国产一区二区三区久久久樱花| 久久中文看片网| 国产主播在线观看一区二区| 午夜免费成人在线视频| 国产精品98久久久久久宅男小说| 一区二区三区乱码不卡18| 亚洲欧美日韩高清在线视频 | 中文字幕制服av| 91字幕亚洲| 激情视频va一区二区三区| 成年版毛片免费区| 久久精品亚洲精品国产色婷小说| 高潮久久久久久久久久久不卡| 国产精品 欧美亚洲| 国产成人一区二区三区免费视频网站| 国产色视频综合| 亚洲av日韩在线播放| 国产一卡二卡三卡精品| 国产精品久久久人人做人人爽| 欧美+亚洲+日韩+国产| 亚洲精品成人av观看孕妇| 国产精品久久久久久精品电影小说| 欧美人与性动交α欧美软件| 精品少妇久久久久久888优播| 日韩中文字幕视频在线看片| 久久九九热精品免费| 色精品久久人妻99蜜桃| 99精国产麻豆久久婷婷| 日本黄色日本黄色录像| 国产欧美日韩精品亚洲av| 一区福利在线观看| 免费少妇av软件| 嫩草影视91久久| 美女视频免费永久观看网站| 欧美日韩精品网址| 9热在线视频观看99| 一区二区三区乱码不卡18| 丁香六月欧美| 国产成人av激情在线播放| 国产精品亚洲av一区麻豆| 99久久精品国产亚洲精品| 国产在线免费精品| 欧美日韩成人在线一区二区| 国产免费福利视频在线观看| 中国美女看黄片| 久久人妻熟女aⅴ| 久久99一区二区三区| 日韩视频一区二区在线观看| 天天操日日干夜夜撸| 十八禁网站网址无遮挡| 日韩欧美一区视频在线观看| 国产又爽黄色视频| 波多野结衣av一区二区av| videos熟女内射| 男女床上黄色一级片免费看| 久久狼人影院| 国产又色又爽无遮挡免费看| 免费黄频网站在线观看国产| 亚洲精品在线观看二区| 日韩欧美国产一区二区入口| 999精品在线视频| 亚洲欧美精品综合一区二区三区| 在线十欧美十亚洲十日本专区| 女人爽到高潮嗷嗷叫在线视频| 99久久99久久久精品蜜桃| 国产亚洲精品一区二区www | 50天的宝宝边吃奶边哭怎么回事| 国产aⅴ精品一区二区三区波| 多毛熟女@视频| svipshipincom国产片| 国产在线精品亚洲第一网站| 黑人猛操日本美女一级片| 欧美精品av麻豆av| 久久午夜综合久久蜜桃| 夫妻午夜视频| 午夜成年电影在线免费观看| 欧美国产精品一级二级三级| 久久国产精品人妻蜜桃| 淫妇啪啪啪对白视频| 日日爽夜夜爽网站| 中文字幕av电影在线播放| 亚洲色图综合在线观看| 国产免费视频播放在线视频| 美国免费a级毛片| 夜夜骑夜夜射夜夜干| 亚洲精品一卡2卡三卡4卡5卡| 午夜免费鲁丝| 高潮久久久久久久久久久不卡| 啦啦啦视频在线资源免费观看| 欧美日韩福利视频一区二区| av超薄肉色丝袜交足视频| 欧美黑人欧美精品刺激| 99国产精品免费福利视频| 国产亚洲欧美在线一区二区| 极品教师在线免费播放| 啪啪无遮挡十八禁网站| 老鸭窝网址在线观看| 麻豆av在线久日| 一区二区三区精品91| 最黄视频免费看| av片东京热男人的天堂| 国产精品一区二区在线不卡| 久久午夜综合久久蜜桃| 一级毛片电影观看| 精品少妇久久久久久888优播| 国产av国产精品国产| 黑人操中国人逼视频| 色婷婷久久久亚洲欧美| 妹子高潮喷水视频| 每晚都被弄得嗷嗷叫到高潮| 国产亚洲精品第一综合不卡| 日韩 欧美 亚洲 中文字幕| 久久久精品免费免费高清| 久久久久精品人妻al黑| 黄色视频不卡| 亚洲欧美一区二区三区黑人| 亚洲国产欧美一区二区综合| 视频在线观看一区二区三区| 免费人妻精品一区二区三区视频| 国产精品成人在线| 两性夫妻黄色片| 菩萨蛮人人尽说江南好唐韦庄| 99久久精品国产亚洲精品| 一级片'在线观看视频| 国产成人啪精品午夜网站| 久久热在线av| 成人永久免费在线观看视频 | 免费观看av网站的网址| 国产精品久久久久久人妻精品电影 | av福利片在线| 精品久久蜜臀av无| 欧美大码av| 天天躁日日躁夜夜躁夜夜| 欧美精品亚洲一区二区| 成人特级黄色片久久久久久久 | 91麻豆精品激情在线观看国产 | 国精品久久久久久国模美| 欧美激情久久久久久爽电影 | 极品少妇高潮喷水抽搐| 日本五十路高清| 考比视频在线观看| 免费高清在线观看日韩| 大型av网站在线播放| 欧美精品一区二区大全| 亚洲色图 男人天堂 中文字幕| 无人区码免费观看不卡 | 狠狠精品人妻久久久久久综合| 免费黄频网站在线观看国产| 少妇被粗大的猛进出69影院| 国产不卡一卡二| a级片在线免费高清观看视频| 国产欧美亚洲国产| 叶爱在线成人免费视频播放| 欧美精品人与动牲交sv欧美| 香蕉国产在线看| 操美女的视频在线观看| www.熟女人妻精品国产| 欧美日韩一级在线毛片| 免费不卡黄色视频| 亚洲国产中文字幕在线视频| 亚洲欧美日韩高清在线视频 | 欧美日本中文国产一区发布| 精品国产一区二区三区久久久樱花| 大型av网站在线播放| 一边摸一边抽搐一进一小说 | 国产一区二区三区综合在线观看| 俄罗斯特黄特色一大片| 亚洲一卡2卡3卡4卡5卡精品中文| 多毛熟女@视频| 日日夜夜操网爽| 国产精品久久久久成人av| 热re99久久精品国产66热6| av天堂在线播放| 午夜福利,免费看| 亚洲国产精品一区二区三区在线| 日本一区二区免费在线视频| 欧美成人免费av一区二区三区 | 肉色欧美久久久久久久蜜桃| 视频在线观看一区二区三区| 国产国语露脸激情在线看| 精品第一国产精品| 飞空精品影院首页| 叶爱在线成人免费视频播放| 亚洲欧洲日产国产| 妹子高潮喷水视频| 天天添夜夜摸| 99热网站在线观看| 亚洲一区中文字幕在线| 成人av一区二区三区在线看| 在线观看一区二区三区激情| 亚洲男人天堂网一区| 精品久久久久久久毛片微露脸| 亚洲天堂av无毛| 搡老乐熟女国产| 老司机亚洲免费影院| 欧美亚洲日本最大视频资源| 欧美黑人精品巨大| 成在线人永久免费视频| 国产精品美女特级片免费视频播放器 | 搡老熟女国产l中国老女人| 亚洲中文字幕日韩| 日韩成人在线观看一区二区三区| 精品人妻熟女毛片av久久网站| 久久久国产精品麻豆| 视频在线观看一区二区三区| 国产精品久久电影中文字幕 | 午夜精品久久久久久毛片777| 免费久久久久久久精品成人欧美视频| 精品久久久精品久久久| 纯流量卡能插随身wifi吗| 午夜福利一区二区在线看| 男女免费视频国产| 99热国产这里只有精品6| 搡老乐熟女国产| 在线 av 中文字幕| 丝瓜视频免费看黄片| 91精品三级在线观看| 91国产中文字幕| 精品久久蜜臀av无| 国产精品一区二区精品视频观看| 精品亚洲成a人片在线观看| 人人妻人人爽人人添夜夜欢视频| 亚洲av日韩在线播放| 极品人妻少妇av视频| 国产成人免费无遮挡视频| 中文亚洲av片在线观看爽 | 国产真人三级小视频在线观看| 99国产综合亚洲精品| 日韩有码中文字幕| 国产一区二区 视频在线| 下体分泌物呈黄色| 免费少妇av软件| 色94色欧美一区二区| 91国产中文字幕| 制服人妻中文乱码| 777久久人妻少妇嫩草av网站| 亚洲成人免费av在线播放| 亚洲精品国产精品久久久不卡| 国产亚洲精品久久久久5区| 亚洲熟女精品中文字幕| 一级毛片电影观看| 又紧又爽又黄一区二区| 国产老妇伦熟女老妇高清| 他把我摸到了高潮在线观看 | 老司机亚洲免费影院| 国产成人系列免费观看| 国产一区二区激情短视频| 中国美女看黄片| 国产成人啪精品午夜网站| 亚洲自偷自拍图片 自拍| videos熟女内射| 国产精品.久久久| 国产精品秋霞免费鲁丝片| 亚洲欧美日韩高清在线视频 | 99国产精品一区二区蜜桃av | 国产麻豆69| 宅男免费午夜| 成人国产av品久久久| 午夜福利在线免费观看网站| 国产人伦9x9x在线观看| 少妇粗大呻吟视频| 男女免费视频国产| 日日夜夜操网爽| 久久精品aⅴ一区二区三区四区| 国产国语露脸激情在线看| 麻豆乱淫一区二区| 国产亚洲精品久久久久5区| 一级毛片女人18水好多| 美女午夜性视频免费| 日本wwww免费看| 亚洲中文字幕日韩| 天堂中文最新版在线下载| 久久青草综合色| 免费看a级黄色片| 天天添夜夜摸| 老司机午夜十八禁免费视频| 国产av国产精品国产| 欧美日韩黄片免| 深夜精品福利| 在线观看免费日韩欧美大片| 久久影院123| 黑人巨大精品欧美一区二区mp4| 成年动漫av网址| 51午夜福利影视在线观看| 一本色道久久久久久精品综合| 美女福利国产在线| 国产亚洲精品第一综合不卡| 视频区欧美日本亚洲| 免费在线观看黄色视频的| 日本av手机在线免费观看| 国产精品亚洲一级av第二区| 久久毛片免费看一区二区三区| 久久99一区二区三区| 亚洲精品乱久久久久久| 丰满少妇做爰视频| 久久久久久久国产电影| 一二三四社区在线视频社区8| 久久久国产精品麻豆| 免费女性裸体啪啪无遮挡网站| 国产成人精品久久二区二区91| 久久精品成人免费网站| 午夜精品久久久久久毛片777| 亚洲伊人久久精品综合| 成年女人毛片免费观看观看9 | 国产欧美日韩精品亚洲av| 一级片免费观看大全| 国产97色在线日韩免费| 制服人妻中文乱码| av不卡在线播放| 狠狠精品人妻久久久久久综合| 18禁国产床啪视频网站| 亚洲av日韩在线播放| 国产国语露脸激情在线看| 丰满迷人的少妇在线观看| 成年版毛片免费区| 99国产极品粉嫩在线观看| 黄片小视频在线播放| 天天操日日干夜夜撸| 国产97色在线日韩免费| 国产av国产精品国产| 亚洲一区中文字幕在线| 日韩制服丝袜自拍偷拍| 一进一出好大好爽视频| 亚洲七黄色美女视频| av片东京热男人的天堂| 搡老熟女国产l中国老女人| av欧美777| 如日韩欧美国产精品一区二区三区| 日日爽夜夜爽网站| 天天影视国产精品| 后天国语完整版免费观看| 亚洲午夜理论影院| 国产真人三级小视频在线观看| 欧美亚洲 丝袜 人妻 在线| 一级毛片女人18水好多| 精品亚洲成a人片在线观看| 国产精品久久久久久人妻精品电影 | 黄色怎么调成土黄色| 一个人免费看片子| 丝袜人妻中文字幕| 美女福利国产在线| 天天影视国产精品| 亚洲精华国产精华精| 丁香六月欧美| 久久精品熟女亚洲av麻豆精品| 青草久久国产| 国产成人精品久久二区二区免费| 国产xxxxx性猛交| 国产精品偷伦视频观看了| 美国免费a级毛片| 黄片小视频在线播放| 十分钟在线观看高清视频www| 亚洲精品一卡2卡三卡4卡5卡| 国产一区二区激情短视频| av又黄又爽大尺度在线免费看| 777久久人妻少妇嫩草av网站| 国产精品.久久久| 91麻豆av在线| 免费在线观看影片大全网站| 少妇裸体淫交视频免费看高清 | 久久久国产成人免费| 男男h啪啪无遮挡| 亚洲精品久久成人aⅴ小说| tocl精华| 热99国产精品久久久久久7| 大片免费播放器 马上看| 男人操女人黄网站| 欧美国产精品va在线观看不卡| 亚洲,欧美精品.| 日本vs欧美在线观看视频| 水蜜桃什么品种好| 国产在线视频一区二区| 成年女人毛片免费观看观看9 | 欧美亚洲 丝袜 人妻 在线| 国产1区2区3区精品| 欧美精品高潮呻吟av久久| 国产av又大| 欧美性长视频在线观看| 欧美午夜高清在线| 亚洲国产av新网站| 国产亚洲av高清不卡| 91av网站免费观看| 看免费av毛片| 巨乳人妻的诱惑在线观看| 中文欧美无线码| 欧美人与性动交α欧美软件| 国产91精品成人一区二区三区 | 亚洲精品中文字幕在线视频| 国产男女超爽视频在线观看| 欧美精品av麻豆av| 老熟女久久久| 这个男人来自地球电影免费观看| 亚洲av片天天在线观看| 国产一卡二卡三卡精品| 日韩一卡2卡3卡4卡2021年| 超碰97精品在线观看| 亚洲黑人精品在线| 美女福利国产在线| 午夜福利一区二区在线看| 欧美乱妇无乱码| 亚洲成人手机| 精品人妻在线不人妻| 久久午夜亚洲精品久久| 久久国产亚洲av麻豆专区| 日本欧美视频一区| 日韩欧美免费精品| 欧美久久黑人一区二区| 亚洲三区欧美一区| 国产男女超爽视频在线观看| 国产亚洲欧美精品永久| 亚洲精品中文字幕在线视频| 天堂中文最新版在线下载| 50天的宝宝边吃奶边哭怎么回事| videos熟女内射| 99riav亚洲国产免费| 欧美乱码精品一区二区三区| 黄片小视频在线播放| 两人在一起打扑克的视频| 亚洲熟女毛片儿| 性色av乱码一区二区三区2| 成人18禁高潮啪啪吃奶动态图| 免费在线观看影片大全网站| 亚洲国产精品一区二区三区在线| 丁香六月欧美| 考比视频在线观看| 欧美国产精品一级二级三级| 久久亚洲精品不卡| 老司机福利观看| 999久久久国产精品视频| 亚洲精华国产精华精| 国产精品1区2区在线观看. | 日韩欧美一区视频在线观看| 国产区一区二久久| 丝袜喷水一区| 亚洲第一欧美日韩一区二区三区 | 一进一出好大好爽视频| 一进一出抽搐动态| 欧美日韩av久久| 99国产精品免费福利视频| 多毛熟女@视频| 波多野结衣av一区二区av| 别揉我奶头~嗯~啊~动态视频| 黑人巨大精品欧美一区二区mp4| 中亚洲国语对白在线视频| 亚洲欧美激情在线| 欧美日韩成人在线一区二区| 精品一区二区三区视频在线观看免费 | 精品少妇黑人巨大在线播放| 一级毛片电影观看| 国产精品香港三级国产av潘金莲| 国产熟女午夜一区二区三区| 侵犯人妻中文字幕一二三四区| 亚洲av日韩在线播放| 亚洲自偷自拍图片 自拍| 肉色欧美久久久久久久蜜桃| 亚洲欧美一区二区三区久久| 99精国产麻豆久久婷婷| 香蕉久久夜色| 欧美日韩亚洲综合一区二区三区_| 女人爽到高潮嗷嗷叫在线视频| 99在线人妻在线中文字幕 | 久久精品国产99精品国产亚洲性色 | 五月开心婷婷网| 久久ye,这里只有精品| 天天影视国产精品| 在线观看免费午夜福利视频| 亚洲午夜精品一区,二区,三区| 国产成人精品在线电影| 亚洲情色 制服丝袜| 国产又色又爽无遮挡免费看| 久久这里只有精品19| 亚洲三区欧美一区| 免费女性裸体啪啪无遮挡网站| 少妇的丰满在线观看| 不卡av一区二区三区| 精品人妻在线不人妻| 嫁个100分男人电影在线观看| 成人18禁高潮啪啪吃奶动态图| 亚洲中文字幕日韩| 欧美日本中文国产一区发布| 无人区码免费观看不卡 | 91成人精品电影| 亚洲熟女精品中文字幕| 老司机在亚洲福利影院| 色94色欧美一区二区| 午夜久久久在线观看| 久久久久久人人人人人| 俄罗斯特黄特色一大片| 久久青草综合色| 在线永久观看黄色视频| 可以免费在线观看a视频的电影网站| 精品国产亚洲在线| 免费观看人在逋| 久久人妻av系列| 日韩一区二区三区影片| 国产一区二区三区在线臀色熟女 | 久久国产亚洲av麻豆专区| 久久狼人影院| 国产欧美日韩综合在线一区二区| 国产精品国产高清国产av | 欧美黑人欧美精品刺激| 精品第一国产精品| 午夜福利,免费看| 50天的宝宝边吃奶边哭怎么回事| 国产亚洲欧美在线一区二区| 老熟女久久久| 香蕉丝袜av| 老熟妇乱子伦视频在线观看| 久久精品91无色码中文字幕| 黑人巨大精品欧美一区二区mp4| 老鸭窝网址在线观看| 亚洲欧美日韩另类电影网站| 麻豆av在线久日| 激情视频va一区二区三区| 91国产中文字幕| 免费在线观看影片大全网站| 一区在线观看完整版| 欧美亚洲日本最大视频资源| av福利片在线| 韩国精品一区二区三区| 国产极品粉嫩免费观看在线| 女人被躁到高潮嗷嗷叫费观| 精品一区二区三区四区五区乱码| 日韩成人在线观看一区二区三区| 国产亚洲欧美精品永久| 国产精品免费一区二区三区在线 | 大香蕉久久成人网| 亚洲精品一卡2卡三卡4卡5卡| 亚洲精品自拍成人| 亚洲中文字幕日韩| 亚洲色图 男人天堂 中文字幕| 999久久久精品免费观看国产| 久久九九热精品免费| 久久婷婷成人综合色麻豆| 国产成人av教育| 97在线人人人人妻| 十分钟在线观看高清视频www| 少妇精品久久久久久久| 2018国产大陆天天弄谢| 久久毛片免费看一区二区三区| 在线播放国产精品三级| 黄片小视频在线播放| 看免费av毛片| 国产成人精品在线电影|