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


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

2014年3月17日 星期一

「務虛」的口號與教條

「先求有、再求好」是務實嗎?我想這個是可以爭論不休的。我今早一起來,回了fb朋友一段話:任何所謂的道理,只要被「口號化」,而使用者或聽話者缺乏智慧和自覺,就成為「務虛」的幫兇。

我很討厭口號,我認為「呼口號」在大部分時刻,是世界上最虛偽、最齷齪的東西,因為這樣的動作往往抹殺了人的獨立性和個體的價值。

戰後出生、在戒嚴中長大的台灣人,是受口號教育影響最大的族群。我這個年紀(55年次)的人,算是比較幸運的了,在大學時遇到解嚴、學運,至少在定型之前還有機會受到衝擊、與同儕間做些思辨。現在的年輕人,大概很難想像,早個幾年出生的人,例如49年次的,要到27歲才遇到76年的解嚴,在人生最有創造力、最能接受新觀念的求學歷程,整個接受的是單一價值的教條規訓。而這樣的教條文化,形塑台灣的主流思想和論述,隨著這個世代的崛起,至今仍有極大的影響力。

因此,我不認為台灣的政黨有多大的開放性。如果以「保守」和「自由」派來分的話,台灣的主流政黨,我認為都是保守派。因為絕大多數掌握資源的人是保守勢力,也因此主流媒體也是保守的,大多數民眾的意見也以保守居多。

什麼是保守?在大事上,最好是聽長官的話、跟著大多數人走、選擇穩定的工作、恪遵傳統教條。我們看到這樣保守的看法,充斥著整個社會,然而最可悲的是,這樣的保守文化,甚至不能夠說是基於道德或宗教,因為多數人所接受到的,頂多是膚淺的教條,無法領略其後的微言大義。

所以台灣要怎麼談多元化?經濟要怎麼轉型?教育要如何多元價值?乃至於各種涉及多元化的議題,普遍有兩極化的對立。保守勢力在今天仍舊是強大的,因為它掌控各方的資源,也因此目前看到許多假借革新、多元的口號,新瓶裝舊酒,作為持續維繫保守勢力的「假革新、假多元」的作法。

這樣的搞法,無論基於什麼美好的理論基礎,或是喊出什麼動聽的口號,自然只是「務虛」而已。

2014年3月9日 星期日

網路產業 面臨兩大人才困境?

