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


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

學思歷程中的點點滴滴 (刊登於「台大電機之友」)

學思歷程中的點點滴滴
洪士灝 2009.05
台大電機系1989年畢業系友
美國密西根大學資訊工博士
現任台大資訊工程系助理教授

由於電機系江簡富教授和資工系呂育道主任的鼓勵,很榮幸有這個機會在此與系友們分享個人學思歷程的點滴心得;班門弄斧與野人獻曝的部份,還請大家一笑置之。

人不輕狂枉少年

自幼家父任職於電信局,曾不只一次告訴我:『你以後還是作工程師好,工作單純,憑能力做事,可以不需要招惹是非。』父親在過去動亂頻繁的時代,在數萬人的大單位裡,深知要做到『不沾鍋』,非常不容易;他也預見高科技時代中,工程師所扮演的重要角色。更何況,以我自幼桀傲不馴的個性,若非父親耳提面命,恐怕會走的辛苦。當時的我,特別喜歡科幻新奇的事物,自然選擇了理工之路。走在符合心性的道路上,至今雖然無所成就,但是頗為愉快,這都多虧父母的栽培與支持。

考上建國中學,正是
Apple電腦流行的時候。在友人家中,生平第一次見到電腦,像是看到『世間最好玩的玩具』! 如著魔般,回家後馬上央求父親買電腦,自此與電腦結下不解之緣。高一時,每天上課時偷看電腦書,放學後走到重慶南路書店看原文電腦書,或是跑光華商場跟玩家交換『資訊』。其間參加『建中電子工藝研習社』,結識了一群熱衷電腦的同好,包括自行設計電腦語言與編譯器的翟本喬學長(後來是Google開創期間研發server平台的關鍵人物),以及對Apple瞭若指掌,能反組譯6502處理器機器碼(machine code)的呂正平、張正豪、徐信麒學長。整個暑假,我和這群人待在電腦室裡準備全國高中科學展覽競賽,因此獲得我高中生涯唯一的獎狀,也算是不辜負那一段學習的日子!

呂張兩位後來進入台大電機就讀,在大學時還常見面;而信麒兄後來與我在師對抗演習的電腦兵棋室裡並肩作戰一個月。此謂相逢自是有緣,人生何處不相逢?

對電腦和其他『玩物』的迷戀,換來的是課業的悲劇。不把課業當回事,認為已經是電腦時代了,怎麼食古不化,還在背誦抄寫。於是,高一上的國文、歷史、地理三個科目理統統當掉。高二時迷戀上攝影,請大量公假幫高三畢業班編紀念冊,在學校內外到處拍照片,或是躲在在暗房洗照片;還有對古典音樂的著迷,唱片一張接一張的買,幾乎到了玩物喪志的地步。還好,周遭的師長,不斷地關照著我,讓我在高三時得以醒悟,進而勉勵自己
: 『為了更澈底更廣泛的玩,我必須考上台大電機或資訊系不可』。這個想法,將我的玩心轉化成學習與成長的動力;直到現在,我還是如此童心未泯!

回顧往事,雖是『人不輕狂枉少年』,但著實為自己捏把冷汗。在成長的歷程中,我結交許多有趣的朋友,全心投入和發展個人興趣,卻也帶給師長莫大的擔憂。還好,從小到現在,總是在我生命中各個轉捩點上,遇到啟發我的人,真是幸運!步入中年後,對此中因緣逐漸有所體悟,才開始轉化自己輕狂的習性,期許自己善盡人師之責,不負師長的辛勞。

大學生涯

大學時期(
1985-1989),我故態復萌,追逐新鮮刺激。新生訓練時遇見建中電研社的呂正平學長,進入『台大火箭研究社』。在這個座落於農藝館對面,許多人每天經過、很少人知道裡面在搞什麼的怪異社團裡面,社員的夢想是發射火箭:化工系的同學調配火藥製作火箭燃料、機械系的同學用工具機和鋼管製作火箭機體、電機系的負責撰寫電腦程式計算彈道和輔助火箭設計。雖是不切實際,但在火箭社幾年,我學到『工程』的概念,勤於動手做實驗,養成廣泛涉獵科技知識的癖好。

