電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

PAS Lab的研究領域與題目(2011.10)

不管你懂不懂電腦,你大概都會問: 電腦跟人們有什麼關係? 電腦可以幫我做甚麼事? 事情可不可以做快一點? 我怎樣保護重要資料,不要被別人偷走或破壞?

如你所見,效能(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.
Performance engineering covers many areas in computer systems. As a system performance expert, one needs to be knowledgeable on computer architecture and system software. It is an art to evaluate performance problem precisely, identify performance problems quickly, and decide on proper solutions wisely. In our lab, we use state-of-the-art performance tools to analyze applications ranging from embedded processing to high-performance computing. We work with industry partners on real applications and develop skills and techniques to solve problems in designing and optimizing applications.
 
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也就應運而生。機器之間的互動,有些需要很快速的反應,有些可以點點滴滴慢慢來,有些只能跟附近機器連接,有些通訊方式可以無遠弗界。系統和應用該如何開發和最佳化,是目前研究者和業界所面臨的問題。我們的虛擬平台,在系統和應用的開發上,應該可以扮演一個樞紐的角色。
研究方向

Performance Engineering, Linux-based Systems, Android, Cloud Computing
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智慧型手機產品之開發。相信在進一步的整合工作完成後,這項工具提供現今開發工具所無法達到的功能,無論是多核心的系統開發偵錯,或是效能調校,均可望提昇國內嵌入式系統的技術。
 
人才培育及產學合作

為了培養系統的人才,我這兩個學期特別開設Linux系統核心與應用(Linux Systems, Kernel Development, and Application)這門課,超過百位大四及研究生來修課及旁聽,對於一個需要做四個實驗、撰寫兩次期中報告、製作期末專題的課來說,是相當難得的。
在雲端運算方面,我這個學期和下個學期開設『平行與分散式程式設計』,希望能更多的同學,進入到平行思考的層次,真正在現今網路無所不在的分散式運算環境中,能夠了解其中的奧祕,進而開發出與眾不同的系統與應用。

很多的學習,光說不練是沒有效果的,尤其是『軟體工程(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平台之效能評估技術
我們鼓勵研究室的學生參與比賽,或是參加一流高科技公司的暑期工讀(intern),要成為一流人才,絕對不要成為書呆子,也不要會閉門造車,應該多出外見識見識。我常常推薦學生一流的跨國公司,例如IBM, HP,或是國內頂尖的廠商,例如TrendMicro, HTC等,學生暑期工讀回來之後,更能體會學校做的研究和走在前端的業界廠商的關聯性。學生參加一些系統設計競賽,雖然辛苦,但是得獎的果實非常甜美。我們得過下列獎項:
  • 2010年教育部大專院校嵌入式系統設計競賽,系統軟體組特優: 異質多核心嵌入式系統核心間通訊程式庫之設計
  • 2010年教育部大專院校嵌入式系統設計競賽,系統軟體組佳作: 異質多核心嵌入式系統之虛擬平台
  • 2010年教育部大專院校嵌入式系統設計競賽,硬軟體統合設計組佳作: 無線多媒體傳輸之系統晶片設計
  • 2009年教育部大專院校嵌入式系統設計競賽,適用於嵌入式系統之微核心(microkernel)技術
  • 2008年國家高速網路與計算中心平行程式競賽,第三名。
  • 2006年ARM Code-O-Rama嵌入式系統效能最佳化競賽,第一名,對於Lossless JPEG Decoder進行效能最佳化。