這篇「網路產業 面臨兩大人才困境」(http://udn.com/NEWS/FINANCE/FIN1/8533056.shtml#ixzz2vL3mCkuX)有這樣一段話:「詹宏志對於學界,在網路應用理解較業界落後,也感到憂心,希望政府創立國際化網路教育機構,培養台灣網路產業的國際人才。」

我心想,你們是要轉到幾時?這種話還要說多久?

- 學界落後?來看看是我們做的東西落後,還是你們做的東西落後?我們做的東西,陸、韓國那邊想要,我們一直不想給,希望跟國內業者合作,但國內業界不懂、不會用,三不五時還有那種自以為是的業界主管在交流的場合裡挑三撿四、大放厥詞!對啦,最好是幫您把馬上可用的技術做好,幫你省下大筆研發費用,還不能夠太先進,絕對不要衝第一。請問你們把學界看成是二軍還是農場?

- 希望政府創立國際化網路教育機構?趨勢科技、台達電都捐贈給學校資金設立雲端學程,廣達、英業達捐了設備,Intel捐研究中心,業界可做的事太多了,問問你們自己,這些年你們都做了什麼?願意付多少薪資給學有專長的畢業生?給他們多少成長和發揮的空間?要學校生產更多人才,所以你們可以繼續壓榨人力嗎?

昨天一位老朋友來看我,當年在SUN工作的夥伴,現在大陸開公司,來台灣與幫他公司代工的某家大廠洽談。他說,台廠只想到訂單,對軟體和網路服務的開發不感興趣。我說:是啊,不然這產品哪輪得到你做,我們早就提過類似的案子,這些廠都沒興趣。他說,你不如找學生跟我做吧?

下週有一位在跨國科技業當技術主管的學長,就要到大陸去工作一陣子,幫他的母公司在大陸建構一組研發團隊。我笑說,你這不是資敵嗎?他在台灣這七年,不斷在找厲害的人進他的團隊,薪水很高,但是能人很難找,常常跟我要人。現在公司想在大陸做些重要的研發工作,他想去搭起一道橋樑,讓台灣還有技術交流的管道,免得被邊緣化了。

對於年輕人,我建議各位找工作時,不要只看公司的招牌,最好多認識一下你所去的部門和部門的主管。找一個能成長的地方,只要有才華,總能找到志同道合的夥伴和適合的地方。這幾年可能是過渡期,冰凍三尺,很難在短期回春,過個幾年,看域中是誰天下。

2014年3月7日 星期五

複雜系統的效能分析與調校

終於找到一篇類學術的文章可以跟學生介紹『複雜系統的效能分析與調校』。這篇文章談的東西很實用,對我來說好親切,書後列出的參考書目裡面的東西,大都不是學術論文,而是實務工作心得。

大客戶的高級商用伺服器出現效能問題,找誰來解決?先找個駐點的Field Support Engineer來看;解決不了,請比較厲害的System Engineer來;還是解決不了,送到總公司請Performance Engineering Team幫忙看。有朋友戲稱我們是大內高手。

我一直認為,當年(2000-2005)的SUN擁有最強的Performance Team,因為IBM和HP都不是靠效能在賣商用伺服器。IBM是靠金字招牌,HP是靠行銷術,只是SUN是靠「性價比」角逐市場。

這篇講的東西,就是我當年在SUN的Performance Engineering Team專精的工作項目之一。效能分析與調校,有一些基本的法則可以遵循。同一個問題給專家解,還是給庸手解,結果會差很多吧?想學嗎?看看這篇文章吧,台灣的學校大概是不會教的。

這種課,我曾在台大教過,吃力不討好,懂系統能夠體會個中精隨的人幾乎沒有。到業界教,也沒好到哪裡去,台灣的工程師們多半只想著解眼前的bug,想學一些可以現學現賣的絕招,對於methodology沒興趣。

如果我自己開公司要雇用系統分析高手,我會請來應徵者看看這篇,然後考他懂不懂這篇在講什麼?

我也有想過,打造一個精通效能分析與調校的團隊,開發各種效能工具,以及幫忙需要的人解決效能問題。

效能問題有多重要?看看eTag和戶政系統的緩慢,就應該知道。我想,政府很需要這樣的團隊來評估和解決各種效能問題。

"Performance issues can be complex and mysterious, providing little or no clue to their origin. In the absence of a starting point—or a methodology to provide one—performance issues are often analyzed randomly: guessing where the problem may be and then changing things until it goes away. While this can deliver results—if you guess correctly—it can also be time-consuming, disruptive, and may ultimately overlook certain issues. This article describes system-performance issues and the methodologies in use today for analyzing them, and it proposes a new methodology for approaching and solving a class of issues".

註:ACM Queue 是個發表平台,這篇跟Queueing Theory 一點關係都沒有。
http://queue.acm.org/detail.cfm?id=2413037

2014年3月3日 星期一

想學HSA嗎?

我們有個跟聯發科的產學合作計畫,跟異質系統架構(Heterogeneous System Architecture, HSA)有關。研究內容也不是什麼秘密,有很多系統硬軟體共同設計相關的研究可以做,但是要先了解HSA是什麼。

清大鍾葉青教授這學期開了一門課,專門教HSA,課程網頁在這裡:http://www.cs.nthu.edu.tw/~ychung/syllabus/HSA.htm,第一週有一堆人來上課,看到內容就嚇跑了,只剩下五位鍾教授自己的學生,以及幾位來自工研院的朋友旁聽。

其實我很佩服鍾教授能夠帶領學生挑戰很多艱難的實作專題,包括實作ARM的hypervisor、實作HSA的模擬器,都是極花時間,又很難發表論文的東西。

我如果要學生這樣苦幹實幹,那大概招不到幾位學生。我們嘗試站在巨人的肩膀上,看看能不能善用這些成果。

我這邊有幾份關於HSA的資料,有興趣做研究的,可以找我拿。HSA的重點是硬軟體的整合,需要能活用計算機結構、作業系統、平行計算、編譯器、虛擬機器、效能分析等知識與技術。

不管HSA會不會成為市場主流,能夠把HSA全盤硬軟體搞通,會學到很多硬軟體整合相關的東西,日後有機會引領潮流。

有興趣的人,可以先試著瀏覽一下這幾本:
1. HSA Platform System Architecture Specification
2. HSA Programmer’s Reference Manual: HSAIL Virtual ISA and Programming Model, Compiler Writer’s Guide, and Object Format (BRIG)
3. HSA Core API Programmers Reference Manual

我相信很多人在看這些文件的時候,會遇到不少困難。因為學校沒教過這些,而且必須有很完備的系統硬軟體基礎才有辦法看懂。

需要花多久時間來學?

我想,一學期能入門,算是很快的;遇到有人能教,算是幸運的;能夠搞通,算是厲害的。幸好我和我的學生,在多年前就開始研究異質運算,這幾年也一直做前瞻產學研究,所以我們很快就理解HSA是什麼。

硬軟體整合人才,在台灣極其缺乏,但在很多領域都需要。從上週哈佛的David Brooks在台大資工演講的機器蜜蜂(Robobee)到聯發科所瞄準的行動裝置,到異質高效能的伺服器,到Big Data的應用,都有用武之地。

想學嗎?不怕辛苦和工資低的話,歡迎來我們實驗室一起做研究 :)