彷彿高中時代重演,我對通識科目總是興趣缺缺,大一當掉了幾門課,也不以為意。時常跑中華商場買電子元件回社團裡製作電路板,或是泡在計算機中心裡『研究』
(hack)當時的VAX系統,或是裝修PCMacintosh。由於個人興趣,大一時自修電子學和計算機結構,奠定我專業的基礎。後來大量選修有興趣的研究所課程,四年總計修了178學分,如倒吃甘蔗,大學生涯是越來越有趣。我想,能考上愛好的科系,甚至在工作中,不斷鑽研自己感興趣的學問和知識,實在是人生一大樂事。

台大電機,藏龍臥虎。看到同學卓越天賦,我在日後便不汲汲營營地與人競爭名利。我發現,在人才濟濟的系上,大家各憑本事,砥礪切磋,後來大都找到自己與眾不同的定位。鄭文燦同學擔任班代時即顯露出高超的政治智慧,也很清楚自己追求的是什麼,因此在大二就轉到社會系,如今在政壇上大放異彩;第一名畢業的賀培銘同學後來從事物理學研究,目前在台大物理系任教;駱明慶同學轉念管理學院,而後任教台大管理學院;『王排』王耀庭同學,在美創業有成;顧孟愷同學在
Broadcom事業有成後回到台大在資工系教書;陳信樹和林宗男在台大電機系教書,當然還有許多優秀的同學,在各個領域上發光發熱,在此無法一一列舉。今年(2009)是我們這屆畢業二十年,已在籌備同學會,或許未來有專文介紹我們這屆同學的動態。

由於選修許多課程,認識許多系上的老師。大二開始,我嘗試將電腦能力用於『正途』,設計嵌入式控制系統,參加教育部『微電腦硬體設計競賽』得獎;大三時毛遂自薦加入詹國禎老師的實驗室,幫同步輻射中心的抽真空設備設計控制系統,再次參賽得獎;大四時,對通訊系統產生興趣,跟李琳山老師做專題研究,探討通信編碼和語音技術。透過專題研究,我與這幾位老師密切的互動,讓我有機會學習解決實際問題的技巧,為我日後的研究打下根基。

在密西根大學的八年

大學平均成績雖然不佳,但專題研究老師的推薦,加上學業成績一年比一年好,使我能夠申請到密西根大學(
University of Michigan, Ann Arbor)這個不錯的學校。(現在我也常用自己的例子來勉勵成績不好的學生)我在密大總共待了八年,第一年時,曾經為了研究通訊系統還是電腦而猶疑不決,後來決定念電腦科學與工程(Computer Science and Engineering)。第兩年拿到碩士學位,在第六年時取得博士學位,最後兩年作博士後研究。

在美國留學期間,開始學習獨立生活,然而並不寂寞。許多大學同窗不約而同到密大『續攤』,先後大概有不下十位之多。加上前後屆十多位的學長學弟,及其他學校來的台灣同鄉,雖在冰天雪地的北國,也常有人情溫暖。剛去時,每位同學都經濟拮据;我充當大廚,帶領幾位同學周末大半天料理出七八道中國菜,製作出大家接下來一整周要吃的便當;一年下來,我的廚藝大幅長進,受到好評;大伙兒後來生活都過得不錯,但還時常舉辦
pot luck,想必是緬懷那段艱辛的日子。我很贊成現在的學生出國念書,除了專業學習之外,接受異國文化的薰陶,也培養獨立的氣質。

這段日子裡,與指導教授
Edward S. Davidson的互動經驗,以及目睹多位大師的風範,是我最大的收穫。當時在密大『高等計算機結構實驗室』(Advanced Computer Architecture Lab)的教授陣容極為堅強, 除了 Ed(大家都如此親切地稱呼他)之外,還有John Hayes, Yale Patt, John Meyer等重量級的IEEE Fellows,在計算機結構百家爭鳴、百花齊放的1990年代,使我視野大為開闊。密大有一流的計算機網路與高速電腦,也讓我的研究得到充分的支援。

