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


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

2014年12月30日 星期二

台大資訊工程系的博士班的註冊率

不要被一些報導誤導了,台大資訊工程系的博士班的新生註冊率還是很高的,有74%。學士班、碩士班接近100%的註冊率當然不在話下。

2014年12月9日 星期二

現在學的這些,從學校出去以後可以用多久?

我經常被學生問到,現在學的這些,從學校出去以後可以用多久?

標準答案是,看你自己在學校學了什麼?再看你從學校出去以後又學了什麼?不僅止於知識的學習,還包括自學、解題、研究的能力是否有被啟蒙與開竅?

大家知道嗎?現在你修的一些課,講的可能是過去火紅的議題,或是符合現在業界需求的技能,但等到你出去之後,資訊的世界可能又改變了。

你能夠因此說,那我只要學那些基本功夫就好了嗎?還是說,那我要拼命多學,十八般武藝俱全,將來總有一兩項是有用的?

對我來說,這兩種說法都很「廢」,因為太過偏差。

如果你對資訊科技本身並沒有太大的興趣,只是想應用學校所學來在業界找到一份好工作,那我奉勸資訊系畢業的大學生,可以找個自己真正有興趣的行業,然後用你的資訊技能去改變這個行業,機會很多很好。不然,待在變化迅速的資訊領域中,你會很辛苦的。

如果你對資訊科技很有興趣,樂此不疲,將來要走這個專業的話,請繼續讀下去。

我假設你讀到資訊工程研究所了,我想問你,在經營你的研究所生涯的時候,有沒有常常看看外面的世界?除了業界的公司之外,還有哪些?誰能告訴你五年後、十年後什麼技術最為搶手呢?

關於業界在做什麼的資訊,現在非常普遍,你如果說不知道、找不到的話,我真的質疑你是否適合念資訊系。

要了解資訊領域五年後、十年後什麼技術最為搶手的這件事,比較棘手,因為大部分學校的老師都有其專業和個人興趣,你可能要問好幾位老師才有機會能得其全貌,但教授對於業界的掌握度有多高,這就見仁見智了。

我在此做個嘗試,告訴你,你可以自己來嘗試找到你有興趣的未來熱門議題。當然,方法很多,這只是其中之一。

