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


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

2010年8月21日 星期六

如果讓我重做一次研究生: 摘要與個人感想

在這新舊交替的日子,我請實驗室的研究生欣賞一篇中央研究院歷史語言研究所王汎森院士2005演講內容~~


後來,我將這篇文章做個人的摘要與個人感想,寄給研究生。這也是一種閱讀和思考的習慣。建議研究生們平常可以在實驗室的Wiki上寫作,整理和分享研究心得。

以下是我對這篇演講的摘要,【】中的文字是我的個人感想。(全文在網上搜尋可得)

如果讓我重做一次研究生
王汎森 院士
中央研究院歷史語言研究所(2005)

  • 首先跟大家說明一下研究生和大學生的區別。大學生基本上是來接受學問、接受知識的,然而不管是對於碩士時期或是博士時期的研究而言,都應該準備要 開始製造新的知識 ... 所以第一個我們必須要很用心、很深刻的思考,大學生和研究生是不同的。
  • 你一旦是研究生,你就已經進入另一個階段,不只是要完全樂在其中,更要從而接受各種有趣的知識,進入製造知識的階段,也就是說你的論文應該有所創 新。... 到了碩士生和博士生,有一個最終的目的,就是要完成論文,那篇論文是你個人所有武功的總集合,所以這時候必須要有個問題取向的學習。
  • 你的態度和大學部的學生是截然不同的,你慢慢從被動的接受者變成是一個主動的探索者,並學會悠游在這學術的領域。
  • (李遠哲先生)有一次就跟那個老師抱怨:「那你為什麼不教我點東西呢?」那個老師就說:「如果我知道結果,那我要你來這邊唸書做什麼?我就是因為不知道,所以要我們共同探索一個問題、一個未知的領域。」
  • 你的生活是跟著老師與同學共同成長的,當中你所聽到的每一句話,都可能帶給你無限的啟發。

【以上是對那些對自我有所期許的研究生講的,我希望大家向好的榜樣和目標學習,不要只想如何低飛通 過。身為老師,我盡力指導你們,但是絕大多數的研究,應該是你們主動去完成的!】

  • 怎樣進入一個領域最好,我個人覺得只有兩條路,其中一條就是讓他不停的唸書、不停的報告,這是進入一個陌生的領域最快,又最方便的方法,到最後不 知不覺學生就會知道這個領域有些什麼,我們在不停唸書的時候常常可能會沉溺在細節裡不能自拔,進而失去全景,導致見樹不見林,或是被那幾句英文困 住,而忘記全局在講什麼。藉由學生的報告,老師可以講述或是釐清其中的精華內容,經由老師幾句提點,就會慢慢打通任督二脈,逐漸發展一種自發學習 的能力,同時也知道碰到問題可以看哪些東西
  • 因為受電腦的影響,我發現很多學生寫文章能力都大幅下降。寫論文時很重要的一點是,文筆一定要清楚,不要花俏、不必漂亮,「清楚」是最高指導原 則,經過慢慢練習會使你的文筆跟思考產生一致的連貫性。我常跟學生講不必寫的花俏,不必展現你散文的才能,因為這是學術論文,所以關鍵在於要寫得 非常清楚,如果有好的文筆當然更棒,但那是可遇不可求的,文彩像個人的生命一樣,英文叫style,style本身就像個人一樣帶有一點點天生。 因此最重要的還是把內容陳述清楚,從一萬字到最後十萬字的東西,都要架構井然、論述清楚、文筆清晰。