Ed
非常平易近人,處處為學生著想,即便再忙碌,每週仍然與我單獨會談一小時以上,惠我良多。他從不催促我的研究進度,反而是謙遜地說從我這裡學到不少,而且跟我談話非常愉快。我回台大教書之後,才覺得指導學生不容易!每每在遇到瓶頸時,想起Ed對我虛心的聆聽和盡心的指導,便能將心比心、耐著性子地去看到學生的優點。我想,Ed的身教言教,不僅是研究教學,在作人處世方面,更是我終身學習的典範。

我研究主題是平行計算(
Parallel Computing)系統的效能最佳化。80-90年代,對平行計算充滿熱情與夢想,許多人被平行計算這股熱潮沖昏頭,日本的第五代電腦計畫就是最明顯的失敗案例之一。許多研究標榜使用超過千顆的處理機,特別設計的平行電腦語言,複雜的自動平行化編譯器技術,企圖解決大型的問題。然而,Ed的研究團隊嘗試解決那些被忽視的根本及實用性的問題,例如:平行計算程式與平台的互動關係,平行計算系統效能的評估與解析方法,平行計算程式效能的最佳化方式等等。這些在當時並沒有人做出整體性的探討,後來成為我的論文題目:平行應用程式的最佳化(Optimizing Parallel Applications)

在我的論文中,我提出一套系統化的法則,搭配我所研發的工具,探討平行計算實務上會遇到的諸多問題,評估個別問題對系統整體效能產生的影響,以此找尋合適的最佳化方法。基本上,我認為一個瞭解平行計算並且懂得使用上述系統化的法則的專家,能夠解決許多自動化技術所無力解決的問題,讓平行電腦的能力得以充分發揮。我的論述,涵蓋解決複雜問題的哲學,以及能夠幫助專家解決問題的各種技術。這個研究主題,有太多問題要解決,有太多技術需要開發,因此我到現在都持續地在進行研究。

在攻讀博士期間,由於強調實務,我僅僅發表幾篇會議論文。幾度想寫些小品文章投稿,都被
Ed勸阻,認為沒有必要,他說:"Paper is cheap"Ed希望在有生之年能看到平行計算技術落實在普遍的應用上。由此,我看到這個領域大師所看重的是解決真正重要的問題的技術,以及論文的品質與應用性,絕非論文的產量。另外,同學都認為Ed深怕我們不夠嚴謹的論文發表出去,會毀壞他的名聲;這也讓我對論文發表,一直保持戒慎恐懼的心態。

十多年後多核心處理機已成為主流的今日,平行計算的技術仍舊是差強人意,包括作業系統在內許多的應用,都無法順利的利用到多核心的優點。如今,大多數程式設計師仍然不懂得平行程式設計,自動平行化技術仍舊是非常不成熟,學術界和業界對此仍是沒有完整的解決方案。台灣有優秀的人力資源,何不教育訓練平行程式設計人才來開拓這個方興未艾重要領域
? 這是我這幾年積極努力的目標之一。

SUN Rise, SUN Set

90年代末,Internet Business盛極一時,資訊科技人無不心懷淘金夢。我也不例外,興沖沖到加州矽谷就業。找工作不成問題,去那一間公司?有人喜歡去新成立的小公司(Start-ups 打拼,而我選擇去大型公司深造,想再去學一些技術。當時HP SUN是矽谷最大的兩家電腦系統公司,在商用電腦伺服器(Enterprise Servers)產業中,僅次於IBM。在兩家公司『競標』之下,我選擇去SUN,原因是SUN的這個研發團隊隸屬工程(Engineering)部門,擁有非常多的設備和資源。如果去HP Labs的話,大多就是做基礎研究發表論文,工作較為輕鬆,但是我擔心學不到新東西。

SUN
是系統製造商,整個系統所需具備的硬體和軟體,幾乎都有自己的產品,例如著名的SPARC處理機、工作站、伺服器、週邊設備與儲存系統、Solaris Unix作業系統、Java跨平台程式語言、商用中介軟體 Middleware),甚至 OpenOffice。在業界中,大概只有IBM有類似營運哲學。早先的HP也是如此,但後來HP放棄自己的處理機和作業系統,被當時SUNCEO Scott McNeally嘲笑是個印表機公司。SUN始終堅持走自己的路,即使日後業績不佳,依然積極投入資源從事技術研發。因此,許多一流的工程師留在SUN工作,為的不只是高薪,而是SUN的科技人為本的文化。

