聽到有位系上同學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),找一些方法來幫助大家做系統研究。
我做系統研究的樂趣,早先來自於高中時代勤跑光華商場拼裝電腦、跑中華路猛讀電腦書,就像拼圖一樣,想要搞懂電腦是什麼、能拿來做什麼?可惜當時國內電腦系統的師資不足,即使是台大,也沒幾個教授是做電腦系統的。因此我絕大多數和電腦相關的知識,全部來自於自修。退而求其次,我從大二開始連續做三年的專題,藉以在跟學長學東西,使用實驗室的設備,以及跟老師要點經費買些電路板電子零件來玩。
當時曾經對於人工智慧特別著迷,也修了不少通訊系統和語音處裡的課,但是我後來自己發現一件事情,那就是電腦系統的進步快得不得了! 我那時還不知道甚麼是Moore's Law,頂多算是一個電腦的強力使用者(power user),雖然我始終想知道怎樣讓電腦變得更快更強大。我記得有一天晚上,某位教授打電話給我,問我對於語音處理的看法,我說Intel正在加強處理機的功能,不久之後,語音處理不再需要DSP來做,可以在個人電腦上做得很好。這只是一個例子,說明我在當時所看到的,所謂工欲善其事,必先利其器,而電腦既是這麼複雜強大的工具,如果善於駕馭改進這個工具,就有很多機會能夠造就很多新應用。
出國唸書後,可以學的東西太多了。我的運氣還不錯,計算機結構,平行處理,效能分析,作業系統,資訊安全,網路運算... 在求學和工作的生崖裡,一個問題接著一個文提來,一像技術接著一項技術學,很過癮。這些問題和技術彼此相關,可以讓拼圖遊戲變得非常有趣;基礎若是打好的話,可以讓積木推得越來越高;經驗夠豐富、道理搞清楚的話,可以化繁為簡,以簡馭繁,快速找到解決問題的關鍵。
系統的問題,比起解決一個單純的問題,主要的差別在於複雜的程度。如果把研究範圍縮得很小,可能就失去做系統研究的樂趣。前一陣子有位的研究生,很聰明(可惜不是我學生),見到我聊了一陣子,他說在做某個研究,但整天在跑simulation好無聊,不知道模擬器寫得對不對,也不知到做的東西有沒有用。如果是我的話,看不到做的研究能夠拿來做甚麼,我應該會覺得很無聊;如果無聊,我應該會想辦法跳出來做更有趣的東西。
我很感謝我當初念博士班的時候,指導教授完全不限制我研究方向,只是丟給我問題,以及和我討論我提出的想法。我到處去挖掘寶藏,想辦法讓「平行運算」做得更好。我當時沒想到,「平行運算」是多麼大的領域,也沒想到最後會以「平行應用的最佳化(Optimizing Parallel Applications)」作為我的博論題目。記得某一天,我的指導教授突然對我說:「我覺得我們對平行運算問題的了解的廣泛和透澈程度,大概已經超過所有人了,現在讓我們來想辦法把我們的知識和解決問題的方法寫出來。」(這句話應該是他用以激勵我的話,但是在當時很受用。)所以,我開始寫博士論文,花了半年的時間把兩百多頁的論文寫出來。在此之前,我從來沒有發表過任何論文。
時代不一樣,現在系統更複雜了,如果不給點方向,同學們可能不知道要往哪裡走。然而,我相信最終的目標還是一樣,希望能夠化繁為簡,以簡馭繁。因此,我總是先丟個大問題給學生,看學生如何反應,再一步一步引導,讓學生看清楚問題,再一邊做一邊討論,和學生一起解決問題,陪每個研究生走過一遭,我總是收穫良多。我們也設計新的研究工具,例如最近提出的虛擬效能分析(virtual performance analyzer),找一些方法來幫助大家做系統研究。
因此,做系統研究的大家一起加油吧... 尤其是同學們,好好練功,克服困難,或許你能找到其中的樂趣,將來你們都是重要的大內高手!