【真的,許多同學文筆跟思考的清楚性和連貫性都不夠,這部分可以透過自我訓練去加強。能夠在兩年鍛鍊出能夠寫出好論文的文筆,將會一輩子的受用無窮!】

  • 研究生如何訓練自己?就是每天、每週或每個月給自己一個挑戰,要每隔一段時間就給自己一個挑戰,挑戰一個你做不到的東西,你不一定要求自己每次都 能順利克服那個挑戰,但是要努力去嘗試。
  • 碩士跟博士是一個訓練的過程,碩士跟博士不是寫經典之作的過程。... 應該清楚知道從哪裡開始,也要知道從哪裡放手,不要無限的追下去。當然我不是否認這個過程的重要性,只是要調整自己的心態,把論文的完成當成一個目標,不 要成為是一種的心理障礙或是心理負擔。
  • 到了寫論文的時候,要能取也要能捨 ... 一定要建構一個屬於自己的知識樹,再隨著你的問題跟關心的領域,讓這棵知識樹有主幹和枝葉。第一步你必須對所關心的領域中,有用的書籍或是資料非常熟悉。
  • 一定要有一個語文能夠非常流暢的閱讀相關書籍,這是起碼的前提。一旦這個工具沒有了,你的視野就會因此大受限制。
  • 對一個碩士生或博士生來說,如果選錯了題目,就是失敗,題目選對了,還有百分之七十勝利的機會。這個問題值得研一、博一的學生好好思考。你的第一年其實就是要花在這上面,你要不斷的跟老師商量尋找一個有意義、有延展性的問題,而且不要太難。

【以上講的是收集整理資料的自我訓練方式,以及找尋研究題目的心態,基本上,如果能夠每天活在研究 中,時常與同學和師長討論,研究生的日子將會奠定你自我成長的基礎,有深厚的基礎,你才能真正符合學位上碩士或博士的頭銜。要不然,台大的光環沒幾年就會褪色了! 】

  • 另一個最基本的訓練,就是平時不管你寫一萬字、三萬字、五萬字都要養成遵照學術規範的習慣,要讓他自然天成,就是說你論文的註腳、格式,在一開始 進入研究生的階段就要培養成為你生命中的一個部份,如果這個習慣沒有養成,人家就會覺得這個論文不嚴謹,之後修改也要花很多時間
  • 一篇論文能不能出神入化、能不能引人入勝,很重要的是在現象之上作概念性的思考 ... 真切去了解,你所看到的東西是什麼?整體意義是什麼?整體的輪廓是什麼?千萬不要被枝節淹沒,雖然枝節是你最重要的開始,但是你一天總也要留一些時間好好 思考、慢慢沉澱。conceptualize是一種非常難教的東西
  • 我剛到美國唸書的時候,每次寫報告頭皮就重的不得了,因為我們的英文報告三、四十頁,一個學期有四門課的話就有一百六十頁,可是你連註腳都要從頭 學習。後來我找到一個好辦法,就是我每次要寫的時候,把一篇我最喜歡的論文放在旁邊,雖然他寫的題目跟我寫的都沒關係,不過我每次都看他如何寫, 看看他的注腳、讀幾行,然後我就開始寫。

【許多人念書無法『開竅』,有的是因為好高騖遠,有的是方法不對,更多的是缺乏自我訓練。你看,王院士並不是天縱英明,當初也是努力閱讀思考寫作,才逐漸摸出訣竅。你若覺得自己天資沒有很好,是否要更加努力呢?還是怪老師沒把你教到懂?

用適當的工具來搜尋和整理論文已經是研究生必被的技能,我建議大家在實驗室的 Wiki上寫作,整理和分享研究心得。】

  • 做一個研究生或一個學者,有兩個感覺最重要--責任感與罪惡感。你一定要有很大的責任感,去寫出好的東西,如果責任感還不夠強,還要有一個罪惡 感,你會覺得如果今天沒有好好做幾個小時的工作的話,會有很大的罪惡感。

【談責任感與罪惡感或許太沈重,畢竟不是每個研究生都立志要做學者。我在高中畢業紀念冊上的留言是:『學習,進步!』我當時也沒想念博士當教授,只覺得學習是終生大事,也是很愉快的事,所以我不是很同意王院士這段話。傳統的學者,太過於強調論文寫作,在今天這個多元化的時代,尤其是電腦這個領域,研究與發表,不應該限定在論文上。寫程式和設計系統,都算是發表,也可以是卓越的貢獻。當然,立志當純研究型的學者,又當別論。