2014年3月1日 星期六

不用考上研究所也可以做研究?

這幾天被長官問到如何改進資訊學門的教學研究,我說:如果今天有位具備專業基礎、肯用功學習、有志氣的大學畢業生,沒考上台大研究所,但寧可不要碩士學位,願意拿月薪三萬六當研究助理跟著我做兩年的研究,中間有機會旁聽各種課程,也有機會發表論文,請問划不划算?能不能學到東西?業界在不在乎他有沒有學位?業界看不看重這個工作經驗?

以上沒有標準答案,大家可以留言發表意見。

有幾件事可以思考:
第一,老師和學生都放開學位迷思,是否海闊天空?
第二,如果學位沒有用,學生到研究所唸什麼?
第三,如果學位沒有用,老師能收到什麼學生?

我個人一向認為學位對於積極向上的人沒多大用處。美國資訊業界有很多學歷不高的成功者,台灣為何不行?別的領域我不管,至少在資訊業是如此。

最近,幾位台大電機資訊碩士工作兩年多之後,有意願進我實驗室做研究助理轉換跑道。我歡迎想努力學東西的人來進修,不過我不是開補習班的,來的人不需要繳學費,但是要有能力跟著我做研究。

在台灣,不是不行,只是例子不多。這個關於開平餐飲學校的故事,說明了專業有其價值。
http://www.businesstoday.com.tw/article-content-80392-102787

承載知識的Wolfram語言

週四中午跟同學們分享關於Wolfram Language的影片,很有趣,值得深思。正好下午朋友來信,希望我提供心得... 我雖然不是職業的reviewer,但對於新鮮有趣的東西,我是很樂意review的。 下次有好玩的東西,可以主動送過來給我玩,能打動我的話就寫review,不收費的。

我想從Watson談起。很多人都知道IBM Watson -- 那個打敗Jeopardy!高手的電腦。可以想像Watson是個專家系統,你把整理好的資料和規則放進去,他可以在特定的領域表現優異。

如何把資料和規則整理好、放進去、快速執行,是Watson的know-how。這個很不容易,IBM花了很多人力、物力才做出一個能在Jeopardy!節目上獲勝的Watson,但成功之後,可以複製出千千萬萬個Watson!

如何把人類的知識轉變成電腦語言,自從有電腦開始,一直就是個大問題 -- 人類被迫去學電腦語言,才有辦法設計電腦程式。程式設計師,往往扮演人類與電腦的溝通的橋樑。所以說,懂得寫程式,只是程式設計的一半,另外一半是與人類溝通。

這個號稱是用於Knowledge-based programming的Wolfram Language,對我來說並不陌生。二十多年前,我就研究過Wolfram的Mathematica,所以我根本覺得做那些高難度的微積分考題簡直是在整人。你再會解積分題目、化簡三角函式,這些機械化的事情,Mathematica做得比你還好! 

Mathmematica擅長的是符號計算(symbolic computing),而非數值計算(numerical computing),這是他跟MATLAB大不同的地方,也是它特別有趣和特別有用的地方。

符號(symbol),是人類表達知識的載具。有意義的符號,稱之為文字;利用文字來溝通,稱之為語言。

如果有一套語言和工具,能夠讓我們輕易地、很結構化地裝載(encapsulate)知識,甚至是操作(manipulate)知識的話,那麼將對於整理、組織、運用人類知識,有極大的助益。


