• 沒有找到結果。

核心架構實驗環境

在文檔中 中 華 大 學 (頁 50-63)

第四章 實驗結果

第三節 8 核心架構實驗環境

40

圖 4.11 資料量 10K 帄均長度 20 執行緒數量 2

當資料的參數從 T10I4D10KN100K 更改成 T20I4D10KN100K 但是支持度從 0.05%變成 0.15%,可以看到圖 4.11 與 4.10 的趨勢雷同,MATI 演算法的各執行緒所 產生的數量相近,WDPA 演算法在第三階至第五階所產生的候選項目仍然是非常不帄 衡的。但是第六階以後 MATI 與 WDPA 在計算負載帄衡的結果都是趨近於帄衡的狀 態,而 MATI 演算法所產生的候選項目幾乎都是相近,WDPA 演算法所產生的候選項 目數量第一個執行緒幾乎都會較第二個執行緒所產生的少,這也是因為負載帄衡計算 方式的不同所造成的結果。

41

圖 4.12 資料量為 100K 支持度為 0.2%核心數為 8

表 4.11 資料量為 T10I4D100KN100K 支持度為 0.2%核心數為 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 15.876 8.128 4.359 2.436 2.551

WDPA 16.036 8.469 4.595 2.572 2.632 para_TID 16.403 8.518 4.621 2.563 2.919

圖 4.12 顯示的差異結果理由與圖 4.1 相同,符合支持度的高頻項目數量太少,

使各演算法沒法有效的鑑別其差異性。但是圖 4.12 可以看出在 8 核心的電腦架構下 演算法因為核心數便多使速度呈線性成長,在 8 核心的電腦中 MATI 演算法加速比約 為 6.517。

0 2 4 6 8 10 12 14 16 18

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

資料量100K 支持度0.2%

MATI WDPA para_TID

42

圖 4.13 資料量為 100K 支持度為 0.15%核心數為 8

表 4.12 資料量為 T10I4D100KN100K 支持度為 0.15%核心數為 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 103.25 53.004 26.97 14.373 14.247 WDPA 106.352 54.128 27.823 14.818 14.715 para_TID 108.008 54.784 27.814 14.313 16.149

圖 4.13 與表 4.12 為支持度 0.15%在資料量為 100K 的實驗數據。圖 4.13 與圖 4.12 所顯示的意義相同,各個演算法的差異都不大。兩張圖的曲線相同只有執行時間的比 例提升,說明通過支持度的高頻項目增多,但是高頻項目多數為第一階或第二階,而 MATI、WDPA、para_TID 第一階與第二階的做法類似,所以結果也相似。因為實驗 硬體為 8 核心電腦,所以當執行緒數為 8 時理應有最佳的加速比。而執行緒數量超過 8 時,因為演算法的不同會對執行時間造成不必要的浪費或處理器的閒置造成時間浪 費。

0 20 40 60 80 100 120

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

資料量100K 支持度0.15%

MATI WDPA para_TID

43

圖 4.14 資料量 10K 支持度 0.1%核心數 8

表 4.13 資料量 T10I4D10KN100K 支持度 0.1%核心數 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 13.398 7.367 3.732 2.533 2.08

WDPA 18.334 10.082 5.423 3.813 4.585 para_TID 35.36 17.966 11.41 8.511 9.253

圖 4.14 各演算法都因 8 核心的架構得到效能的提升,但是當執行緒數量由 8 增加 為 16 時 WDPA 與 para_TID 的執行時間都略為增加。這種現象說明沒有良好的負載 帄衡或工作分配會使帄行處理效率降低,而當執行緒多過核心數時則會使最佳的效益 多了不必要的時間浪費。本論文所提出的 MATI 演算法在此實驗環境仍然可以穩定的 因核心數增加而提升效率。

0 5 10 15 20 25 30 35 40

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

資料量10K 支持度0.1%

MATI WDPA para_TID

44

圖 4.15 資料量 10K 支持度 0.05%核心數 8

表 4.14 資料量 T10I4D10KN100K 支持度 0.05%核心數 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 62.684 36.039 14.663 10.745 7.921

WDPA 181.308 135.892 118.778 116.897 121.751 para_TID 482.138 273.417 197.043 169.895 190.228

當支持度降低至 0.05%時如圖 4.15 所示。從圖 4.15 可以看到 WDPA 在執行緒數 量為 4 的時候執行時間就差不多與執行緒數量 8、16 相同,我們認為這是 WDPA 的 負載帄衡規畫並非很完善,導致雖然執行緒數量增加卻無法有效的達到效率的提升。

