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


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

2012年5月27日 星期日

做系統研究的甘苦

聽到有位系上同學Teebone Ding在FB上說:「一天看完兩篇14頁OSDI的paper真是人類極限=____= 念HCI類的paper相比之下簡直是躺著念啊....」接下來,他感嘆的說:「全世界都在徵網站前端設計師與APP developer,我卻在這裡搞最難搞的系統研究....

我說:如果隨意給兩篇OSDI,你都能在一天看完看懂,那你的內功程度就很不錯了。這些內功,將來可以受用很多很久。

比看懂paper更大問題是,對研究者來說,寫一篇能夠登上OSDI的paper,跟某些領域SCI paper的難度和需要做的工作差多少?明白的人應該會覺得用paper數量或點數,跨領域論英雄真是大笑話

學術界以前大家不大願意做系統研究,一方面是上述學術評鑑的問題,另一方面是十年前台灣的業界只是做系統開發,跟研究差很遠。即便是做系統開發,需要的人才也不大夠,因為學校教授做這方面的不多,願意進到這領域來的學生也少。

我在2005年返國教書後,去過幾次嵌入式系統軟體聯盟辦的場合演講跟多核心系統相關的議題,在座有許多技職體系的老師們參加。有一位技職體系的資深教授聽完後以一種過來人的姿態對我說,你講的那些研究對學生和業界沒什麼用,還是教學生怎麼寫USB周邊裝置的驅動程式比較務實

在2006年,我和一群電資學院的教授到HTC開會,和包括周永明總經理在內的部門主管們交換意見,我被告知的是,HTC能夠自行修改的軟體部分非常有限,因為當時只能做Windows Mobile手機,整個軟體操之在微軟手上,只有辦法發展周邊裝置的驅動程式和相關軟體

上面這兩件事說明,國內學界和業界在那個時代,在做系統開發上,規模很小,軟體的部份被看成是硬體的附屬品,複雜度並不高,也沒什麼高深的系統研究是能夠拿來做產學合作

這幾年,傳統電子資訊產業利潤微薄,手機和雲端這些複雜的系統突然興起,台灣政府和業界一開始搞不清楚狀況,用跟以前做PC的心態去經營,碰到問題之後才體認到系統人才的不足。一下子一大堆人出來搭雲端列車,是真的懂嗎 一下子要找那麼多系統人才 ,去哪裡找呢?

由於以上的歷史共業,產官學的長官們,沒幾個懂系統的。一些長官以為做系統研究很容易。例如,最近有位國營事業研究機構的長官,來談合作案的時候對幾位教授說,你們現在講的這些,很多我們也會做,你能不能提出一些新構想去取代現有的雲端科技,比 MapReduce 做得更好呢?我聽到這個,覺得很不可思議。這個單位的名字,我不想講,但是在學術界的人都知道,他們這麼多年來到底做了什麼偉大的貢獻?這是甚麼年代了,怎麼還像是中國幾十年前只會土法煉鋼,去口口聲聲說要在短期間內超英趕美呢?

不懂系統研究的人,以為我們做的工作像是「黑手」做的以為我們的創新,只不過是小小的改進。要神來一筆,想出個全新的技術,必須是大師級的人物。但是現在電腦系統這麼複雜,光是把系統搞透徹都越來越難了,要當大師談何容易 因此我對於曾在Google待過的新任科技政委張善政先生有些期待,我不期待國內能夠突飛猛進,但是如果能夠修改政府和學界好高騖遠的心態,多致力於實務性質的系統研究,會有利於業界長遠的進步發展。業界也不要只想坐享其成,學校訓練出來的人才,業界要善於利用、優渥對待,逐漸提升產品技術的層次,才會有源源不斷的人才

我想,做系統,有點像拼圖堆積木。大家小時候有沒有堆過Lego積木?你如果覺得積木很好玩,你會一邊玩一邊堆出各種不同的作品,然後可能會越堆越大。到最後,你可以堆得很快,知道如何使用材料,知道怎樣堆出好玩的東西,樂趣就在其中。有些人不愛玩積木,喜歡玩現成的玩具,無法領略堆積木的樂趣。


我做系統研究的樂趣,早先來自於高中時代勤跑光華商場拼裝電腦、跑中華路猛讀電腦書,就像拼圖一樣,想要搞懂電腦是什麼、能拿來做什麼?可惜當時國內電腦系統的師資不足,即使是台大,也沒幾個教授是做電腦系統的。因此我絕大多數和電腦相關的知識,全部來自於自修。退而求其次,我從大二開始連續做三年的專題,藉以在跟學長學東西,使用實驗室的設備,以及跟老師要點經費買些電路板電子零件來玩