然而,做人還是要有某種程度的責任感與罪惡感,除非你已經能夠從心所欲而不逾矩,或是超凡入聖。草莓族最為人詬病的,大概就是承擔不了責任感與罪惡感。我個人有很大的責任感,想提昇我們實驗室的研究水準,想把台灣非常需要的研究項目在學術界扎根,想讓進來我們實驗室的研究生受到扎實的訓練而具備一流的研究能力。大家都知道,我不大挑學生的, 而大多數新進研究生對於電腦系統內部核心架構都非常陌生,因此我們必須很努力地去教學和指導。我時常也有罪惡感,那就是個人時間不夠,沒能把所有同學教好。

有時,我的責任感與罪惡感大到必須接受某種療癒,學習讓自己適度放下,讓身體輕鬆一點,否則可能會過勞死 :-) 所以,活到老,學到老,人到中年,還得一直在學習調適個人心態,順應這個變遷的年代。年輕的學子們,應該多想想如何把握時間,不要浪費大好日子!】

Flash Player Performance on Android

Flash Player Performance on Android would be a good target for profiling and optimization. Even the latest Android phone has trouble executing Flash smoothly all the time. We can apply our performance tools and run Flash player as a workload to investigate on this issue.

The following is a recent article about this issue. 
Flash Player Performance on Droid 2 Found to Be Hit-or-Miss at Best

http://www.macrumors.com/2010/08/20/flash-player-performance-on-droid-2-found-to-be-hit-or-miss-at-best/

2010年8月4日 星期三

今年PAS實驗室內部的會議安排


我們今年PAS實驗室內部的會議安排如下:

- 虛擬平台與系統設計研究小組,每周一次 (目前是周一15:30~17:30)
- 雲端虛擬手機研究小組,每周一次 (目前是周二15:30~17:30)
- PAS全員大會,兩周一次 (目前是周三14:30~16:30)
- 計畫會議,機動安排

兩個研究小組是學術性質的研討,請每位同學至少參與一組。

會議進行上面,會有一些改進措施,請大家留意:

- 按時參與活動與討論,主動分享意見,做好被分配到的義務
- 不能到場者,請預先通知
- 每項會議要有會議記錄,由參與者輪流紀錄
- 會議記錄與內容上傳到DropBox
- 希望每個人自己有一個Wiki或部落格,做為個人研究紀錄與分享研究心得

我今年想把【學術活動】和【計畫的參與】分開來,所以有參加計畫的人員,會另
外找時間討論,基本上由Project Leaders負責召開會議。

一位非常有趣的計程車司機


一位非常有趣的計程車司機,一上車就愉快地對我說,他的運氣好,容易載到客人。客人往往都很好,有時會多給些小費。隨即拿帳簿給我看,說前一位去機場的客人說好1000元車資,給了他1200元。上次在機場載到二十多年沒回國的乘客,指定要他過幾天再接去機場。


他不開計程車時教音樂,精通多項樂器,包括鋼琴、小提琴等,一周在四個醫院(包括慈濟、中和)大廳有慈善鋼琴演出,有時也接案子作商業演出。他自豪地說,背了許多樂譜,只要客人點的出來,他就演奏得出。


接著聊到記性的培養,他說是可以鍛練的。他開計程車時,沒事就在記道路周邊的商店和住家,到了收班時,可以從早上第一個客人的上上車時間,去的目的地和路線,付的車資,一直在腦中默唸到最後一位客人。


