如你所見,效能(Performance)、應用(Applications)、安全 (Security)是電腦在現實世界中,人們所關注的最根本的三大議題。所有的電腦科技,無論是偏重軟體的程式設計、演算法、作業系統、資料庫,還是偏重硬體的晶片設計、多核心系統,如何解決上述三大議題才是最重要。小至看不見的嵌入式系統,大至超級平行電腦、電子商務、雲端運算,如何設計出使用者最滿意的系統,是我們實驗室學習、研究和努力的目標。 以下簡要說明我們的研究概況:
研究主軸 -- 系統之效能工程
Performance Engineering: Co-Optimization of Computer Applications and Architectures
Performance and applications have been driving the evolution of the computer industry to where it is today. Many people can write programs, but those who are familiar with computer architecture, optimizing compilers, operating systems, and performance tools, can write better programs -- robust, efficient and scalable programs which run several times faster and waste less energy. Performance engineering is a best practice and a research to find ways to improve application performance with a wide range of hardware or software techniques.
Many research topics in this field are still open, and we are focusing on innovative ways to profile performance, model application behavior, simulate execution, and evaluate future system designs. Today, we take this approach to solve performance problems found on Android-based smartphones, embedded multicore systems, and cloud computing.
研究領域
- 效能評估 Performance Evaluation
- 平行處理 Parallel Processing
- 網路效能 Network Performance and Optimization
- 電腦安全 Network and Computer Security
- 雲端計算 Cloud Computing
我們實驗室目前正在進行的專題很多,變化也很迅速,無法一一深入介紹,在此僅提供一些範例,讓大家對我們實驗室的研究題目有較具體的概念:
- Game Cloud:尋找利用雲端伺服器的優勢,強化對於多人線上遊戲(MMOG - Massively Multiplayer Online Game)平台的支援,包括對於平台工作量的分工,使用GPU節省計算的成本,效能的量測與優化,以及使用者經驗到的服務品質(Quality of Service)。
- Virtual Phones: 虛擬手機是方興未艾的技術,可能是未來不可或缺的平台。試想,手機這麼小,怎麼讓它可以快速有效地結合其他個人身邊具備計算能力的設備,甚至連接各種雲端資源來解決大型的問題? 目前常見的client-server架構,或是所謂的Web applications,距離理想的運算模式相差太多了。我們開發的虛擬手機技術,可以讓使用者方便地利用身邊可取得的資源建構虛擬手機,並且將手機上的工作迅速轉移到虛擬手機上去執行。這樣的基礎,為手機應用增添了無限的空間...
- Virtual Trust Mechanism: TPM (Trusted Platform Module) 是商業和政府機關為確保資訊安全所採用的平台技術,讓電腦和電腦應用之間,可以相互認證。然而,虛擬機器的出現,對於認證機制造成一些問題。如何改進原有的認證機制,支援在平台上的每個虛擬機器? 這樣的認證機制如何進一步用於強化雲端環境的安全性?
- Virtual Platform for Machine-to-Machine (M2M): 未來很多大大小小的機器會透過各種網路連在一起,而所謂M2M applications也就應運而生。機器之間的互動,有些需要很快速的反應,有些可以點點滴滴慢慢來,有些只能跟附近機器連接,有些通訊方式可以無遠弗界。系統和應用該如何開發和最佳化,是目前研究者和業界所面臨的問題。我們的虛擬平台,在系統和應用的開發上,應該可以扮演一個樞紐的角色。
Linux開放式作業系統已成為現今各類型計算機系統常見的標準,從Android手機、MID (Mobile Internet Device)、小筆電、桌機、乃至於雲端運算(cloud computing)伺服器、超級電腦等,許多應用皆採用Linux。然而,良好的系統開發(development)、調校(tuning)、最佳化 (optimization),必須對於作業系統(operating system)與計算機系統架構(system architecture)有完整的認識與瞭解,包括Linux上的使用者應用開發環境(user-level development environment),作業系統核心(kernel),與系統硬體互動的驅動程式層(device drivers),運用多核心(multicore)處理機的多執行緒(multithreaded)程式開發方法,增進雲端運算效率的虛擬技術 (virtualization)、分散式儲存系統(distributed filesystems)、平行計算(parallel computing)方法,都是進階的系統工程(advanced system engineering)需要注意到的項目。除了深入研究了解這些技術之外,我們開發及使用效能工具來分析與解決龐大而複雜的電腦系統中可能產生的效能問題,尋求高效率的硬軟體系統架構以及節能省電的設計。
Performance Profiling, Tracing, Analysis tools
我們所研發的工具可在多種嵌入式多核心系統剖析追蹤與分析Linux系統執行之效能與瓶頸,包括ARM, IBM Cell, TI Da Vinci , ITRI PAC Duo等嵌入式平台以及Intel PC,我們一方面盡可能降低在使用工具時對系統執行造成的影響,一方面擴展工具的使用範圍,使其能夠用以分析作業系統核心與輸出入裝置驅動程式,同時產生精確有效的分析報告與圖形介面,經過四年的努力,我們的工具已經可以在最短時間移植到最新的平台,甚至與我們研發的虛擬平台相結合,進一步提高以上工具的精確度及使用範圍。這項創舉,預計在今年(2010)完成之後,將提供系統開發者前所未見的效能剖析追蹤與分析工具。
Performance Engineering for Embedded Multicore Systems via Virtual Platforms
我們改良最新QEMU虛擬機器(virtual machine),加入模擬異質多核心的功能,並且提出虛擬效能監控裝置(virtual performance monitoring unit)的機制(專利申請中),使虛擬機器在快速執行程式的同時,還能夠解析機器的行為,記錄特殊事件與其發生時間,並且能夠搭配上述的效能剖析追蹤與分析工具,評估在虛擬機器各個程式執行的效能。目前這個虛擬平台已經能夠模擬我們經濟部學界科專所使用的工研院PAC Duo平台之運作,提供研發團隊成員作為開發作業系統與省電機制的重要工具。除此之外,我們與中研院資訊所游本中所長的研究團隊於國科會自由軟體 (open-source)計畫中合作,將進一步整合創建多核心對多核心(multicore-on-multicore)的高速虛擬平台後,以自由軟體的形式貢獻社群。同時在業界方面,高通(Qualcomm)與佳士達(Qista)對我們的工具有高度的興趣,正在洽談合作事宜,將此工具實際應用於協助 Android智慧型手機產品之開發。相信在進一步的整合工作完成後,這項工具提供現今開發工具所無法達到的功能,無論是多核心的系統開發偵錯,或是效能調校,均可望提昇國內嵌入式系統的技術。
人才培育及產學合作
在雲端運算方面,我這個學期和下個學期開設『平行與分散式程式設計』,希望能更多的同學,進入到平行思考的層次,真正在現今網路無所不在的分散式運算環境中,能夠了解其中的奧祕,進而開發出與眾不同的系統與應用。
很多的學習,光說不練是沒有效果的,尤其是『軟體工程(software engineering)』,不少資工系畢業的同學,對於軟體工程沒有什麼概念,因為上課沒教,也沒碰過計畫。台灣產業正在轉型和提昇,以往較不為人所注重的軟體,即將成為真正炙手可熱的技術。我們實驗室在多方面與國內外一流的廠商在此議題上進行產學合作,讓同學有機會接觸到真正尖端的軟體研發計畫,走出象牙塔。以下是我們合作的計畫項目:
- 聯發科(2010~2012):在雲端運算環境中的虛擬手機系統與應用
- 國科會(2009~2011):Android智慧型手機系統與雲端計算應用
- 國科會(2009~2011):在多核心系統上模擬多核心系統的技術
- 國科會(2006~2009):多核心系統的效能工具與最佳化技術
- 經濟部科專計畫、工研院、晶心科技、凌陽科技(2008~2011):研發異質多核心嵌入式平台之系統軟體與效能分析機制
- 廣達研究院(2006~2008): 改進其發展中之商用中階儲存伺服器(enterprise-class storage server system)之效能電腦安全
- Sun Microsystems (2005~2007): 以平行計算技術為基礎的新微處理機系統晶片 (CMT processor SoC)作為下一代通訊市場使用之ATCA平台之效能評估技術
- 2010年教育部大專院校嵌入式系統設計競賽,系統軟體組特優: 異質多核心嵌入式系統核心間通訊程式庫之設計
- 2010年教育部大專院校嵌入式系統設計競賽,系統軟體組佳作: 異質多核心嵌入式系統之虛擬平台
- 2010年教育部大專院校嵌入式系統設計競賽,硬軟體統合設計組佳作: 無線多媒體傳輸之系統晶片設計
- 2009年教育部大專院校嵌入式系統設計競賽,適用於嵌入式系統之微核心(microkernel)技術
- 2008年國家高速網路與計算中心平行程式競賽,第三名。
- 2006年ARM Code-O-Rama嵌入式系統效能最佳化競賽,第一名,對於Lossless JPEG Decoder進行效能最佳化。