當時曾經對於人工智慧特別著迷,也修了不少通訊系統和語音處裡的課,但是我後來自己發現一件事情,那就是電腦系統的進步快得不得了! 我那時還不知道甚麼是Moore's Law,頂多算是一個電腦的強力使用者(power user),雖然我始終想知道怎樣讓電腦變得更快更強大。我記得有一天晚上,某位教授打電話給我,問我對於語音處理的看法,我說Intel正在加強處理機的功能,不久之後,語音處理不再需要DSP來做,可以在個人電腦上做得很好。這只是一個例子,說明我在當時所看到的,所謂工欲善其事,必先利其器,而電腦既是這麼複雜強大的工具,如果善於駕馭改進這個工具,就有很多機會能夠造就很多新應用


出國唸書後,可以學的東西太多了。我的運氣還不錯,計算機結構,平行處理,效能分析,作業系統,資訊安全,網路運算... 在求學和工作的生崖裡,一個問題接著一個文提來,一像技術接著一項技術學,很過癮。這些問題和技術彼此相關,可以讓拼圖遊戲變得非常有趣;基礎若是打好的話,可以讓積木推得越來越高;經驗夠豐富、道理搞清楚的話,可以化繁為簡,以簡馭繁,快速找到解決問題的關鍵。


系統的問題,比起解決一個單純的問題,主要的差別在於複雜的程度。如果把研究範圍縮得很小,可能就失去做系統研究的樂趣。前一陣子有位的研究生,很聰明(可惜不是我學生),見到我聊了一陣子,他說在做某個研究,但整天在跑simulation好無聊,不知道模擬器寫得對不對,也不知到做的東西有沒有用。如果是我的話,看不到做的研究能夠拿來做甚麼,我應該會覺得很無聊;如果無聊,我應該會想辦法跳出來做更有趣的東西


我很感謝我當初念博士班的時候,指導教授完全不限制我研究方向,只是丟給我問題,以及和我討論我提出的想法。我到處去挖掘寶藏,想辦法讓「平行運算」做得更好。我當時沒想到,「平行運算」是多麼大的領域,也沒想到最後會以「平行應用的最佳化(Optimizing Parallel Applications)」作為我的博論題目。記得某一天,我的指導教授突然對我說:「我覺得我們對平行運算問題的了解的廣泛和透澈程度,大概已經超過所有人了,現在讓我們來想辦法把我們的知識和解決問題的方法寫出來。」(這句話應該是他用以激勵我的話,但是在當時很受用。)所以,開始寫博士論文,花了半年的時間把兩百多頁的論文寫出來。在此之前,我從來沒有發表過任何論文。


時代不一樣,現在系統更複雜了,如果不給點方向,同學們可能不知道要往哪裡走。然而,我相信最終的目標還是一樣,希望能夠化繁為簡,以簡馭繁因此,我總是先丟個大問題給學生,看學生如何反應,再一步一步引導,讓學生看清楚問題,再一邊做一邊討論,和學生一起解決問題,陪每個研究生走過一遭,我總是收穫良多。我們也設計新的研究工具,例如最近提出的虛擬效能分析(virtual performance analyzer),找一些方法來幫助大家做系統研究。

因此,做系統研究的大家一起加油吧... 尤其是同學們,好好練功,克服困難,或許你能找到其中的樂趣,將來你們都是重要的大內高手