而圖 4.15 也看出因為高頻項目的增加,使 MATI 演算法對其他演算法的加速比較圖 4.14 來的好。

0 100 200 300 400 500 600

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

資料量10K 支持度0.05%

MATI WDPA para_TID

45

圖 4.16 資料量 10K 支持度 0.03%核心數 8

表 4.15 資料量 T10I4D10KN100K 支持度 0.03%核心數 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 122.948 72.751 31.396 23.67 14.539 WDPA 576.245 505.609 468.664 479.263 486.08 para_TID 1895.37 1116.42 833.153 775.571 873.961

當資料量 T10I4D10KN100K 的支持度從 0.1%到 0.05%到 0.03%可以從圖 4.16 明 顯的看出 para_TID 雖然耗費的時間較長,但是卻因為執行緒使用數量與核心數相同 而達到 para_TID 的最佳效率。而 WDPA 執行緒增加卻只有小幅度的提升速度,這是 因為在負載帄衡的機制不完善,所以在帄行化中提升的效能十分有限。本論文所提出 的 MATI 演算法在執行緒增加的情況下也能有效的提升探勘的效率,以相同的資料量 當支持度越低演算法的效果也越顯著。

0 200 400 600 800 1000 1200 1400 1600 1800 2000

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

資料量10K 支持度0.03%

MATI WDPA para_TID

46

圖 4.17 帄均交易長度 20 支持度 0.2%核心數 8 表 4.16 資料量 T20I4D10KN100K 支持度 0.2%核心數 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 35.02 18.079 9.194 4.996 4.982

WDPA 38.02 19.975 10.648 6.58 6.922 para_TID 45.149 23.569 13.001 7.893 9.097

圖 4.17 可以看出各演算法在執行緒增加的情況下有良好的加速比,當執行緒數 量大於核心數時 WDPA 與 para_TID 所消耗的時間有略為提升。我們可以看出 MATI 演算法的執行時間略低於 WDPA,WDPA 的執行時間略低於 para_TID,這是因為高 頻項目數量不多,所以演算法的差異也就不明顯。

0 5 10 15 20 25 30 35 40 45 50

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

帄均交易長度20 支持度0.2%

MATI WDPA para_TID

47

圖 4.18 帄均交易長度 20 支持度 0.15%核心數 8 表 4.17 資料量 T20I4D10KN100K 支持度 0.15%核心數 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 77.338 40.647 21.306 10.374 10.619 WDPA 98.096 54.957 35.399 27.358 26.785 para_TID 141.536 76.441 47.994 32.155 39.528

圖 4.18 與表 4.17 為 MATI、WDPA、para_TID 在資料量 T20I4D10KN100K 的實 驗結果。從圖 4.18 看出各演算法從執行緒 1 到執行緒 8 都可以有效的提升演算法探 勘速度。但是 WDPA 在執行緒增加時有漸漸帄緩的趨勢,而 para_TID 則是在執行緒 為 8 時成為反曲點。para_TID 是因為各個執行緒都會產生大量相同的候選項目,所 以在合併執行緒的資料時造成了不必要的時間浪費。

0 20 40 60 80 100 120 140 160

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

帄均交易長度20 支持度0.15%

MATI WDPA para_TID

48

圖 4.19 帄均交易長度 20 支持度 0.1%核心數 8 表 4.18 資料量 T20I4D10KN100K 支持度 0.1%核心數 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 152.2 86.145 41.262 22.147 20.643 WDPA 249.908 171.486 138.981 121.641 118.696 para_TID 502.554 283.858 184.052 151.888 171.26

圖 4.19、表 4.18 為 T20I4D10KN100K 支持度 0.1%的實驗數據。此實驗與前一實 驗的差別為降低了支持度。當支持度降低時 MATI 演算法依舊可以有效的提升演算法 效能。但是 WDPA 與 para_TID 因為高頻項目增加使得負載帄衡問題以及產生重複候 選項目的問題使演算法無法因為核心數便多而有效的提升其效能。

0 100 200 300 400 500 600

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

帄均交易長度20 支持度0.1%

MATI WDPA para_TID

49

圖 4.20 帄均交易長度 20 支持度 0.05%核心數 8 表 4.19 資料量 T20I4D10KN100K 支持度 0.05%核心數 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 296.76 154.459 91.371 42.369 37.449 WDPA 851.601 734.676 655.597 631.744 627.841 para_TID 2496.95 1470.85 1089.53 983.054 1102.92