這裡談的不是「自然語言處理」(natural language processing, NLP),傳統的NLP希望夠做到分析、辨認人類語句,但頂多只是作為人類與電腦溝通的前端,距離知識的整理和運用還頗遙遠。

Walfram採用的方式,其實是不斷地去增加Mathematica的能力,蒐集各類型重要領域常用的語言和工具,讓人類可以
整理和運用知識


以數學為例,Mathematica提供的語法,讓我們很方便可以寫出代數的式子,他更提供了許多能用以操作這些式子的工具。記得因式分解、三角函式、微積分、複變分析、傅立葉分析、統計嗎?這些都是人類發展出來處理知識的工具。

至於目前 Wolfram Language能做些什麼,看看這影片中Steve Wolfram本人現身說法:
https://www.youtube.com/watch?v=_P9HqHVPeik&noredirect=1

“In general, what we’re trying to do is so that as long as a person can describe what they want, our goal is to get that done. A human defines what the goal should be, and a computer does its best to figure out what that means, and does its best to do it,” Wolfram says.

我不得不讚美Steve Walfram對他懷抱的理念的執著與企圖心,他花了30年持續常這個方向而不捨前進。幸好,近年的雲端運算和Big Data技術,應該大幅加速這個理想的實現。各位可以在這裡看到這個Wolfram Language目前的能力,以及思考我們能夠用他做的工作,再進一步想像他在幾年後能夠做的事情。

然而我們該深思的是,有這類的工具在手,人類該做什麼,學校該教些什麼?

- 知識就是力量,擁有處理知識的工具,將大幅強化人類的力量。
- 學校訓練學生的目標,不應是知識的記憶,而是如何活用知識的技藝。
- 教一些、學一些電腦不會的東西吧!

舉例來說,我這學期教平行程式設計,我將讓學生看看Wolfram Language在平行計算上能做什麼?根據http://reference.wolfram.com/language/guide/ParallelComputing.html,他還不會幫人類自動平行化程式,但他提供了不少基本的平行計算的支援。

需要進階的平行計算,Wolfram訴諸於CUDA和OpenCL,例如:
http://reference.wolfram.com/language/OpenCLLink/guide/OpenCLLink.html

所以想讓事情做得快,人類還是得用告訴電腦如何平行做事情。如何平行做事情?這個就是電腦不會的學問了,來上我的課就知道了。

Wolfram的如意算盤是:一些常用的運算,逐漸會被平行化,成為Wolfram Language的一部分。

想持續追蹤Wolfram Language的動態,可以鎖定:http://blog.stephenwolfram.com/


誰想當奴才?

葉丙成教授寫了一篇網誌:「我不想當奴才!」當真?,有興趣的朋友可以看看。

當然,沒有人喜歡承認自己願意當奴才,但是這個社會充滿了自欺、欺人、被人欺的奴才,這是很多人所不敢面對的真實,跟念書念得好不好沒多大關係。

「一輩子,每天醒來所做之事,不是自欺,就是欺人,不然就是被人欺。」這是某位古人懺悔之語,對於人的無明和受慾念的支配,形容得十分傳神。

有自願當奴才的,有不得已而去當奴才的,有喜歡把別人當奴才的,捫心自問,我們一天面對自己、長官、下屬,有沒有誠實不欺?

眾生平等,萬法惟心。重點是「內在」,而不是外在。我尊稱你長官或老師,做你交代的事,並不減損我的人格,也不妨礙我說該說的話。你尊稱我一句老師,我雖然形式上接受了,也教給你一些東西,但我並不自認比你高尚,因為在形而上的道體裡,我們終究是平等的。

懂嗎?不懂也沒關係。知道自己懂什麼,不懂什麼,是不自欺的開始。我們在成長的過程中,很多時候,在不假思索的狀況下,被灌輸進名為知識的框架,或者稱之為規矩、道德、禮教。有人受框架所限,有禮教殺人,實源自於自欺。

我們的教育,沒有強調獨立思考,沒有教學生如何自學,以至於自欺的現象特別嚴重。自欺多了之後,往往不相信自己,必須借外在事物來肯定自己,而且沒有自信,一窩蜂跟著人家後面衝,或是隨波逐流。

要想不當奴才,必須懂得內求。否則書念得再好,事業做得再大,仍舊是奴才。