15 則留言:

  1. 比起堆積木,拆積木可能更有趣一點 ...

    iPhone JB 算系統研究嗎?從供電、Boot Loader、一直到 OS 開啟,在信任鍊上找到漏洞。

    回覆刪除
    回覆
    1. 拆積木當然也是學習和研究的一種方式,當駭客其實是需要有一種契而不捨的研究精神。重要的是學到了什麼?,從Phone JB中學到從供電、Boot Loader、一直到 OS 開啟,在信任鍊上找到漏洞的方法,那很不錯。

      刪除
  2. 洪老師說得真對,要跳脫以前PC產業的思維,台灣不能故步自封

    回覆刪除
  3. 老師鼓勵學生的好文,但是其實台灣不乏系統高手---每年學校畢業的資工人才,在系統方面,都有一定的比率;只是到了業界,怎麼去適應大環境?整個業界都是短視近利的經營,自然會使系統人才轉而投向其他領域。這樣的情況,就跟外科醫生投向醫美的情況相似。要更改這樣的現象,就需要有能夠撼動大環境的力量才行。舉例來說:如以研究單位的力量,培植並累積資源與人才,讓業界能夠向學術單位來申請授權,並讓這些系統人才變成珍貴的資源,讓業界知道要重用,就產生良性循環,吸引更多人才,投入系統開發。以現在的情況下去,一個個培養出來的系統人才,只有被現實環境淹沒的份,感覺很可惜啊!

    回覆刪除
    回覆
    1. 當時一則沒時間把想寫的東西寫出來,一則您說的東西在前一篇談台灣的工作環境說過,重複的話怕大家讀煩了 :) 不過我剛剛還是讀到您的回應前在文中補了一小段:「業界也不要只想坐享其成,學校訓練出來的人才,業界要善於利用、優渥對待,逐漸提升產品技術的層次,才會有源源不斷的人才。」

      這些說再多,業界也難以改變,除非是我們先做出些好東西。好比當初的紅葉少棒隊,沒有他們的傳奇,也沒有後來台灣的棒球歷史。

      刪除
  4. 其實我個人覺得UI雖然沒系統研究那麼複雜,但大部分人最在乎的反而是UI部分而不是系統如何好用,或特別
    這也是為什麼微軟系統很強大,但卻輸給蘋果和ANDROID關係
    換個以前例子就是,微軟比LINUX好用多了至少對大多數人來說是這樣

    所以國內人其實應該要多往UI部分去設計,講的丟臉情況是,我的手機一堆APP幾乎都是MIC的,不為什麼,國內的APP寫的人太少,甚至根本就不好用,沒有對岸寫得這麼精緻,好用,這很現實。

    當然我覺得是因為我程度太淺,所以無法理解高深的背後技術
    但我相信大多數人對於資工沒背景的,其實要求的幾乎都是UI部分

    希望我小小見解不會造成讓您認為來踢館或來亂的

    回覆刪除
    回覆
    1. 你的見解反應了使用者對系統的看法,我這裡談的系統,不只是PC和手機,有使用者看不到的嵌入式系統和伺服器,這些東西沒有所謂的UI。至於說ui和app重不重要,那是另一回事,我們不必蘋果比橘子。

      刪除
  5. yes , 認同教授說的,台灣公司根本的問題就是無法設計架構or系統, 以htc而言,通常也是限制在UI design or modification.通常這也是base on 原來的架構,如Windows mobile SDK , android framework , 這些都難以有長遠且核心的競爭力,這些問題都是台灣公司所欠缺的,因為代工久了也就是受制於人奴化了

    回覆刪除
    回覆
    1. HTC目前已經看到他們所欠缺的核心競爭力,有找我們尋求合作,不過台灣整體來說,代工的心態還是滿濃厚的,所以業界大談創新,也只能做些表面工夫(UI, Apps),功夫做不深。做些表面工夫不是不能夠賺錢,只是說能賺到幾時?當初個人電腦剛出來的時候,一大堆軟體公司,後來剩不到幾家。現在,我們一般人在PC上會用到多少Apps,有幾個UI?所以我很擔憂一群人投入到這些時下熱門的項目,反而忽視了現在這個做系統整合研發的大好機會。

      刪除
  6. yes. 教授說的沒錯.我認為台灣公司已經不可能改變了,因為這些所謂的科技大廠全部都在花心力在做UI coding , 皆未從事核心的architecture design or system design.這個問題是原於一個是公司策略,另一個是因為工程師的素質.台灣的科技業也是屬於淺碟文化的一種,這也是大環境根深蒂固的問題

    回覆刪除
    回覆
    1. 有些公司開始已經開始做系統研究,大家等著看吧

      刪除
    2. 可以透漏是那些公司嗎? Deltx ?

      刪除
  7. 現在open sources 盛行,GUI frameworks 很多都可移植了, widgets 也相當完整了,所以GUI design 也不是什麼難事,所以台灣軟體業還能做什麼....

    回覆刪除
    回覆
    1. GUI design不算是系統研究的一部分,我不確定台灣軟體業能夠做什麼大賺錢的東西,但是我想,跟系統相關的軟體是大有可為的,而且懂系統軟體和系統架構的人將來會成為主導系統產業的人,不是像現在由硬體的人掛帥。

      刪除
    2. 作者已經移除這則留言。

      刪除