我說這太強了,他說還不只如此。他往往比乘客還知道目的地的周邊狀況,上回讓一位客人挑戰他的記憶,隨便客人說出台北市的任何地點,他如果沒說出周邊的店家名稱,就不收車資。結果他如數家珍般,按順序說出當地十家商店名稱,讓客人嘖嘖稱奇。他說,如果需要的話,可以免費來跟我的學生聊聊他的人生閱歷,給學生們參考。

我想,天下之大,奇能異士所在多有,臥虎藏龍,潛伏在我們周邊的隱士也大有人在。如石先生般奇妙的人物,很愉快地開著計程車,以與人交談為樂,以記憶大小事物為嗜好,以業餘慈善演出為調劑,以服務人群提攜後進為己任,誠可謂「樂善好施」也。

今天的時下潮流,利慾薰心者而居上位者大有人在,年輕學子們隨波逐流,急功近利而短視者,逐年增加之中,更不要談什麼仁義道德了。如最近法官事件一般,許多教育者缺乏自身修養,無法以清流自許,更難以與惡質體制抗衡。感嘆之餘,欣見社會中有隱士之流,以高度超然的智慧,游刃有餘地面對動盪的時代和變遷的環境。或許,社會的潛能根本不限於表面所見的亂象,亂中有序的序,才稱得上是真正的道,也未嘗不是如此。

轉載:放棄Windows! 轉投Linux的十個理由

http://it.21cn.com/software/czxt/2010/07/28/7691685.shtml
放棄Windows! 轉投Linux的十個理由 

在是拋棄Windows的好時機,不管是服務器還是工作站。 7月13日,微軟停止了對Windows Server 2003的支持,所以你需要尋找一些服務器可用的替代品,而Linux為你提供了自由的選擇。 你可能會認為放棄Windows並切換到Linux是個十分困難的工作,但實際上最困難的是做出轉換平台的決定。

很多企業所有者發現Linux——曾被認為是“小眾”的操作系統,可以提供很多可以依賴的組件和服務。 Linux現在已經進入了世界最大的數據中心,掌控了數十萬的個人電腦,並且統治了近100%的雲服務產業。 這些理由值得讓你去接觸並仔細研究Linux,下面是Linux值得關注的十大理由:   

1、商業支持   在過去,企業主要因為其他系統缺乏商業支持而繼續選用Windows,而現在,Rad Hat、Novell和Canonical這三大商業Linux提供商已經為用戶消除了這些顧慮,它們均早已開始為關鍵任務應用和商業服務提供24x7x365的支持。   

2、.NET支持   企業所應用的標準Windows技術,特別是.NET Web技術,現在Linux同樣可以支持這些相同的.NET應用。 Novell擁有並支持Nono project來保證.NET的兼容性,Nono project的一個目標就是為企業提供一個新選擇,打破封閉。 此外,Mono project提供了Visual Studio插件,這樣.NET開發者就是輕鬆地轉換基於Windows的.NET應用而不需要改變他們所熟悉的開發工具。   
3、媲美Unix的無故障時間   Linux的穩定性可以讓企業放心,他們的應用不會遭受操作系統不穩定帶來的長時間宕機。 Linux提供了媲美Unix的無故障工作時間,這意味著Linux可以滿足企業99.999%的可用性需求。 而Windows通常在每次補丁、升級、或者更改驅動後要重啟,使之不適合不間斷的關鍵任務和服務。   

4、高安全性   沒有操作系統是百分百安全的,Linux也不例外,但是Linux為用戶提供了優秀的安全性。 從定期的內核升級到幾乎每天的安全補丁升級,Linux代碼維護者們讓Linux系統非常安全。 應用具有商業支持Linux的企業可以獲得每一個可用的安全補丁,另外,有全球性的社區為Linux提供安全補丁,而並不是一個封閉代碼的公司。 而使用Windows,你只能依賴微軟提供安全補丁。   