我們來看一下IEEE Transactions on Emerging Topics in Computing (TETC)的網頁(http://www.computer.org/portal/web/tetc)。大家來看看有那些emerging topics (顯化中的議題)正在call for papers?

我把所有call for papers的議題列出,再把跟我有興趣作為工作的部分用雙星號(**)標示,跟我目前個人嗜好有關的部分用單星號(*)標示。在這個實際例子裡,目前一共有9個顯化中的議題,與我們實驗室相關的有4個(嵌入式系統的資安、行動雲端演進、巨量資料系統效能、巨量資料處理),與目前個人興趣相關的有1個(工程教育),總列表放在文章最後。

因為要專精在系統效能、行動雲端應用、資安,所以我們實驗室有很多不做的,以上的議題有四個對我們來說是外行,因為我們不做電路 (circuits),不搞網路協定層(network layers),不精於統計、理論、演算法等等。

但如果有時間的話,我個人是有足夠的背景去看。當年修過的電機系課程,網路課程、影像處理課程、數學、資訊理論,讓我必要的時候,能夠進去逛逛,大致了解其中有什麼新的東西。不過要做研究的話,又是另一回事。

重點是,對於我有興趣的題目們,是否能夠用一個核心的方法論(core methodology)把它們貫串起來,達到所謂「吾道以一貫之」的程度呢?

對於初學者來說,很不容易。我們往往得摸索好一陣子,才能掌握一些要訣;再繼續摸索好一陣子,才能將要訣融合連貫收斂;再來則是實際運用測試收斂後的方法論,達到神而明之的程度。(That's what I call "beyond programming".)

在上例中,我的核心方法論是「系統效能」。我從小就對於電腦的效能非常感興趣,總是好奇,為什麼電腦不能再更快一點?能夠讓電腦更快,就能幫人類解決更多的問題。

當然,有很多方法可以讓電腦更快,但是根本的問題是,我們怎麼知道電腦在做什麼事情、在什麼時候不夠快,不夠快的原因,以及加速的方法,而這個能夠涵蓋這些的一套方法,就是我核心的方法論。這個方法論必須統攝多個相關領域,包括效能量測(performance measurement)、效能分析(performance assessment)、效能模型法(performance modeling)、效能最佳化(performance optimization)等。

我在博士班的研究,建構了這樣的核心方法論(沒有積極發表,因為一般人不能賞識和吸收),對於日後所從事的工作,有極大的助益。這十多年來,靠這個方法論,在一個接一個出來的新興領域,混得還不錯。

我將系統效能方法論用於超級電腦、商用伺服器、嵌入式系統、行動裝置、雲端服務、儲存系統,乃至於巨量資料處理等應用領域,皆是游刃有餘,只需要學習該應用領域的特性,或是與專家合作,即可登堂入室。

我在SUN工作的時候,被找去做資安,發現資安領域中有很多效能的問題,因為要層層加密和檢查,需要耗費大量運算資源。很多的商業應用,也是效能的問題,沒有解決效能問題,服務沒辦法在使用者或工作量持續延展(scale)的狀況下維持服務品質。

行動運算,談的是在小小的、有限能源的系統上做計算;雲端運算和巨量資料處理,很多議題談的是資料的儲存和處理的相依性和一致性,其本質是平行與分散式運算中的做作分割(task partitioning)、資料集中性(data locality)、運算同步(synchronization)、資料一致(coherence)、效率通訊(communications)、優化排程(scheduling)等;異質多核(heterogeneous multicore),是進一步優化效率的形式。

這些相關問題,多得不得了,同學們如果能掌握關鍵方法,很多時候都可以做得有聲有色。

我們希望能做更多,所以想辦法把方法論建置在工具上。因此我們花了很多年時間建構各種虛擬平台(virtual platform),希望能逐步把一些效能量測、分析、模型、最佳化的方法放進去,完成我當年博士論文中所提出的想法。做出這樣的工具,應該可以幫助很多系統的設計者,同學們加把勁吧。

好吧,我把我自己多年來用得很不錯但不怎麼樣的秘密都說給你們聽了,道理很簡單,修行在個人。

附件:

Call for Papers in IEEE TETC, as of 2014-12-09

Special Issue on Circuit and System Design Methodologies for Emerging Technologies

**Special Issue on Emerging Security Trends for Deeply-Embedded Computing Systems

**Special Issue on Advances in Mobile Cloud Computing

*Special Issue on Emerging Trends in Education

**Special Issue on Big Data Benchmarks, Performance Optimization, and Emerging Hardware

**Special Issue on Methods and Techniques for Processing Streaming Big Data in Datacentre Clouds

Special Issue on Approximate and Stochastic Computing Circuits, Systems and Algorithms

Special Issue/Section on Low-Power Image Recognition

Special Issue/Section New Paradigms in Ad Hoc, Sensor and Mesh Networks, From Theory to Practice

2014年12月5日 星期五

改革和創新的天時、地利、人和,但不要寄望政府當凱子或是神

昨天寫了兩篇談高級軟體人才與國內應如何務實創新的文章,得到一些回應,因此想在此多談一下。前文請參考:
http://hungsh-ntucsie.blogspot.tw/2014/12/blog-post.html
http://hungsh-ntucsie.blogspot.tw/2014/12/blog-post_4.html

我想,文中大小聯盟以及中職的說法,只是比喻,師法那個精神,但執行上必須切合實際,例如說一開始要投入多少資源,推動哪些產業項目,與哪些機構合作,都必須要有規劃,然而這些規劃最終要由有理想和願景的「對的團隊」來去執行,否則畫大餅讓人看得到吃不著也沒有用,只是惹人訕笑。

好吧,怎麼我像是要搞選舉一樣?我其實只是抱著一個志工的心態,想拋磚引玉,希望有更厲害的人來參與,或是把想法搞得更透徹而已。所以無論是正面或反面的意見,只要態度良好,道理講清楚,我都樂於接受或進行討論。

可能有人會質疑,這樣的想法,以前也談過甚至做過,都沒有成功,為什麼我們覺得現在會有成果?原因很簡單:天時、地利、人和,三者皆具備

1. 天時:現在有很多以前沒有的東西,包括快速且全球化無所不在的網際網路(Pervasive Network)、跨國的線上課程(MOOC)、大量的開放和群眾軟體(Open Source and Crowdsourcing)等等,使得「軟體研發」這個項目,可以在世界各個角落生根與深耕,這是以前沒有的事。以前由於資訊較為封閉,不出國的人很難確實知道科技大聯盟的人在做什麼,即便有人回國想傳達訊息,也很難達意。

但現在可以善用科技,雖然沒辦法一下子讓台灣的大環境提升到第一流的境界,但至少可以讓一些有心人朝那個目標發展,這就是小聯盟的概念。更何況,不讓他們在國內發展高階技能的話,有人直接跳去國外打小聯盟(例如現在不少建中生出國念大學,台大生出國念碩士),不然就是才能在國內無用武之地,空有A級的才能,做B、C級的工作。

2. 地利:台灣與中國、美國、日本、韓國、新加坡等國關係密切,而且在這塊土地上,社會堪稱安定、人民注重教育、工作態度良好,與其把這些國家看成競爭對手,為什麼不嘗試多與這些國家合作?(我覺得柯P「八年超越新加坡』的說法,姑且不論能法達成,但我們大可不必凡事用競爭的方式來看待彼此關係。)

要在國際競爭,要有籌碼和人才,我們欠缺籌碼(土地、財力、人力等資源),很難跟人家硬碰硬比規模和拼價錢。你越想跟人家競爭,人家越會來防範你,技術、訂單不給你,慢慢就被邊緣化,撿人家吃剩的。再不努力,人才和技術就被人家大把挖走,連既有的根基都可能沒了。

因此一些小國家為了發展,採取合作的方式。新加坡、瑞士、以色列的做法值得借鏡,都朝國際化發展。不像台灣鎖國(這是幾年前新加坡的部長說的話),老是以贏得國內比賽或是在虛的地方(論文數量)標榜自己,不然就是任由企業老板來定價,告訴勞工你值多少錢,保證他們一定賺錢。

開放和合作,是台灣的一條出路。這條路當然有風險,但他帶來的效益應該遠遠不只走出去的人,他會影響國內的企業文化,帶動革新和人才的衝勁,這是我們所樂見的。

3. 人和:正確來說,這個項目應該是「人不和」。因為人不和,所以把國家、產業、學術搞到這番地步,造成民怨擴大,社會出現矛盾對立,產生更大的「人不和」,因此人心思變,才有現在的柯P現象。

十年前我回國任教之後,就開始憂心台灣的科技業和科技學術研發的狀況,但人微言輕,說話沒人聽得進去。四年多前我開始用臉書和部落格記錄和分享我的想法,也沒什麼人愛聽,我說大概要等到人民對大環境失望,心情落至谷底,想法才會開始動搖,思考是否有其他出路,以及嘗試做改變。

現在的「人不和」是造成改變的開始。我看到不少人在臉書上「感謝馬、江、連」,說他們成功讓執政黨崩盤,才有改革的契機;同時我也看到有人憂心改變帶來的衝擊,不相信改革一定能成功,尤其是既得利益者。如何好好的改革,對雙方來說,都是很重要的。

對此,我想現在的改革是勢在必行,既得利益者往往會反對改革,所以希望改革成功的人必須站出來參與改革,否則一大堆人在旁邊觀望,抱著賺錢可以分紅的心態,改革很難成功。因此,我不認為「政府」在做改革的時候,要量力而為,不需要亂灑資源,尤其是業界的改革,最好大部分由民間來促進與執行,不要寄望政府當「凱子」或是「神」

至於改革和創新的方法,那就事在人為。昔日三分天下,英雄逐鹿中原,大家各憑本事了。執行這些的時候,是投資不是慈善事業,要有如此的認識。

補充一下,要到哪裡發展,是「人」的決定,但我們或許可以打破「寧為雞首不為牛後」的成見。有人想留在舊體制裡做「雞首」,是他個人的選擇,有其個人的道理;有人想到更寬廣的世界打拼,即便成為「牛後」,也是個人的成就。我用「大小聯盟」的比喻,只是提出較為實際的比喻,希望促成更多的國際交流和合作,並沒有看輕任何人的意思

2014年12月4日 星期四

第一流的軟體人才在業界做些什麼?

第一流的軟體人才在業界做些什麼?

這篇文章說:「(翟本喬)分析,全球軟體業工作模式,簡單來說有兩大主流。一種是自己之前任職的Google,喜愛用超級天才做出平台的骨幹,其他部分用一般水準的人才來補足。在那裡,一個超級厲害的程式高手,身價可達10億美金,中間水準的約一億美金。但是管理難搞的天才,也是門大學問,並非每個老闆都適合。

另外一種模式則是由微軟、IBM開創,翟本喬認為,他們很善於把作業系統平台等複雜的大工程,拆解成一塊塊小專案,可以讓一群中等水準的大學畢業生團隊做完,只要領軍的專案負責人夠頂尖即可」(http://www.gvm.com.tw/webonly_content_3876_1.html)

平台的骨幹?什麼是Google平台的骨幹?

Google當年是以「搜尋引擎」起家,而且搜尋引擎是Google最重要的平台,個平台的骨幹是什麼?以我的理解,平台的骨幹指的是「最核心的系統內部架構技術」(Core System Infrastructure Technology)

在Google的例子裡,他的核心技術包括能夠存放巨量資料的Google Filesystem、能夠處理大量資料的Google MapReduce、能夠壓縮資料、高效能的、高可擴展性的BigTable資料庫系統、能夠讓一個技術人員輕鬆管理超大型雲端服務的技術、打造超高運算效率的資料中心的技術... (族繁不及備載)。

當年Google能夠打敗比他早開始做搜尋引擎的Yahoo!和Microsoft(以及一大堆公司),仰賴的就是其中幾個核心技術,這是為什麼Google需要超級天才來做這個。

我想起日前有位臉友的臉友,說他認為資訊系統「根本」不重要,因為他只需要寫軟體就行了。我回應他說,資訊系統的技術不是不重要,只是他碰不到而已。因為他們用的是另一種模式,至於在台灣軟體業領軍的專案負責人夠不夠頂尖,這就因公司而異了。

不夠頂尖的老板,不喜歡或不敢用難搞的天才;天才遇到不夠頂尖的老板,也很難搞出什麼東西。所以,如果你覺得你還有些才能的話,慎選你的老板!

務實創新在科技小聯盟做出成績

今天讀到一篇還蠻有意思的文章「不少頂尖軟體人才,身價僅次於CEO -- 美國軟體精英身價巨星化,台灣呢?」(http://www.gvm.com.tw/webonly_content_3876_1.html)

文中說:「一位在美國康奈爾大學念電腦科學的大學生Jessica Shu,也在網上公佈Dropbox等矽谷雲端公司提供給她實習月薪,有四家竟給出超台幣30萬價碼,讓不少網友羨慕不已。這都說明了,矽谷軟體業搶才已達白熱化,導致全球A級軟體業人才,身價也巨星化。」

重點是搶A級人才... 我今早上課時問同學,那B級、C級的呢?這薪資就跟大聯盟和小聯盟和業餘的一樣,差很多。

我上週末跟幾位好友聚會談台灣創業和學研之道,用「小聯盟」來形容台灣的近期科技研發的願景:應該多花些力氣去研究和發掘能夠成為「大聯盟」所用的技術和人才。如何把「小聯盟」和「大聯盟」的管道建立起來,是台灣的產官學值得努力投入的工作。

除了少數真正具備國際級技術實力的公司之外,能到國際跟人硬碰硬的公司寥寥無幾。代工廠就不用談了,如果新創公司不純靠技術,靠創意和行銷,憑藉國內市場和資金,還是很難走出去,因此需要靠國際合作;但技術含量不高的合作,很容易被國外公司瞟竊和複製。

這是新創軟體公司的困境,因為技術含量不高的軟體很容易被抄襲。同時這往往也是技術人才的迷思 -- 我們在一些「創新競賽」中看到的作品,充滿了層層的包裝,其中的技術含量相當少,而且重複性很高,有時硬要「創新」,變成「論文模式」,特別想出一些不重要、不常見、沒意義的情境出來解問題。

大家知道我一直很支持年輕人搞新創,很早就開始談這些,但有些為新創而新創的搞法,如果不知所云,甚至走火入魔的話,也是很危險的。

還是那句老台詞:「務實創新」。我鼓勵年輕人(還有學習能力的中老年人也可以啦)想想如何創新,但不妨多一些務實的修為,像是技術的研發、市場分析、多看各類書報、到各地深入觀察等等。

子曰:「學而不思則罔,思而不學則殆」,學習和思索創新最好是齊頭並進。

至於說,厲害的人才是不是一定要離鄉背井去打大聯盟?我覺得那是一條很重要的路,雖然不是非走不可的路。我們其實有不少人,包括我自己在內,在國外打過「科技大聯盟」,只要給我們足夠的空間和資源,應該能夠在國內建構起足以產生大聯盟技術和人才的小聯盟。

只是很可惜這樣的事一直沒有發生,因為台灣這些年的鎖國封閉、資源壟斷。

對科技陌生的朋友,我們可以舉台灣的職業運動發展為借鏡。台灣發展這麼久的職業棒球,為什麼搞得烏煙瘴氣?因為關起門來搞一個規模不大的市場。靠著政府補助和地方球迷,沒辦法達成經濟規模。

如果務實一些,改變發展的目標,讓台灣的職業運動,成為培養運動員到美國、日本打職業球隊的搖籃,那麼會不會有更多有才能的球員被發掘出來,進到國際舞台?

要這樣做,必須先拋棄一些舊思維。首先,政府和球團不能老是覺得球員是他們培養出來的,必須為國家和球團效力。其次,管道要通暢,讓技術能夠精進,人才能夠流轉,形成文化。

分享文開宗明義就說到「經紀」的角色。上述的事情要做好,一定要有好的經紀人。跨國推銷技術和人才,更需要有專業的經紀人。在科技行銷上,如何建立一套經紀制度來銜接「矽谷」和「台灣」的技術和人才交流,需要一些新的思維,台灣的人才也要更專業才行。