我在
2000年進去工作時,SUN的聲望和股價可以說是如『日』中天,對HPIBM造成極大威脅。然而,2001年的911事件對全美國產生重大的衝擊,隨後Internet Business泡沫化,SUN的股價一直滑落。我在2005年離開公司,股價已不到2000年時的五分之一。(2009年,SUNORACLE併購)在這個過程裡,一方面,我充分感受到業界的競爭壓力和職場的風風雨雨;另一方面,我嘗試學習平常心做事與不去計較利害得失的心態,反倒別有一番心得。

我在
PAE (Performance and Applications Engineering) 團隊工作。雖是工程部門,PAE不負責主要的產品設計研發,而是著眼於改進系統整體的效能。公司營運不佳,需要提高競爭力,PAE的能見度(visibility)逐年提昇。傳統的產品研發,以設計者(designer)為中心,成敗由設計團隊負責;設計者或是閉門造車,或是欺上瞞下,做出效能不佳的產品,發現時已來不及拯救。PAE這個團隊,最早針對資料庫(database)系統硬軟體作深入分析與效能調整,使得資料庫的效能大幅領先IBMHP的同級伺服器系統,因此受到公司高層的重視,逐漸擴大編制,延展其工作範圍,把各種重要的應用(applications)都涵括進來。今天台灣產業缺乏的是硬軟體整體的規劃和設計人才,若要升級我們的資訊產業,必須注重產學合作和實務性研發,絕對不是關在象牙塔裡拼命產生期刊論文所能解決的問題。

SUN開始工作,馬上察覺到業界人士對『博士』的曖昧觀感。我的上司在第一天對我說:『雖然你有Ph.D.,但我並不期待你在第一年會真正產出什麼重要成果,你就多聽多看多學習,適應工作。』我的上司柯亙泰是台大電機(1983畢業)的學長,本身是博士;或許出於善意的提醒,希望我不要給自己太大壓力;或許是激將法也說不定。因此在公司裡,我從來不主動透露我Ph.D.的頭銜,放下身段,用實力來證明自己對公司和團隊的價值。一年以後,我詢問柯學長是否記得,他很高興的收回這段話。柯學長知人善任,對下屬一視同仁,在一個中國人、印度人、美國人三股勢力混雜的環境裡,如同一股清流,受到同事尊重,也是我學習的對象。

系統的問題通常牽扯廣泛,
PAE的工作可以讓我的專長充分發揮,但在SUN這三萬人的大公司裡,產品眾多,還是得花費許多時間去學習。許多知識,不是輕易可以獲得的;新進人員,必須虛心學習,獲得信任之後,才能從資深人員身上吸取寶貴的經驗。我在SUN第一個任務,是評估網路產品部門的新產品--密碼加速器(Crypto Accelerator)對安全網頁伺服器效能的改進。當時的我,對SUN的系統還不大瞭解,也沒碰過網頁伺服器,更不懂網路安全所用Secure Socket Layer (SSL) 通信協定,但是在短暫時間之內,必須有所回覆。這個時候,早已把柯學長的話拋到腦後,只覺得所有的長官同事都在注意我的表現,此時真可說是練兵千日,用於一時,恨不得當初多學一點,現在一天當兩天用!

我跟同事請教實驗室的設備和設定系統的基本方法、上網去收尋相關的資料、尋找解決問題最好的方式。總算是不枉費師長的教導,順利的完成任務,沒砸了密大和台大的招牌。(現在看來,這個擔心是多餘的!)我在兩週內得到初步結果,發現加速器和系統軟體的搭配不佳,無法發揮預期的效能。然而,僅僅提供負面的評估結果,可能被視為挑毛病;所以,我們找到原因,並且將原因告知產品設計人員,提出合作研擬改進方案,獲得對方信任。此後,我由一個無名小卒,突然成為公司裡密碼加速器的效能分析專家。

