研究方向

本實驗室目前主要的研究方向為雲端計算 (Cloud Computing), 動態執行檔轉換執行環境 (Dynamic Binary Translation) 及演算法 (Computer Algorithms). 以下項目均為與中研院資訊所的合作計畫. 目前本實驗研究計畫委託單位包括國科會, 工研院, 及教育部. 所有的計畫均為研究導向, 成果均可發表為碩博士生畢業論文.

雲端計算 (Cloud Computing)

雲端作業系統 (Cloud Computing System)
雲端作業系統包括所有支援雲端計算的系統軟體. 雲端作業系統的功能包括了處理器虛擬化與管理, 儲存虛擬化與管理, 網路虛擬化與管理等. 本實驗室發展的 Roystonea 是一個雲端作業系統雛形. 藉由實驗室發展的虛擬計算機動態配置演算法達到節能及高效能的目標. 目前 Roystonea 系統已經在本系趨勢科技所捐贈之叢集系統上運作, 並支援本校資電中心整合型計畫的雲端計算需求. 未來將繼續發展更新的計算機動態配置演算法, 對資料中心的硬體資源做更有效的利用.
虛擬計算機動態配置 (Virtual Machine Provision)
在雲端計算中, 如何動態配置計算資源, 以達到高效能, 低耗能, 高彈性的資源運用目標世非常重要的課題. 雲端計算中虛擬計算機必須動態配置到實體處理器核心, 這是非常複雜的排程問題, 必須兼顧使用者服務品質, 耗電, 系統穩定度, 系統使用程度的目標. 本實驗室的雲端作業系統雛形 Roystonea 就是為了測試我們所設計的動態配置計算資源演算法所發展的. 目前測試結果證實如果使用本實驗室發展的實體處理器核心配置演算法, 相較於傳統的 round-robin 方法可以節省可觀的能源.
自動服務水準校調 (Auto Scaling)
雲端作業系統必須自動校調服務水準, 才能適應瞬息萬變的網路需求. 例如在大量網路需求湧入時, 雲端作業系統必須快速增加相關資源, 保持一定的服務水準, 使絕大部分的使用者能享受到服務. 而在只有少量網路需求時, 雲端作業系統必須快速減少相關資源, 降低使用者的成本. 由於本實驗室對虛擬計算機動態配置有一定掌握, 所以目前正在進行自動服務水準校調系統的建置, 完成之後將整合進 Roystonea 系統.
雲端計算與傳統資料庫整合 (Cloud NoSQL Database)
傳統關聯式資料庫, 例如 MySQL, 受限於本身結構, 很難在雲端計算平台 運作目前在雲端計算平台上多為 key-value 式的 NoSQL 資料庫. 如何將 雲端計算與傳統關聯式資料庫整合就成為極重要的研究課題. 在 OLAP (Online analytical processing) 方面, 本實驗室目前進行以 MapReduce 方式實作 MySQL 的功能, 並從系統面進行大量優化, 使大型傳 統關聯式資料庫也能在雲端平台運行. 在 OLTP (Online transaction processing) 方面, 本實驗室目前進行以Hbase 實作 transaction 的功能, 並從系統面進行大量優化. 對使用大型傳統資料庫的企業而言, 將能有效 降低進入雲端計算的門檻, 使企業使用的資料庫相關軟體能迅速佈建到雲 端計算平台.
圖資料庫與雲端的整合(Cloud Graph Database)
圖資料庫 (Graph Database) 是處理社群網路 (Social Network) 及物連網 (Internet of Things) 的自然結構. 相較於傳統關聯式資料庫更能表示處理網路的演算法. 但是由於資料規模龐大, 需要借助雲端的計算能力才能快速處理大量資料. 這個計畫是在雲端發展圖資料庫, 及其高階運算程序, 讓使用者能在社群網路及物連網上有效發展演算法.
資料探勘在雲端計算的優化(Data Minging in Cloud)
資料探勘在雲端計算的具有極大的潛力, 但目前雲端計算可應用的計算模式並不能有效的 實做格式各樣的資料探勘演算法. 如何在雲端計算的前提下, 將現有的資料探勘技術加以實做並優化就極其重要. 另外目前在雲端計算平台上, 大量資料處理仍以 MapReduce 技術為主流. 雖然 MapReduce 觀念簡單, 效能也不錯, 但並不能有效表示所有資料探勘演算法. 本實驗室也嘗試發展新的大量資料處理模式, 期望能有效支援並表示資料探勘常用演算法, 並提供快速的執行環境.
圖形處理器在雲端系統的虛擬化 (GPU Virtulization in Cloud)
圖形處理器 (GPU) 擁有大量計算能力, 但建置複雜且價格昂貴. 套用雲端 運算的概念, 計算服務供應商如能有效將圖形處理器虛擬化, 就能有效提 供圖形處理器計算能力給需要的人, 本計畫的目的即是實現將多個計算核 心集中在同一個圖形處理器的能力. 如此一來我們就能有效利用圖形處理 器的計算能力, 就如同將多個虛擬機集中在一個實體計算機一樣.

動態執行檔轉換執行環境 (Dynamic Binary Translation)

現今電腦環境皆為多核心設計, 所以如何充分應用多核心環境發揮效能是非常重要的研究課題. 一般應用程式在編譯成執行檔後就直接在硬體上執行, 並無做更進一步的最佳化. 在只給定執行檔而無程式原始碼的狀況下, 在執行時透過分析執行狀況, 做進一步 之執行最佳化, 例如常用指令區塊的合併, 減少跳耀指令數目等. 這些最佳化目前均侷限在單 核心. 本研究課題之目的在於擴展動態執行檔之最佳化到多核心環境, 期能充分發揮多核心環境之效能.

全作業系統動態轉換及執行環境 (System Mode Dynamic Binary Translation)
一般的動態執行檔轉換執行環境以執行一個使用者程式為設計目的. 而能執 行完整全作業系的動態執行檔轉換執行環境, 如QEMU, 皆面臨效能不彰的問 題. 本計畫的目的是利用現代電腦環境的多核心設計及其他硬體支援, 有效 提升全作業系統動態轉換及執行的效能.
可適應不同計算機之動態執行檔轉換執行環境 (Retargetable Dynamic Binary Translation)
一般的動態執行檔轉換執行環境以執行一個使用者程式為設計目的. 而能 執行完整全作業系的動態執行檔轉換執行環境, 如QEMU, 皆面臨效能不彰 的問題. 本計畫的目的是利用現代電腦環境的多核心設計及其他硬體支援, 有效提升全作業系統動態轉換及執行的效能.
主從式架構之動態執行檔轉換執行環境 (Client Server Dynamic Binary Translation)
目前在手持式設備上雖有動態執行檔轉換執行環境的需求, 但是受限於手 持式設備計算能力不足, 無法有效進行. 本計畫即是利用雲端主機的計算 能力, 將動態執行檔轉換執行的許多工作轉移到雲端主機上執行, 手持式 設備只要執行轉換後的機器碼即可, 可大量提高動態執行檔轉換執行環境 的效能, 並減少手持式設備的耗能.

演算法 (Computer Algorithms)

演算法設計與分析 (Design and analysis of computer algorithms) 傳統循序演算法的設計與分析. 隨著應用領域的不同, 設計有效且可由數學驗證的算法. 本實驗的演算法研究強調實際問題應用. 在實際系統中遇到困難, 我們就設計可用數學驗證的演算法, 再經模擬驗證後, 整合進實際系統.