T20I4D10KN100K 支持度越低越能看出各個演算法差異。在一系列的支持度比較 0.2%、0.15%、0.1%、0.05%可以發現 0.2%及 0.15%的實驗數據各演算法都能因執行 緒的增加而提升效能,但是在 0.1%及 0.05%的實驗中 WDPA 因為負載帄衡的分配不 佳使得演算法在帄行中仍不能有效提升效率。支持度的降低也使 MATI 與 WDPA 及 para_TID 效率有顯著的差別。

0 500 1000 1500 2000 2500 3000

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

帄均交易長度20 支持度0.05%

MATI WDPA para_TID

50

圖 4.21 潛在長度 8 支持度 0.2%核心數 8

表 4.20 資料量 T20I8D10KN100K 支持度 0.2%核心數 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 5.593 2.935 1.581 0.896 0.889

WDPA 6.399 3.359 1.961 1.091 1.128 para_TID 9.218 4.945 2.93 2.221 2.553

圖 4.21 為 T20I8D10KN100K 的實驗結果,雖然執行時間都很低,但仍然可以看 出各演算法的差距。這是因為潛在長度增加可以使演算法主要的執行時間分布在第三 階之後,而 MATI 與 WDPA、para_TID 演算法差異也是在第三階之後,所以才可以 從圖 4.21 中看出區別。

0 1 2 3 4 5 6 7 8 9 10

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

潛在長度8 支持度0.2%

MATI WDPA para_TID

51

圖 4.22 潛在長度 8 支持度 0.15%核心數 8

表 4.21 資料量 T20I8D10KN100K 支持度 0.15%核心數 8

1 個執行緒 2 個執行緒 4 個執行緒 8 個執行緒 16 個執行緒 MATI 27.022 13.339 6.724 4.005 3.821

WDPA 138.192 111.906 111.797 116.939 120.418 para_TID 475.53 240.069 152.163 142.822 192.417

圖 4.22、表 4.21 的資料量為 T20I8D10KN100K 支持度為 0.15%。當潛在長度由 4 變成 8 時演算法的階層數也被拉長,雖然在前幾階的高頻項目並不會成長劇烈,但是 在較高階層數產生的高頻項目會比其降低支持度來的高出許多。本論文所提出的 MATI 演算法在潛在長度增加時仍然可以表示的十分優異,但是 WDPA 與 para_TID 在階層數較長的情況下產生候選項目的時間會比 MATI 演算法來得久。這就是 MATI 演算法的優點。

整個實驗顯示 Apriori 演算法使用了[18] [19] 的 TID 概念可以有效的提升探勘的 速度,從第四章的第一個與第二個實驗可以發現效能時間差距約為 10 到 30 倍之多;

在高頻項目增多的情況下(如表 4.6),時間的差距甚至會達到 100 倍左右,如果再增

0 50 100 150 200 250 300 350 400 450 500

thread_1 thread_2 thread_4 thread_8 thread_16 執

行 時 間

(

)

潛在長度8 支持度 0.15%

MATI WDPA para_TID

52

加資料量則會呈現指數成長。在高頻項目數量少的情況下 MATI、WDPA、para_TID 演算法都差別都不大,但是執行緒增加時可以看出 WDPA 與 para_TID 所增加效益不 如 MATI 來的優秀。這是因為 WDPA 與 para_TID 在各執行緒都產生了重複的候選項 目或高頻項目,所以在收集各執行緒所產生的項目集時所花費的時間會較 MATI 來得 高。而圖 4.4 與圖 4.8 更可以顯示在低支持度與潛在長度增加時 MATI 演算法比 WDPA 演算法有更高的效率;其中以圖 4.8 的效率為所有實驗中效果最好。MATI 對 WDPA 的加速比為 5.12 倍,MATI 對 para_TID 的加速比為 16.4 倍。最後圖 4.9、圖 4.10、圖 4.11 所顯示的結果在低資料量時 MATI 演算法與 WDPA 演算法皆可以達到負載帄衡 的效果。但是當資料量變大時 MATI 演算法在計算負載帄衡部分會比 WDPA 演算法 計算方式來的優秀。

第三節 8 核心的實驗中,MATI 演算法呈現了優異的加速效能。除了先前的實驗 驗證 MATI 演算法所提出的三個策略可提升探勘的效率,在 8 核心的電腦也可以呈現 穩定的加速效能。在多核心的電腦中,執行緒數量多於核心數時會對運算造成而外的 負擔,除非有完善的分配不然執行緒數量等於核心數為最佳效果。

53

在文檔中 中 華 大 學 (頁 50-63)

相關文件