第四章 實驗數據分析
第一節 模擬速度測試與分析
國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
第四章 實驗數據分析
第一節 模擬速度測試與分析
本研究在第三章時曾就 Horizontal Design 與 Vertical Design 兩種不同的模擬 演化架構進行比較,本章節將實際測試兩種架構在三種不同測試環境中運算速度 上的差異。模擬速度測試使用之基因演算法參數如下:
族群大小(Population);300
染色體長度(Chromosome Length):8 演化代數(Generation):100
回測期間:120 個交易日資料
以上參數設定會在三種不同測試環境中分別進行十次模擬,模擬結束後挑出 最佳時間、最差時間並計算平均時間。
第一個測試環境為 Hadoop 叢集模式,包含一個 Jobtracker 與三個 Tasktracker。
測試結果如下表:
Horizontal Design Vertical Design
最佳時間 14361.473 5813.361 最差時間 16057.031 7014.909 平均時間 15062.713 6475.719
(單位:秒)
表 1、模擬演化時間表(叢集模式-1 個 Jobtracker 和 3 個 Tasktracker) (資料來源:本研究整理)
測試結果顯示 Vertical Design 的確能大幅度提升模擬演化速度,平均花費時 間減少了 57%。縱使如此,本研究仍希望能再縮短模擬演化時間,在增加分擔運
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
中增加三個 Tasktracker。
第二個測試環境一樣是 Hadoop 叢集模式,包含一個 Jobtracker,Tasktracker 數目從三個增加到六個。測試結果如下表:
Horizontal Design Vertical Design
最佳時間 17652.592 7782.469 最差時間 20319.712 9480.042 平均時間 18727.631 8835.368
(單位:秒)
表 2、模擬演化時間表(叢集模式-1 個 Jobtracker 和 6 個 Tasktracker) (資料來源:本研究整理)
在第二個測試環境中,雖然 Vertical Design 的表現依舊大幅優於 Horizontal Design,但是整體模擬演化的時間卻沒有如預期的因為加入三個 Tasktracker 而縮 短,反而花費了更多時間。
為了找尋原因,本研究在執行模擬演化的同時,觀測各節點的處理器負載,
發現各節點的處理器多數時間都是處於低負載的程度,只有少數時間到達中等負 載。基於兩次測試與觀測各節點負載情況的結果,初步推斷縮短模擬演化時間主 要的關鍵在於資料輸入輸出時間,而非運算時間。
為了印證這個推斷,本研究設計了第三個測試環境。第三個測試環境不再使 用 Hadoop 叢集模式,改用 Hadoop 單機虛擬分散模式,並將原本的硬碟(Hard Disk Drive)更換成固態硬碟(Solid State Drive)。這樣的測試環境就可以將資料輸入 輸出時間最小化,預期模擬回測速度會有更好的表現。實際執行第三個測試環境 的測試數據如下;
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
Horizontal Design Vertical Design
最佳時間 5128.325 782.219
最差時間 6647.891 1500.242 平均時間 5855.723 1135.378
(單位:秒)
表 3、模擬演化時間表(單機虛擬分散模式) (資料來源:本研究整理)
在第三個測試環境中,模擬演化的速度大幅改善。Vertical Design 的表現仍 舊優於 Horizontal Design。跟叢集模式相比,單點模式的 Horizontal Design 縮短 了約 61%的模擬演化時間;Vertical Design 更是大幅縮短了約 82%的模擬演化時 間。
這樣的結果印證了模擬演化運算速度改善的主要瓶頸在於等待資料輸入輸 出時間的假設,但也說明了本研究的模擬演化運算其實並不適合採用 Hadoop 的 運算架構。主要關鍵在於本研究模擬演化運算所需時間跟資料輸入輸出與傳輸時 間之間的比例。本研究的模擬演化運算在設計之初就已經將大部份的市場狀態預 先計算好,並以基因的方式儲存在基因庫當中,故實際在模擬演化時所需要的運 算量其實並不大。Hadoop 的平行運算架構適合用在運算時間大幅超過資料輸入 輸出時間與平行運算準備時間的運算工作,與本研究模擬演化運算工作的特性並 不相符。如此一來,也可以合理解釋為何在第二次測試中加入更多 Tasktracker 反而需要花費更久的時間。因為加入更多 Tasktracker 需要花費更多的網路傳輸 與資料準備時間,而實際執行運算時間所占比例太小,導致分散式運算省下的運 算時間遠不及為了達成分散所花費的時間。
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University