5、可傳遞的技巧   應用Linux的一個障礙是Linux不足夠像Unix,因此切換到Linux後Unix管理員不能成功應用之前的知識和經驗。 Linux文件系統看起來像商業版本的Unix,也使用了一套標準的Unix命令。 有一些Linux命令是不能傳遞的,Unix之間也是如此。 Windows管理員可能會感覺用鍵盤來代替鼠標十分困難,但是一旦發現命令行的強大,他們可能就不再抱怨這個。 不過現在Linux也具有了Windows類型的GUI——並不是只提供了一種選擇。   

6、不需要特殊硬件   老闆們都會喜歡這件事情,過時的系統仍然可以運行Linux並且運行的很好。 幸運的是對於Linux來說,Linux軟件版本的升級並不會導致瘋狂的硬件升級。 Linux可以運行在32位和64位x86架構下,只要係統可以運行Windows,就可以運行Linux。   

7、Linux是免費的   你可能會聽說過Linux是免費的,的確,Linux是免費的,從這個意義上講Linux也沒有專利和其他限制,這樣的特點幫助創造了像Google這樣的公司,Linux是免費的,也是自由的。   

8、全球社區   Linux具有一個全球範圍的開發者社區,開發者們在為Linux源碼、安全補丁和系統增強上做著貢獻。 這個活躍的社區通過論壇和社區站點為企業提供著免費的支持,讓Linux用戶感到安心,Linux的支持和開發並不是單獨的來源。   

9、Linux基金會   Linux基金會是由白金支持公司包括富士通、日立、HP、IBM、英特爾、NEC、Novell和甲骨文以及提供贊助和會費的會員組成,發起人是Linus Torvalds。 Linux基金會的目的是“促進、保護和標準化Linux,推進Linux早起全球的增長”。 Linux基金會為Linux用戶起到了積極的作用,它的存在確保了Linux的不斷發展。   

10、定期的升級   你是否已經厭倦了每10個月才能等來Windows的Service Pack升級? 或者是厭倦了Windows系統不明確的升級路線? 每個Linux發行版每年數次定期提供升級包和原始資料,以及所需的安全補丁,如Ubuntu Linux每半年提供新的改良版本,並且每兩年提供長期支持的LTS版本。 Linux升級和打補丁都很簡單,最棒的是,它不需要重啟。

2010年8月2日 星期一

專題研究導向的課程規劃(2010.09~2011.06)

有鑑於研究生對於做專題的能力不足,欠缺解決問題的能力,又沒有太多時間和機會能接受比較正式的訓練,今年我打算換一個方式來教授研究所層級的課程,在課程中著重專題研究和個別指導,幫學生打下獨立研究、資料搜尋、實際製作、論文寫作的基礎能力。

要參加這些課程的學生,必須有以下的認知:
  • 對於做專題有濃厚的興趣
  • 有足夠時間收集資料和實作專題
  • 能夠每週參加課程討論
上課進行方式,原則上:
  • 1/3 時間是講解課程相關知識(lecture/textbook)
  • 1/3 時間討論research papers
  • 1/3 時間為student presentations and discussions
上學期(2010.09~2011.01)
Linux Kernel, Systems, and Applications

內容大綱:
  • Linux systems

    • Android systems
    • Cloud computing systems
    • Virtualization technologies
    • Virtual machine technologies
    • Virtual platform technologies

  • Advanced Linux Programming (2 weeks)

    • Basic parallel programming skills
    • Pthread & OpenMP Programming
    • Message-passing interface
    • Performance analysis

  • Linux Kernel Development

    • Process management & Interrupt handling (2 hours)
    • Kernel synchronization
    • Memory management
    • I/O devices
    • Drivers
    • Filesystems
    • Network
下學期(2011.02~2011.06)
Parallel and Distributed Programming for Cloud Computing
  • Parallelization of Applications
  • Shared Memory Programming
  • Message-Passing Programming
  • MapReduce
  • Task Distribution and Process Migration
  • Distributed File Systems
  • Data Synchronization
  • Client-Server
  • Performance Analysis