我慶幸大學時修過不少通信的課程,而且多年來一直『玩』電腦的經驗使我能快速的進入狀況,更因為博士的訓練讓我能有系統地分析與解決問題。我也常告訴學生我的經驗,希望他們在職場上都能順利發展。

回到台大再出發

2003
年末,我重新評估自己的生涯規劃,決定放眼台灣,尋找適合自己的未來工作方向。這是個不小的決定:放棄高薪的工作、已建立的人脈資源、熟悉的環境、舒適的生活空間,必須重新適應睽別十二年的台北市。然而,想到能就近陪伴照顧父母,把心力奉獻給台灣這塊熟悉的土地,也是人生一大樂事。於是趁著回台灣過春節時,回台大探望幾位照顧過我的老師;也拜訪顧孟愷、陳信樹、林宗男等回到台大教書的同學。此時政府大力推動『矽導專案』,系統晶片相關硬軟體人才有機會到大學教書,原本就樂於從事研究教學的我,當然把握這個機會,嚮往一個安貧樂道的日子!

沒有知名度、沒有人脈、沒有發表過任何SCI (Science Citation Index) 期刊論文,能回台大教書,也算是獨樹一幟吧! 在美期間,從未聽說過所謂的SCI;在SUN工作期間,礙於保密規定,也不方便發表論文。資工系或許是看中我的業界經驗吧!

進入資工系後,由於我的電機背景,我第一學期教『數位電子學』,發現不少學生不喜歡甚至討厭這門課;後來教『計算機結構』,也有類似的感覺。我想,和聲光特效十足的軟體應用或是有趣玄奧的計算理論相比,硬梆梆的系統內部硬軟體組成結構似乎不容易引起學生的興趣。相對的,資工系學生的軟體寫作的能力,往往遠超過電機系的學生。要如何把基本的理論知識教給學生,同時能激發學生對這些必修課程的興趣,是我這幾年來努力突破的課題。

在美國的許多大學裡,電機和資訊是一個系,學生可以多方面修課,身兼多項專長。國內各大學電機和資訊多半壁壘分明,甚至井水不犯河水。我想,要培育身兼軟硬體設計能力的基礎人才,或是從事高階系統整合工作,甚至是放眼資訊產業的未來,我們在台灣的學術界必須捐棄成見。我在資工系開的選修課,包括
『嵌入式多核心系統與軟體』和『輸出入裝置與驅動程式』,都有不少電機的學生來修;我個人和資工、電機系的多位系統相關教授有不少的互動與合作。因此,我樂見電機資訊學院未來跨系所之間,能夠有更多的合作,師生互動更融洽。
結語
台灣近年來強調嵌入式系統,以系統晶片來提高資訊產業競爭力,晶片設計有長足的進步,但嵌入式軟體設計人才與技術仍是大大不足。競爭力源自於人才培育,因此我在教育訓練這方面注入不少心力:增開新的研究所課程、參與教育部的嵌入式系統課程編修、訓練學生從事嵌入式系統研究。我深深覺得,在此重要時刻,不大幅的提昇競爭力,台灣的資訊產業如何能在全球化、中國大陸崛起的年代裡繼續扮演舉足輕重的角色?

回台已經有四年多了,一手建立起的實驗室,培養出兩屆十六位碩士,現役的四位博士生,十四位碩士生,來自各大名校與業界。得天下之英才而教之,教學相長的快樂,是筆墨難以形容的;但其幕後的艱辛,也不足為外人道。技術與知識的傳授,只是其中的一小部分。如何去與學生充分溝通相處,與公司同事間相待大異其趣。沒帶過人的我,帶領十八位研究生,如何引領入門?如何找尋研究計畫?如何管理研究進度?如何引導學生解決問題?還有,如何面對台灣的學術文化?這些個個都是挑戰。

沒有挑戰,就不會學習,就不會有進步。我想,跳脫出專業領域,還有更寬廣的世界,更重要的生命課題等著我們去發掘研究。

我的學思歷程,充其量只是在起步階段,應該永遠是個進行式
!