有些高階網路介面卡支援RDMA (Remote Direct Memory Access),但仍然很多人不知道RDMA是什麼,以及它能用來做哪些好事情呢?
RDMA主要是可以讓某台機器可以透過網路介面卡所提供的API,直接存取在另一台機器上的記憶體,免去透過傳統作業系統與網路協定所增加的負擔。(註1)
這項功能純粹是為了效能而存在的,對於現代已支援各種網路協定的系統而言,RDMA並沒有增加系統的功能性。換言之,RDMA是一項可有可無的、需要硬體特殊支援的系統功能,有了它,可以節省電腦系統在做資料交換時,作業系統所耗損的運算資源和降低延遲(latency)。
因此,RDMA不是人人都需要懂得,也不是到處可見的,近年來RDMA被率先用於高效能計算(HPC)上10Gbps乃至於100Gbps的高速網路,目前它逐漸被利用資料中心和大數據運算時,作為提高資料傳輸效率、降低系統能耗的手段,例如用RDMA加速Hadoop、Spark,以後可能會被用在某些強調效率的物聯網的裝置上。
實際在網卡上使用RDMA的範例,可參考(註2)。如果看懂這份200多頁的文件,應該就很清楚知道RDMA能做哪些事情。
但光是學會RDMA是不夠的,要發揮出RDMA的作用,必須要懂得將RDMA實際用於應用面上,必須要懂得軟體和效能分析的技術,分析效能的瓶頸和資料交換的模式(pattern),才能善用RDMA,否則可能不光是達不到預期的效果,還會減損系統效能,甚至危及系統的安全和穩定度。
首先在效能上,必須考量資料的傳輸模式,包括每次資料傳送的大小、資料的連續性、傳送的時間間隔、傳送的對象等等,來決定如何使用RDMA。我們可以讓傳送端主動把資料放進接收端,或是接收端主動到傳送端提取資料,究竟該用哪種模式?何時該進行傳輸?是否要用高階的gather/scatter功能? 這些都是要根據實際狀況才能回答的問題。
為什麼說RDMA使用不當,可能會危及系統的安全和穩定度? 因為「讓某台機器直接存取在另一台機器上的記憶體」這樣的功能,好比「讓某人直接進入你家存取東西」,如果某台機器被入侵,有可能危及其他機器的安全;也好比「共享記憶體」會造成搶資料的問題,如果兩台機器沒有同步好,可能會造成race condition,系統就會不穩定。
因此RDMA也不是隨隨便便能夠使出來的絕招,必須先精通軟硬體的實務才行。所以,絕招其實並非絕招,招數本身說穿了並不難,只是說使用者沒有足夠的軟硬體功力,練了絕招也沒有用。如果笑傲江湖裡的令狐沖沒有好好練個十多年的武功,突然接收了獨孤九劍的心法也沒有什麼用的。當然,並不是每個花很多時間練功的人,都能領悟獨孤九劍的要旨,學了也不見得會用。
話說RDMA也不是那麼罕見的概念,基本上RDMA是由DMA (Direct Memory Access)轉化而來的技術。說到DMA這個幾十年前就廣泛被使用在各種電腦系統的東西,很多做硬體設計和I/O驅動程式的人都很熟悉, 可以在單一機器中讓CPU節省傳送資料的時間,例如把大量資料送到磁碟機、網卡、顯示卡,甚至軟體想做大規模記憶體複製(memory copy)的時候也可以使用,普遍得不得了。
我原本以為,既然DMA是如此普遍的概念,那麼多加利用DMA和RDMA來改善系統效能的這件工作應該不難,但其實並非如此。看懂別人怎麼利用這些招數,和真正學會如何利用這些招數,並不是同一件事。很多做底層作業系統和驅動程式的人都看過DMA,有些會拿現有的範例照抄,但有多少人會調整DMA的使用方式或是用於解決新問題?
舉例來說,我們十年前玩過當年最紅的多核心處理機之一,IBM Cell (註3),用在超級電腦和Sony PlayStation 3上,所以我們實驗室買了十幾台PS3,用來做教學研究。這個系統晶片有個特點,晶片上多個處理機核心之間資料的傳送,是靠DMA來進行的。雖然DMA很有效率,但是很多程式師不大會用DMA。當年開發Cell的chef architect,Peter Hofstee,後來跟我們一起合作,聊起這件事,他覺得這些程式師暴殄天物。
我讓學生學習如何在Cell上運用DMA,發展效能分析工具,甚至有位學生設計出一個輕薄(lightweight)的message-passing library,使用DMA來加速CPU之間資料的傳送。不只支援Cell,也支援工研院所研發的異質多核心處理機PAC Duo,拿到ACM RACS會議的最佳論文獎 (註4)。事實上,實驗室還有其他幾個作品,也用了DMA來提升效能。
從眾人熟知的DMA延伸到RDMA,只是把單一機器改為多台機器,概念極為類似,所以要理解並不難,但如果要會運用,還是要實際運用才行。因此,我們建置了一套以100Gbps網路連接的小型叢集(cluster),打算來訓練學生使用RDMA,研究如何解決big data系統中資料傳輸的問題。很多開源碼系統軟體還沒有被好好優化,而且優化的方式就像以上所講的,必須根據實際應用的狀況而定,因此這裡有很大的發展空間。
RDMA 只是眾多非絕招的絕招之一例,還有很多這類的招數。我自己對於效能分析與優化特別感興趣,所以一路走來,到處學習、運用、發掘這類招數。但就像以上所描述的,這類招數說穿了一點都不稀奇,所以旁觀者看了覺得好像沒什麼了不起。國外的公司懂這類技術的人多,比較能夠賞識這樣的技能和成果;但某些台灣公司主事者的心態很奇怪,你化繁為簡,講到他能聽懂,他就以為你沒什麼了不起,以為他自己可以找到價美物廉的人在做同樣的工作。關於這點,可參考我兩周前寫的故事(註5)。
的確,這沒什麼偉大,但一般人懂了不見得會用,會用不見得會解決問題,所以「專業」不是一天造成的。以為自己官大學問大,不尊重專業,夜郎自大,自我設限是常見的通病。這篇文章的目的,在分享如何在系統開發上「同中求異」的心得,如果不想老是做跟人家一樣的東西,要如何創新? 基本功夠扎實,加上一些特異功能,例如本文的RDMA或是異質計算,那麼很有機會做出比別人好的系統,這其實不難,也不容易,需要務實培養專業能力。往好處看,台灣現在越來越需要,也比較能賞識這類人才。
(註1) https://en.wikipedia.org/wiki/Remot⋯⋯
(註2) Mellanox, RDMA Aware Networks Programming User Manual, http://www.mellanox.com/related-doc⋯⋯
(註3) https://zh.wikipedia.org/wiki/Cell_⋯⋯
(註4) Building a scalable and portable message-passing library for embedded multicore systems, http://dl.acm.org/citation.cfm?id=2⋯⋯
(註5) https://www.facebook.com/notes/洪�⋯⋯
從2010.03寫到現在,我只是想寫 -- 把我對社會、人文、科技、產業、教育的觀察和感想寫出來。每次寫出當下所思所想,似乎腦袋可以清淨一點、心靈可以輕爽些。文章大多先在臉書上與臉友分享,隨後再轉到這裡。臉書網址為:https://www.facebook.com/shihhaohung
2016年2月17日 星期三
2016年1月10日 星期日
人工智慧太厲害了,我們該怎麼辦? (Part II)
昨天概說了人工智慧過去和未來性 (註1),在技術面上著墨不多,所以今天來談談技術面。
首先是關於「摩爾定律」,我在半年前寫了一篇「後摩爾定律的世界和台灣的產業發展」(註2),有興趣的人可以參考一下。我當時說:
「說白一點,摩爾定律是錢砸出來的。摩爾定律的黃金時代,開始於個人電腦急速成長的時代,但個人電腦的效能在十年前就已經能夠滿足大多數個人,所以「世界」對於摩爾定律的期待逐漸降低,雖然智慧手機和平板的異軍突起,但主要是希望摩爾定律能夠提供更高的性能耗能比(power-performance),然而這幾年手機平板已趨於飽和,也沒看到真正個人所需要的高性能耗能比的應用(killer apps),再加上像Qualcomm、Samsung這樣的公司上在推出新的行動晶片上屢次因為晶片過熱而踢到鐵板,所以在既然沒有消費者的需求,晶片製造商也裹足不前的情況下,自然就會降低對於摩爾定律的挹注。」
「我想,在缺乏資金挹注的情況下,摩爾定律在技術上能延續的機率不高,即便不少研究者熱中於此。除非有真正大眾需要的應用,或是再度出現軍備競賽,否則很難改變摩爾定律的終結。」
但任何事都可能有例外,不能太鐵嘴,還好我最後有加上一個以「除非」開頭的句子。人工智慧是否能成為大眾真正需要的應用,或是用於軍事用途? 我想其可能性還不小,所以我在這幾個月跟一些業界朋友說,不要再搞那些傳統的消費電子產品了,要想想如何將「智慧」加進產品之中。
怎麼把「智慧」加進小型的裝置之中? 基本上,有下列方法:
(1)由小型裝置自己做
(2)藉由網路把工作送到集中式的伺服器去做
(3)藉由網路把計算工作送到周遭多台機器分工合作
(4)上述三種的組合
先說「自己做」行不行? 現在很多人手上的手機,能做多少事情? 其實手機可以做很多事情,只是會遇到過熱和電量不足的問題,但是這兩個問題影響較大的是較長時間使用的應用,如果我們要的是「即時性的智慧」,那麼問題應該比較像是「如果手機在五秒內全速執行,能夠解決那些問題」?
舉例來說,即將出現在手機市場上的Qualcomm旗艦處理機Snapdragon 820有多厲害呢? 據說(註3) 這顆晶片的 4核CPU比前一代S810的8核快35%,省30%的電,支援600Mbps的無線網路,其中的GPU也快了40%、省40%的電,還支援OpenCL 2.0。不只如此,他還有一顆名為Spectra的影像訊號處理機(image signal processor),可以加速影像處理和支援電腦視覺(computer vision)。
要自己做,可以,要想辦法把各種運算能力整合到晶片上。要讓手機晶片有智慧,不能只靠跑在CPU上的純軟體,一定不夠力的。有些應用可藉由GPGPU來加速以資料為主的運算(data-parallel computing),例如做機器學習的開源軟體,Mahout和Caffe,都可以用OpenCL程式碼跑在GPU上。另外,以影像和聲音為主的應用,則最好設法在源頭解決問題,也就是說在感測器紀錄影像或聲音之後馬上送到訊號處理機,使用專門特殊化的(specialized)計算架構來提升效率,其實電腦視覺也可算是初步的人工智慧。
從上述的例子,可以看到「特殊化」處理機的趨勢越來越明顯,因為用CPU跑純軟體太沒有效率。時下很多人討厭寫C程式,喜歡用像是Java, Javascript, Python之類的高階語言來開發應用,但是對於開發與效能息息相關的系統軟體的人來說,光是懂得寫C程式可能還不夠,要懂得multithread、OpenCL、CUDA才會善用多核心的CPU/GPU,要懂得訊號處理機的架構和專用語言才能發揮其能力,甚至要會使用「硬體描述語言」才能用FPGA來加速計算。
我預測未來這十年,是大家各憑本事、各顯神通,想盡辦法來打造智慧系統的黃金年代。我們將會看到百家爭鳴,在計算架構和軟體設計上不斷推陳出新,快速發展。當然,演算法也極為重要 -- 再厲害的運算能力,也挽救不了愚笨的演算法。而且,針對大系統所開發的演算法和軟體,不見得適用於小機器,例如把Google釋出的Tensorflow裝在小機器上,可能會發現它的效率不彰,所以各公司可尋找屬於自己的利基市場(niche)。
當然,如果不限定要帶在身上,智慧型裝置也可能出現在車上、電線桿上的監視錄影機。因為體積和電力供應較大,我們有機會將百倍於手機的運算能力放進這些裝置。所以某些人工智慧的應用,可能會先出現在這類裝置上,例如前幾天的CES 2016,我們看到NVIDIA和Qualcomm都推出車用的處理機(註4)(註5),來搶攻這類市場。
這是新興市場,我希望台灣的業界人士看到以上幾段會頗為振奮,尤其是那些在硬體公司寫系統軟體的朋友們,這是值得把握的機會。如果您能夠針對某個智慧型應用設計出又快又省電的系統,那就有機會逐鹿天下。不過呢,要把握機會,必須先搞清楚這些研發工作將會需要「緊密的垂直整合」,最好有一個人才濟濟的團隊,針對應用的需求規劃系統軟硬體,要有「軟體為主,硬體為輔」的思維,最好要找到軟硬兼備的系統架構師(system architect)來領導研發工作,如我在這篇專訪上談到的(註6) 。
當然,我們也可如第二種方法,「藉由網路把工作送到集中式的伺服器去做」,來提升小型設備的智慧。但首先,網路傳輸需要時間,不利於即時性的應用;其次是隱私性和安全性的問題,我們未必希望讓大公司那麼清楚的知道我們的一舉一動,所以也可能不希望把全部的工作送到集中式的伺服器去做;再來,極為耗費運算資源的工作,除非Google能夠由此獲的廣告利益,否則它未必願意提供免費的伺服器資源來幫大眾做這個,所以並非所有應用都會有免費服務。
同時,在資料中心做人工智慧的運算,更需要高效率的加速技術。因此現今很多大公司都在積極找高手來加速需要大量運算的服務,例如微軟有個專門以FPGA加速資料中心服務的研究團隊Catapult,陸續發表加速搜尋引擎和機器學習的技術(註7)。
第三種方法與第二種方法的差別,在於利用較近的機器做計算來縮短時間,選擇能夠信任的機器來保護隱私,以及以互助會的模式來分享互惠資源。我們做過這類模式的相關研究,也實際建構出系統,例如這篇將Android程式中大量數據處理的工作轉移其他機器的作法(註8)。雖然目前還缺乏需要這種模式的高運算量行動應用,不過我相信在未來身邊需要人工智慧的時候,應該會有這類的需求和做法。
實際的作法,也可能是以上三種方法的排列組合。至於如何排列組合,就考驗系統架構師的能力。台灣現在很缺系統架構師的人才,缺到業界連如何善用系統架構師、去哪裡找這些人、如何培養這種人都不知道。以前做代工不需要這種人才就算了,如果現在還不知道,那就難做了。現在業界有不少地方都說要做人工智慧,但我奉勸想加入這類團隊的朋友,先看看帶頭大哥懂不懂,有沒有兩把刷子再說。
(註1) 人工智慧太厲害了,我們該怎麼辦?
臉書版: https://www.facebook.com/shihhaohung/posts/1072464976129323
部落格: http://hungsh-ntucsie.blogspot.tw/2016/01/blog-post.html
(註2) 後摩爾定律的世界和台灣的產業發展
臉書版: https://www.facebook.com/shihhaohung/posts/968793609829794
部落格: http://hungsh-ntucsie.blogspot.tw/2015/07/blog-post_13.html
轉載於Inside: http://www.inside.com.tw/2015/07/14/post-moores-law-and-the-industry-development-in-taiwan
(註3) Qualcomm's Snapdragon 820 INSANE Specs & Features DETAILED
http://www.knowyourmobile.com/samsung/qualcomm-snapdragon-820/23126/qualcomm-snapdragon-820-release-date-specs-features-android-n-launch
(註4) NVIDIA推出車用人工智慧電腦NVIDIA DRIVE PX 2,號稱性能比 Macbook Pro強150倍http://www.techbang.com/posts/40654-nvidia-at-ces-not-flagship-graphics-card-but-strong-for-a-taxi-containing-artificial-intelligence-supercomputers-nvidia-drive-px-2
(註5)
【CES 2016】高通發表 Snapdragon 820A 車用處理器,具機器智能神經學習系統
http://technews.tw/2016/01/08/qualcomm-snapdragon-820a-automotive-processor/
(註6) 深化產學合作!向沒有能力領導創新的大企業說掰
http://www.bnext.com.tw/article/view/id/38432
(註7) Project Catapult
http://research.microsoft.com/en-us/projects/catapult/
(註8) Shih-Hao Hung, Tien-Tzong Tzeng, Gyun-De Wu, Jeng-Peng Shieh. A Code Offloading Scheme for Big-Data Processing in Android Applications, Software—Practice and Experience, first published online May 2014.
http://onlinelibrary.wiley.com/doi/10.1002/spe.2265/abstract
首先是關於「摩爾定律」,我在半年前寫了一篇「後摩爾定律的世界和台灣的產業發展」(註2),有興趣的人可以參考一下。我當時說:
「說白一點,摩爾定律是錢砸出來的。摩爾定律的黃金時代,開始於個人電腦急速成長的時代,但個人電腦的效能在十年前就已經能夠滿足大多數個人,所以「世界」對於摩爾定律的期待逐漸降低,雖然智慧手機和平板的異軍突起,但主要是希望摩爾定律能夠提供更高的性能耗能比(power-performance),然而這幾年手機平板已趨於飽和,也沒看到真正個人所需要的高性能耗能比的應用(killer apps),再加上像Qualcomm、Samsung這樣的公司上在推出新的行動晶片上屢次因為晶片過熱而踢到鐵板,所以在既然沒有消費者的需求,晶片製造商也裹足不前的情況下,自然就會降低對於摩爾定律的挹注。」
「我想,在缺乏資金挹注的情況下,摩爾定律在技術上能延續的機率不高,即便不少研究者熱中於此。除非有真正大眾需要的應用,或是再度出現軍備競賽,否則很難改變摩爾定律的終結。」
但任何事都可能有例外,不能太鐵嘴,還好我最後有加上一個以「除非」開頭的句子。人工智慧是否能成為大眾真正需要的應用,或是用於軍事用途? 我想其可能性還不小,所以我在這幾個月跟一些業界朋友說,不要再搞那些傳統的消費電子產品了,要想想如何將「智慧」加進產品之中。
怎麼把「智慧」加進小型的裝置之中? 基本上,有下列方法:
(1)由小型裝置自己做
(2)藉由網路把工作送到集中式的伺服器去做
(3)藉由網路把計算工作送到周遭多台機器分工合作
(4)上述三種的組合
先說「自己做」行不行? 現在很多人手上的手機,能做多少事情? 其實手機可以做很多事情,只是會遇到過熱和電量不足的問題,但是這兩個問題影響較大的是較長時間使用的應用,如果我們要的是「即時性的智慧」,那麼問題應該比較像是「如果手機在五秒內全速執行,能夠解決那些問題」?
舉例來說,即將出現在手機市場上的Qualcomm旗艦處理機Snapdragon 820有多厲害呢? 據說(註3) 這顆晶片的 4核CPU比前一代S810的8核快35%,省30%的電,支援600Mbps的無線網路,其中的GPU也快了40%、省40%的電,還支援OpenCL 2.0。不只如此,他還有一顆名為Spectra的影像訊號處理機(image signal processor),可以加速影像處理和支援電腦視覺(computer vision)。
要自己做,可以,要想辦法把各種運算能力整合到晶片上。要讓手機晶片有智慧,不能只靠跑在CPU上的純軟體,一定不夠力的。有些應用可藉由GPGPU來加速以資料為主的運算(data-parallel computing),例如做機器學習的開源軟體,Mahout和Caffe,都可以用OpenCL程式碼跑在GPU上。另外,以影像和聲音為主的應用,則最好設法在源頭解決問題,也就是說在感測器紀錄影像或聲音之後馬上送到訊號處理機,使用專門特殊化的(specialized)計算架構來提升效率,其實電腦視覺也可算是初步的人工智慧。
從上述的例子,可以看到「特殊化」處理機的趨勢越來越明顯,因為用CPU跑純軟體太沒有效率。時下很多人討厭寫C程式,喜歡用像是Java, Javascript, Python之類的高階語言來開發應用,但是對於開發與效能息息相關的系統軟體的人來說,光是懂得寫C程式可能還不夠,要懂得multithread、OpenCL、CUDA才會善用多核心的CPU/GPU,要懂得訊號處理機的架構和專用語言才能發揮其能力,甚至要會使用「硬體描述語言」才能用FPGA來加速計算。
我預測未來這十年,是大家各憑本事、各顯神通,想盡辦法來打造智慧系統的黃金年代。我們將會看到百家爭鳴,在計算架構和軟體設計上不斷推陳出新,快速發展。當然,演算法也極為重要 -- 再厲害的運算能力,也挽救不了愚笨的演算法。而且,針對大系統所開發的演算法和軟體,不見得適用於小機器,例如把Google釋出的Tensorflow裝在小機器上,可能會發現它的效率不彰,所以各公司可尋找屬於自己的利基市場(niche)。
當然,如果不限定要帶在身上,智慧型裝置也可能出現在車上、電線桿上的監視錄影機。因為體積和電力供應較大,我們有機會將百倍於手機的運算能力放進這些裝置。所以某些人工智慧的應用,可能會先出現在這類裝置上,例如前幾天的CES 2016,我們看到NVIDIA和Qualcomm都推出車用的處理機(註4)(註5),來搶攻這類市場。
這是新興市場,我希望台灣的業界人士看到以上幾段會頗為振奮,尤其是那些在硬體公司寫系統軟體的朋友們,這是值得把握的機會。如果您能夠針對某個智慧型應用設計出又快又省電的系統,那就有機會逐鹿天下。不過呢,要把握機會,必須先搞清楚這些研發工作將會需要「緊密的垂直整合」,最好有一個人才濟濟的團隊,針對應用的需求規劃系統軟硬體,要有「軟體為主,硬體為輔」的思維,最好要找到軟硬兼備的系統架構師(system architect)來領導研發工作,如我在這篇專訪上談到的(註6) 。
當然,我們也可如第二種方法,「藉由網路把工作送到集中式的伺服器去做」,來提升小型設備的智慧。但首先,網路傳輸需要時間,不利於即時性的應用;其次是隱私性和安全性的問題,我們未必希望讓大公司那麼清楚的知道我們的一舉一動,所以也可能不希望把全部的工作送到集中式的伺服器去做;再來,極為耗費運算資源的工作,除非Google能夠由此獲的廣告利益,否則它未必願意提供免費的伺服器資源來幫大眾做這個,所以並非所有應用都會有免費服務。
同時,在資料中心做人工智慧的運算,更需要高效率的加速技術。因此現今很多大公司都在積極找高手來加速需要大量運算的服務,例如微軟有個專門以FPGA加速資料中心服務的研究團隊Catapult,陸續發表加速搜尋引擎和機器學習的技術(註7)。
第三種方法與第二種方法的差別,在於利用較近的機器做計算來縮短時間,選擇能夠信任的機器來保護隱私,以及以互助會的模式來分享互惠資源。我們做過這類模式的相關研究,也實際建構出系統,例如這篇將Android程式中大量數據處理的工作轉移其他機器的作法(註8)。雖然目前還缺乏需要這種模式的高運算量行動應用,不過我相信在未來身邊需要人工智慧的時候,應該會有這類的需求和做法。
實際的作法,也可能是以上三種方法的排列組合。至於如何排列組合,就考驗系統架構師的能力。台灣現在很缺系統架構師的人才,缺到業界連如何善用系統架構師、去哪裡找這些人、如何培養這種人都不知道。以前做代工不需要這種人才就算了,如果現在還不知道,那就難做了。現在業界有不少地方都說要做人工智慧,但我奉勸想加入這類團隊的朋友,先看看帶頭大哥懂不懂,有沒有兩把刷子再說。
(註1) 人工智慧太厲害了,我們該怎麼辦?
臉書版: https://www.facebook.com/shihhaohung/posts/1072464976129323
部落格: http://hungsh-ntucsie.blogspot.tw/2016/01/blog-post.html
(註2) 後摩爾定律的世界和台灣的產業發展
臉書版: https://www.facebook.com/shihhaohung/posts/968793609829794
部落格: http://hungsh-ntucsie.blogspot.tw/2015/07/blog-post_13.html
轉載於Inside: http://www.inside.com.tw/2015/07/14/post-moores-law-and-the-industry-development-in-taiwan
(註3) Qualcomm's Snapdragon 820 INSANE Specs & Features DETAILED
http://www.knowyourmobile.com/samsung/qualcomm-snapdragon-820/23126/qualcomm-snapdragon-820-release-date-specs-features-android-n-launch
(註4) NVIDIA推出車用人工智慧電腦NVIDIA DRIVE PX 2,號稱性能比 Macbook Pro強150倍http://www.techbang.com/posts/40654-nvidia-at-ces-not-flagship-graphics-card-but-strong-for-a-taxi-containing-artificial-intelligence-supercomputers-nvidia-drive-px-2
(註5)
【CES 2016】高通發表 Snapdragon 820A 車用處理器,具機器智能神經學習系統
http://technews.tw/2016/01/08/qualcomm-snapdragon-820a-automotive-processor/
(註6) 深化產學合作!向沒有能力領導創新的大企業說掰
http://www.bnext.com.tw/article/view/id/38432
(註7) Project Catapult
http://research.microsoft.com/en-us/projects/catapult/
(註8) Shih-Hao Hung, Tien-Tzong Tzeng, Gyun-De Wu, Jeng-Peng Shieh. A Code Offloading Scheme for Big-Data Processing in Android Applications, Software—Practice and Experience, first published online May 2014.
http://onlinelibrary.wiley.com/doi/10.1002/spe.2265/abstract
2015年1月18日 星期日
Docker風潮席捲IT世界
在資工系教書的好處,就是常常可以吸收新的東西,不光光看,而是動手玩。我們幾個月前開始看Docker的時候,雖然有點概念,還不夠扎實,想了幾個研究方向,幾個月動手做下來,應該比較有點譜了。
同學們這時候再回去看這篇介紹性文章「Docker風潮席捲IT世界」(http://www.ithome.com.tw/news/91839),如果會覺得「講得這麼淺顯,三個月前怎麼有看沒有懂呢?」,那就表示已經入門了 :)
當然,一直有新東西出來,也是問題。如果你覺得「怎麼又有新東西出來,很煩呢,可不可以不要學?」,那就表示你在這個行業的前途堪慮。
同學們這時候再回去看這篇介紹性文章「Docker風潮席捲IT世界」(http://www.ithome.com.tw/news/91839),如果會覺得「講得這麼淺顯,三個月前怎麼有看沒有懂呢?」,那就表示已經入門了 :)
當然,一直有新東西出來,也是問題。如果你覺得「怎麼又有新東西出來,很煩呢,可不可以不要學?」,那就表示你在這個行業的前途堪慮。
2014年5月2日 星期五
Mobric來台大演講
Mobric是今天來台大演講,在地做Big-Data處理軟體的技術研發團隊。我覺得公司的企圖心和經營方針還蠻不錯的,難得有台灣公司願意積極從事軟體技術的研發,總經理是台大資訊畢業的,應該要支持一下。
演講人之一的工程師,是哲學系畢業的,22歲之後才自行學電腦,言談之中對於系統硬軟體都很熟,完全看不出是非本科系畢業的,可見得「熱情」和「清晰的思維」是學習電腦的憑藉,早點開始可增加創業機會,晚點開始也不會太晚
http://mobric.com/
演講人之一的工程師,是哲學系畢業的,22歲之後才自行學電腦,言談之中對於系統硬軟體都很熟,完全看不出是非本科系畢業的,可見得「熱情」和「清晰的思維」是學習電腦的憑藉,早點開始可增加創業機會,晚點開始也不會太晚
http://mobric.com/
2014年3月1日 星期六
承載知識的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.
我想從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/
2014年1月29日 星期三
轉型雲端
我跟Ben在這篇所寫的一樣,在這幾年學到類似的教訓。(台灣轉型雲端產業之路 http://ppt.cc/kxGY)
我個人認為,在目前的高科技業,不能靠政府和大公司。雲端是個教訓,現在的big data必須好自為之。
對應於Ben的六點意見,我的經驗和想法是:(請對照本文看)
1. 說服大公司的長官做創新是一件極吃力而不討好的事,接下來我們要更自主性地做我們想做的創新研究。
2. 創新和創業,是年輕人特別有本錢做的事。需要幫忙的話,可以來找我。
3. 創新或創業比賽的成果,是短線的。我有幾次幫學生改改簡報內容,提高得獎的機會,但得獎後我們都知道其中還有很多的問題,沒有那麼簡單,所以對於創新這件事會更謹慎。我們好幾個做了多年的研究,還持續在想辦法創新,希望有一天能出去創業。
4. 找研究題目、找工作都要有長遠的眼光。我這一年來找業界朋友來演講,想辦法打開學生們的眼界。每次有機會,也試圖要業界朋友投資在長遠的目標,但關鍵往往指向長官和老闆,這個又繞回到 1所談的東西。
5. 人才的培育要有長遠的規劃,這點國家沒做好的工作,私底下我們做得很辛苦。
6. 怕失敗、怕賠錢,是以上所有問題的源頭。越有錢的人,似乎越喜歡用大資本包攬那些穩賺不賠的生意,或是花點小錢就希望得大回收。
歸結以上,我們有因應的作法。基本上,就是不要靠政府和大公司來做我們想做的事業。我們勸說、幫助和歡迎政府和大公司出錢做正確的事,但我們自己應該要試圖提升自己的能力,找機會走出去,以及出去找機會。尤其是年輕的科技人才,只要每天都在持續學最新的東西,那怕沒有機會?何必受制於人、受限於自己的框架?
我個人認為,在目前的高科技業,不能靠政府和大公司。雲端是個教訓,現在的big data必須好自為之。
對應於Ben的六點意見,我的經驗和想法是:(請對照本文看)
1. 說服大公司的長官做創新是一件極吃力而不討好的事,接下來我們要更自主性地做我們想做的創新研究。
2. 創新和創業,是年輕人特別有本錢做的事。需要幫忙的話,可以來找我。
3. 創新或創業比賽的成果,是短線的。我有幾次幫學生改改簡報內容,提高得獎的機會,但得獎後我們都知道其中還有很多的問題,沒有那麼簡單,所以對於創新這件事會更謹慎。我們好幾個做了多年的研究,還持續在想辦法創新,希望有一天能出去創業。
4. 找研究題目、找工作都要有長遠的眼光。我這一年來找業界朋友來演講,想辦法打開學生們的眼界。每次有機會,也試圖要業界朋友投資在長遠的目標,但關鍵往往指向長官和老闆,這個又繞回到 1所談的東西。
5. 人才的培育要有長遠的規劃,這點國家沒做好的工作,私底下我們做得很辛苦。
6. 怕失敗、怕賠錢,是以上所有問題的源頭。越有錢的人,似乎越喜歡用大資本包攬那些穩賺不賠的生意,或是花點小錢就希望得大回收。
歸結以上,我們有因應的作法。基本上,就是不要靠政府和大公司來做我們想做的事業。我們勸說、幫助和歡迎政府和大公司出錢做正確的事,但我們自己應該要試圖提升自己的能力,找機會走出去,以及出去找機會。尤其是年輕的科技人才,只要每天都在持續學最新的東西,那怕沒有機會?何必受制於人、受限於自己的框架?
2013年7月23日 星期二
台灣在資訊產業的發展空間 (補註簡立峰的專訪)
這篇台灣Google簡立峰博士談到台灣在資訊產業的發展空間,有興趣的朋友可以看一下: http://www.ithome.com.tw/itadm/article.php?c=81487&s=1
我的摘要、註解、心得:
- 【終端裝置的單價越來越低,導致所有終端裝置的產業都受到影響,對只擅長個人電腦產業的臺灣影響更大】【新的機會,將會是在新的硬體,新的終端裝置陸續出現,可能是手錶、也可能是汽車,但都將帶來新的經濟時代,這又會是一次典範轉移。】
新的終端裝置究竟會是甚麼? 硬體只是載具,重點在於應用。我玩過幾隻智慧型手錶,但是找不到真正好的應用。汽車呢? 我把平板裝在車上,還是找不到真正好的應用,我們會想要手錶和車子提供甚麼樣聰明的功能呢? 大家必須跳脫【泛用】(general-purposed)的思維,就應用面多想想,也就是所謂的Application-driven System Design,規劃所需的硬軟體架構和實做。複雜的系統硬軟體整合在實務上有好幾個層次,需要一個具備幾種菁英人才的團隊,Architect最好要通曉硬軟體實務,但未必要懂每個細節;負責實作的人員固然要精通本業,也最好要懂得在硬軟體介面上與夥伴合作接軌的部分,才能有效溝通。
- 【當這些智慧型裝置的功能還是軟體時,臺灣沒有機會和國外競爭,「但是當這些軟體功能都IC化了以後,臺灣就有機會。」因為在大量生產的晶片市場中,臺灣廠商的競爭力很高... 只要發展高C/P值的IC設計,用硬體來提供這些軟體功能,臺灣的產業就有機會。 】
台灣的硬軟體統合設計的層次,還停留在一些C/P值低的IC設計上,一般廠商不敢技術層次高的系統設計,都覺得沒甚麼機會。
- 【為何我們常會覺得自己的機會很少,那是因為我們只從美國市場的角度來看,就會覺得臺灣的機會很少。例如現在很多人提到的Big Data趨勢或是資料科學家的職務,這些都是美國的新趨勢和新職位,但臺灣的時候還沒到。因為臺灣和美國的產業結構不一樣,我們得回頭從臺灣自己的產業特性來看臺灣的機會,以及未來的人才需求。】
我一直在找適合台灣做的Big Data系統。我跟孔祥重院士提過一個計畫,他覺得有機會,但是台灣的系統廠不懂、不願參與。上個月Google的VP來台大演講,我和他有段對話,他說: 對,你們不要學Google做Google正在做的研究。我們和IBM合作,了解IBM怎麼看Big Data,基本上是以應用為導向的系統設計,這點很符合台灣的調性。
- 【一定會大量需要的是軟硬體整合人才,而且是「硬體人才要具備軟體能力,而不是軟體人才具備硬體能力。」 美國軟體公司想要回頭做硬體,門檻很高。軟體知識現在很容易取得,只是學會以後,實務經驗還不足。但是硬體知識是沒有進入工廠學習就沒辦法學會的。】
這段講的有點滿,讓我補充一下。我本身從電機出身的背景和做計算機結構起家的背景,可算是【硬體人具備軟體能力】,而且我的業界經驗,基本上可以佐證簡立峰的說法,因此我也常勸告電機系的同學去充實軟體能力,在未來多些成為領導人物的機會。但是我不認為資訊系的同學不能做硬體,在在系統軟體的層次,門檻也是很高,一般電機系學生除非機緣巧合,否則不容易進去。
當然,肯用功就有機會,我在SUN工作的時候,長官給我很多學習的機會,除了去上好幾周的kernel課程之外,座位旁邊一堆專家可以問問題,硬著頭皮做幾個系統軟體的計畫之後,就入門了。所以在選工作時,不妨找一些有挑戰性,可以學新東西的位置。懂硬體的,找軟體研發的工作,反之亦然,是個好方法,不過機會難得就是了。
- 【台灣更要重視的是網路產業而不是美國人提到的雲端。網路時代真正的商業機會在各種商業服務... 傳統產業要重視線上和線下的合作,機會才會大,不管是併購或合資,合作,就有機會。】
有幾段關於網路產業的,我在此不欲置評。這裡牽扯到產業合作、政府補助、商業模式、行銷策略、資源分配等等,錯綜複雜,除非有人付費要我給意見,我才要講
- 【製作任何軟體,都要像拍電影,軟體是文創產業,抓準人性就能在網路擴散,是一種文創型的推廣概念。軟體人才要把自己當成導演,要告訴別人,你想要創作什麼,解釋為何這是別人需要的功能,軟體人要非常熱情,感動人也影響別人】
道理很簡單,但很多資訊系的同學不懂。當個究極的宅男女,何必管甚麼人性,講甚麼感動人、影響別人? 搞懂這些,就算是做底層的系統軟體也會很有熱情。上課或是做研究時,多分享自己的心得,多練習與人溝通;下課或是玩耍時,多交些志同道合的朋友,多理解朋友們的心情。
我的摘要、註解、心得:
- 【終端裝置的單價越來越低,導致所有終端裝置的產業都受到影響,對只擅長個人電腦產業的臺灣影響更大】【新的機會,將會是在新的硬體,新的終端裝置陸續出現,可能是手錶、也可能是汽車,但都將帶來新的經濟時代,這又會是一次典範轉移。】
新的終端裝置究竟會是甚麼? 硬體只是載具,重點在於應用。我玩過幾隻智慧型手錶,但是找不到真正好的應用。汽車呢? 我把平板裝在車上,還是找不到真正好的應用,我們會想要手錶和車子提供甚麼樣聰明的功能呢? 大家必須跳脫【泛用】(general-purposed)的思維,就應用面多想想,也就是所謂的Application-driven System Design,規劃所需的硬軟體架構和實做。複雜的系統硬軟體整合在實務上有好幾個層次,需要一個具備幾種菁英人才的團隊,Architect最好要通曉硬軟體實務,但未必要懂每個細節;負責實作的人員固然要精通本業,也最好要懂得在硬軟體介面上與夥伴合作接軌的部分,才能有效溝通。
- 【當這些智慧型裝置的功能還是軟體時,臺灣沒有機會和國外競爭,「但是當這些軟體功能都IC化了以後,臺灣就有機會。」因為在大量生產的晶片市場中,臺灣廠商的競爭力很高... 只要發展高C/P值的IC設計,用硬體來提供這些軟體功能,臺灣的產業就有機會。 】
台灣的硬軟體統合設計的層次,還停留在一些C/P值低的IC設計上,一般廠商不敢技術層次高的系統設計,都覺得沒甚麼機會。
- 【為何我們常會覺得自己的機會很少,那是因為我們只從美國市場的角度來看,就會覺得臺灣的機會很少。例如現在很多人提到的Big Data趨勢或是資料科學家的職務,這些都是美國的新趨勢和新職位,但臺灣的時候還沒到。因為臺灣和美國的產業結構不一樣,我們得回頭從臺灣自己的產業特性來看臺灣的機會,以及未來的人才需求。】
我一直在找適合台灣做的Big Data系統。我跟孔祥重院士提過一個計畫,他覺得有機會,但是台灣的系統廠不懂、不願參與。上個月Google的VP來台大演講,我和他有段對話,他說: 對,你們不要學Google做Google正在做的研究。我們和IBM合作,了解IBM怎麼看Big Data,基本上是以應用為導向的系統設計,這點很符合台灣的調性。
- 【一定會大量需要的是軟硬體整合人才,而且是「硬體人才要具備軟體能力,而不是軟體人才具備硬體能力。」 美國軟體公司想要回頭做硬體,門檻很高。軟體知識現在很容易取得,只是學會以後,實務經驗還不足。但是硬體知識是沒有進入工廠學習就沒辦法學會的。】
這段講的有點滿,讓我補充一下。我本身從電機出身的背景和做計算機結構起家的背景,可算是【硬體人具備軟體能力】,而且我的業界經驗,基本上可以佐證簡立峰的說法,因此我也常勸告電機系的同學去充實軟體能力,在未來多些成為領導人物的機會。但是我不認為資訊系的同學不能做硬體,在在系統軟體的層次,門檻也是很高,一般電機系學生除非機緣巧合,否則不容易進去。
當然,肯用功就有機會,我在SUN工作的時候,長官給我很多學習的機會,除了去上好幾周的kernel課程之外,座位旁邊一堆專家可以問問題,硬著頭皮做幾個系統軟體的計畫之後,就入門了。所以在選工作時,不妨找一些有挑戰性,可以學新東西的位置。懂硬體的,找軟體研發的工作,反之亦然,是個好方法,不過機會難得就是了。
- 【台灣更要重視的是網路產業而不是美國人提到的雲端。網路時代真正的商業機會在各種商業服務... 傳統產業要重視線上和線下的合作,機會才會大,不管是併購或合資,合作,就有機會。】
有幾段關於網路產業的,我在此不欲置評。這裡牽扯到產業合作、政府補助、商業模式、行銷策略、資源分配等等,錯綜複雜,除非有人付費要我給意見,我才要講
- 【製作任何軟體,都要像拍電影,軟體是文創產業,抓準人性就能在網路擴散,是一種文創型的推廣概念。軟體人才要把自己當成導演,要告訴別人,你想要創作什麼,解釋為何這是別人需要的功能,軟體人要非常熱情,感動人也影響別人】
道理很簡單,但很多資訊系的同學不懂。當個究極的宅男女,何必管甚麼人性,講甚麼感動人、影響別人? 搞懂這些,就算是做底層的系統軟體也會很有熱情。上課或是做研究時,多分享自己的心得,多練習與人溝通;下課或是玩耍時,多交些志同道合的朋友,多理解朋友們的心情。
2013年5月31日 星期五
新的工作模式 (Kaggle)
工作能力、學位經歷、商業模式 -- 這三位一體的考量,是否在未來會有根本的改變?事實上,從open source到crowdsourcing,在資訊的世界,做事和學習的方法不斷在推陳出新,Google和facebook的商業模式也給了大家很大的啟示。只是這些新東西似乎還沒有辦法撼動主流的個人職業生涯規劃和公司運作模式。
近來Kaggle的崛起,引來一番與以上相關的討論。這篇How Kaggle Is Changing How We Work (
http://www.theatlantic.com/technology/archive/2013/04/how-kaggle-is-changing-how-we-work/274908/ ),提到一些有趣的觀點:
- 多數聰明人是否得遵循Joy's Law,只能受僱於人、幫人家作事呢?
- Kaggle這個把許多資料和問題公開放在網路上,以競賽懸賞的方式,讓許多「資料科學」專家來提出解答,跟之前的crowdsourcing有和不同?
- 許多大公司都提出了問題,成立了競賽,懸賞的金額從US$3,000到$250,000,甚至還有一個很特別的$3 million prize...
- 有超過85,000位登錄在Kaggle的data scientists,當然數字有可能灌水,不過這些專家來自四面八方,不受國界的限制,不必實際加入公司,每個人都有機會!
- 贏得任何一項競賽,你就得到肯定:你的積分和排名就會上升,大家可以此來判斷你的能力。
- Kaggle也做人力仲介生意,你想僱data scientists到公司裡面工作,可以到這裡來找。
- 跟crowdsourcing最大的不同點:Kaggle是營利模式,是競賽模式,影響專家的工作市場機制;crowdsourcing往往是公益模式,是合作模式,是業餘者的舞台。
- 是否常春藤名校的學位和IBM工作的經歷比不上我的Kaggle比序?"It's flipping the resume, where your work is measurable and metricized and your value in the marketplace is more valuable than the place you work."
- 是否只有在資料科學這個新興領域才有Kaggle這樣的特例?還是說在其他領域也有可能實現Kaggle這樣的商業模式?文中列舉了 99Designs、HealthTap、ClubMD。
我想,資訊平台和網路科技的成熟,是這類商業模式成功的基本要素,而一個好的評估制度(計分比序方式),則是實現公平和有效競爭以提高生產力的關鍵。球場蓋好了,自然會吸引球員和贊助廠商的出現。
台灣有機會做這個嗎?Why not?
近來Kaggle的崛起,引來一番與以上相關的討論。這篇How Kaggle Is Changing How We Work (
http://www.theatlantic.com/technology/archive/2013/04/how-kaggle-is-changing-how-we-work/274908/ ),提到一些有趣的觀點:
- 多數聰明人是否得遵循Joy's Law,只能受僱於人、幫人家作事呢?
- Kaggle這個把許多資料和問題公開放在網路上,以競賽懸賞的方式,讓許多「資料科學」專家來提出解答,跟之前的crowdsourcing有和不同?
- 許多大公司都提出了問題,成立了競賽,懸賞的金額從US$3,000到$250,000,甚至還有一個很特別的$3 million prize...
- 有超過85,000位登錄在Kaggle的data scientists,當然數字有可能灌水,不過這些專家來自四面八方,不受國界的限制,不必實際加入公司,每個人都有機會!
- 贏得任何一項競賽,你就得到肯定:你的積分和排名就會上升,大家可以此來判斷你的能力。
- Kaggle也做人力仲介生意,你想僱data scientists到公司裡面工作,可以到這裡來找。
- 跟crowdsourcing最大的不同點:Kaggle是營利模式,是競賽模式,影響專家的工作市場機制;crowdsourcing往往是公益模式,是合作模式,是業餘者的舞台。
- 是否常春藤名校的學位和IBM工作的經歷比不上我的Kaggle比序?"It's flipping the resume, where your work is measurable and metricized and your value in the marketplace is more valuable than the place you work."
- 是否只有在資料科學這個新興領域才有Kaggle這樣的特例?還是說在其他領域也有可能實現Kaggle這樣的商業模式?文中列舉了 99Designs、HealthTap、ClubMD。
我想,資訊平台和網路科技的成熟,是這類商業模式成功的基本要素,而一個好的評估制度(計分比序方式),則是實現公平和有效競爭以提高生產力的關鍵。球場蓋好了,自然會吸引球員和贊助廠商的出現。
台灣有機會做這個嗎?Why not?
2013年1月11日 星期五
談海量資料和資訊系統
繼雲端運算之後,「海量資料分析」(Big Data Analytics)成為學術界和科技界最新的「潮字」(buzz word)。海量資料分析為什麼這麼受矚目呢?簡單地說,是因為人類現在有「能力」蒐集、傳送、儲存、處理多得不得了的資料,如果能夠好好利用這個能力,可能會產生前所未有的知識與應用,讓人腦和電腦變得更聰明。
Google藉由搜尋引擎、Gmail、Android還有各式各樣的雲端服務,收集到許多的個人公開與非公開資料。Google除了可以把搜尋做好之外,還可以利用這些龐大的資料和他龐大的資訊系統做很多事情。Google不是第一個做搜尋引擎的,可是他能成功的重要原因之一,是因為他能建夠出便宜好用的資訊系統。
Facebook更是後來居上,社群網站這個從BBS時代就有的舊東西,被Facebook經營成功的重要原因之一,因為在最佳的時刻搭上了雲端運算的列車。
IBM原本在雲端時代可能成為瀕臨絕種的恐龍,發現雲端運算技術不只是可以用在大眾的雲端服務(Public Cloud),企業和政府這種擁有非常多私密資料的機關,也需要處理與日俱增的資料。甚至,在非常深入地整理資料和運用資料之後,可以做出前無古人的應用。例如IBM引以為傲的Watson系統,比人類回答問題更快更精準,幕後的技術,可以稱之為深層的海量資料分析(Deep Big Data Analytics)。
聽起來,海量資料分析應該比雲端更容易懂,不像雲端那麼炫和玄。比起這幾年許多人東比西指地談「雲端服務」,要來得收斂一些,有比較具體一些的定義,但是入門的難度也大幅提高。
話說,為什麼現在大家會來談海量資料分析?難道以前沒有嗎?
其實,在每個時代,總會有一些人致力於利用當時擁有的運算技術去解決一些大問題,這些領域通常稱之為「高效能運算」( High-Performance Computing, HPC)。有錢的地方,例如歐美的國家實驗室,台灣的氣象局,大陸的中科院,會購買超級電腦(Supercomputer)來解決這些問題,或者當成炫耀國力的展示。這些超級電腦,擁有很高的運算能力,處理和分析的是當時的海量資料,不過做的多半是科學和工程的計算(包含國防用途)。
這些關心高效能運算的人,畢竟是少數。靠著賣超級電腦,很難賺錢過日子,所以,沒有一家只賣超級電腦而不倒的公司。IBM這家老店,如果不轉型,恐怕也很難維持榮景。幸好,IBM畢竟是人才濟濟,把他們用於高效能運算研發的人才、用於幫大企業的營運資訊系統的人才,集結起來從事商用版的高效能運算,頗為成功,也就是我們現在看到Watson系統和IBM喊出的智慧運算(Smart Computing)。
整體來看,資訊系統技術的突破創新(disruptive Innovation),的確會改變雲端的基礎架構和應用,例如高速的智慧手機、便宜的伺服器和雲端空間、高速的LTE網路等等。不過,所謂的改變,根本上,也不過就是某個應用的資料在「運算資源(Computer)」「儲存空間(Storage)」「網路(Network)」上的流動所需的時間比例變了。
但是,比例變了,這個應用的最佳處理方式就跟著變了,其實跟生意人打的算盤,和經理人規劃公司營運的方式,是一樣的道理。除了靠算計之外,生意人靠眼光,經理人靠經驗,電腦工程師靠工具。某個東西變了,我們就有機會把同一種應用以更好的方式建構出來,或者是把原來沒辦法做完的應用及時完成。所以,我們在過去幾十年,其實不斷在重複一些東西。雲端裡,有很多幾十年前的東西,又復活跑出來。
用「電腦來設計電腦」,是電腦之所以進步神速的重要原因。不斷進步的電腦硬體和軟體的設計工具和日積月累的智慧財產(軟體庫和硬體庫),到底會進化到何時方休?這是個有趣的問題。雖然原理沒變,但複雜度隨著資料的海量化而增大。人類設計電腦系統和應用的能力,受到「設計工具」和「對應用主題的了解」的限制,就算是再聰明的人,也很難突破這些限制。
因此我想,在海量資料的時代,要做好軟體和系統設計來進行海量資料分析,我們需要強化兩種基礎:
- 更強大的設計工具:能夠幫助開發者快速建構出優質硬體和軟體系統的工具(Tools)和方法(Methodologies)。
有學生說,光是單看硬體,或是單看軟體,就已經很複雜了,我們要如何又看硬體又看軟體呢?關鍵就在工具和方法。
有趣的是,傳統資訊系統是一般來說是一層一層疊上去的(階層式,hierarchical),在每個層次都必須提供有效的工具和方法。然而,面對海量資料,傳統階層式的作法,把開發工作分為:應用開發、中介軟體、系統軟體、系統架構、硬體設計,可能沒有辦法有效率地解決問題,但是要找到能夠通曉多層次的人才,又是非常難的事情,所以如果能夠研究出跨層次的工具和方法,就可已是很好的貢獻。
因此,我希望我的學生能夠跨層次廣泛涉獵(學得快),精通每個層次(學得好),而且能夠貫串不同層次(學得巧),創新研究工具和方法(學得妙)。 - 對應用領域更了解:能夠更透徹理解各個重要應用領域的特性。
有人看到Google搞海量資料,以為海量資料就是搜尋和存放資料;有人看到Facebook搞海量資料,以為海量資料就是社群網路行為的分析;如果你去看IBM搞海量資料,定義和做法又是有很大的不同。不管是哪一個,對於重要領域理解透徹的專家,決定了這些海量資料能夠帶我們到哪裡去。
然而,這些專家,來自於四面八方,不再是傳統資訊學門所能延伸觸及的。以前,資訊工程師花一些時間去學習特定的專業知識,很可能就可以寫出一套應用;海量資料的應用,必須有領域專家(Domain Experts)的介入,甚至主導,才不會產生一些膚淺的應用。
幾十年來,高效能計算應用的開發就是這樣性質的工作,那些在超級電腦中心工作的領域專家,比資訊專家還多,所以跨領域的團隊合作是極其重要的。在IBM的例子裡,我們可以看到領域專家的重要性。想搞海量資料的資訊人,要學習與領域專家合作,溝通技巧很重要。
然而,我們目前的工具、方法和領域專家還遠遠不足以讓我們有效且快速地開發海量資料分析應用。我看到一篇UC Berkeley的短文,標題寫著: We don't know enough to make a big data benchmark suite,只有兩頁,不妨看看,可以看看我們還缺些什麼東西。總之,可以做的研究多得很!
2012年12月3日 星期一
略談科技創新與發展
綜合這幾天所見所聞的心得。
朱敬一:科技創新 3箭齊發
http://m.udn.com/xhtml/HistoryArt?articleid=3065947
國科會主委朱敬一昨(28)日表示,台灣科技業尋求創新要符合「市場第1名、破壞性創新、企業規模大」3個特性...
什麼是「破壞性創新」(disruptive innovation)?這是當今普遍在商業和科技評論上用來形容科技界重要技術進步的名詞。
參考 http://en.wikipedia.org/wiki/Disruptive_innovation:
"The term is used in business and technology literature to describe innovations that improve a product or service in ways that the market does not expect, typically first by designing for a different set of consumers in the new market and later by lowering prices in the existing market".
這是個很有趣的定義,但問題來了,既然disruptive innovation是market does not expect,那光是靠業界本身市場主流派人士是根本看不到的。所以朱主委用心良苦,但是如果業界和政府做科技研發的本位心態不改,談了半天還是白搭。
要有disruptive innovation的話,要靠一些獨具慧眼、有熱情、有能力、有毅力的怪才,長期耕耘他們有興趣但是主流派覺得賺不了錢的領域,絕對不是某個組織說要做馬上就能夠有感覺的。台灣在世界disruptive innovation的舞台上,一向扮演的是後來者,"later by lowering prices in the existing market",角色也很重要,但目前逐漸被中國大陸所取代。
台灣要做破壞性創新,要先去除短視近利的心態,否則一大堆人都跑來誆你跟你騙錢。我們實驗室有一些有可能產生disruptive innovation的研究,但廠商聽到時只關心是否馬上可以用來賺錢,國科會只關心發了多少論文、技轉金額多少,就連孔祥重院士覺得做得還不錯的研究計畫都不願意長期支持,台灣的大環境還沒有準備好,朱敬一主委要推動改革的地方還很多呢。
軟體產業很適合搞破壞性創新和持續性創新,但是國人短視近利的心態,到目前為止連扎根都扎不穩,根本還談不上有什麼真正重要的創新。
張善政說台灣不會做複雜軟體,我很同意。我看過國外怎麼研發複雜軟體和系統,我知道國內為什麼做不出來。國內幾個單位搞雲端,當做人才培育的搖籃還可以,在短期間之內很難真正搞出什麼名堂;慣於硬體代工的業界,整體在軟體方面既不重視也沒有遠見,不然「資訊系」早就應該跟隨國外的趨勢水漲船高。以在下之見,在國內至少應該與電機系平起平坐,但一般長輩在沒有看到軟體產業大賺其錢之前,大部分還是不敢鼓勵學子把資訊擺在電機之前。
要想做好複雜軟體,最好先能夠搞懂複雜的系統;要搞懂複雜的系統之前,最好先搞清楚現有的複雜系統是如何建立的。實際系統的運作,即便是單機,都遠比作業系統所涵蓋的基礎軟體系統架構和計算機結構介紹的基礎硬體系統架構來得複雜許多,即便修過高等作業系統和高等計算機結構,還是差很遠,沒有多年的實務經驗是很難搞清楚的。所以光靠學校努力是不夠的,要有像樣的業界,還要有緊密的產學互動,還要有足夠的時間,才會產生會做複雜軟體的高階人才。
台灣究竟能不能做複雜軟體和系統呢?我認為可以,但是要全力以赴,不然半調子的東西是沒有人要用的。如果政府和業界到現在還搞不清楚要怎麼有效推動軟體產業,產學界在推動的時候還是沒有搞清楚努力的方向,還是以分享資源的方式在玩,我覺得前途堪慮,不如把錢省下來,免得浪費民脂民膏。最近駁回了幾個業界申請政府研究經費補助案,就有這樣的感覺。
有長官提到資訊系本科生畢業竟然不會寫程式,我想應該是特例,我覺得影響不大。我比較擔心的是「得少為足」,有不少本科生以為自己夠厲害,其實還差很遠。這幾天跟幾位長官出國參加MICRO-45,看到國外的狀況,聊到國內學生的學習態度。我一向不認為社會苛責學生的態度是正確的,因為社會沒有給年輕人良好的環境和示範,但是學生或許該有自求多福的覺悟。我年紀也有一把了,經常都還在學習,惟恐不懂最近的新技術,深怕教給學生的是舊的技術;反倒是一堆同學讀書做研究非常被動,不然就只在乎成績、名次、學位,似乎不知道這年頭學位值不了多少錢,做人態度和做事能力比較重要。
參加MICRO-45感想:國外現在有很多優秀的研究團隊,包括學生和工程師,願意花時間研發模擬器和效能分析工具,例如MARSSx86, GPGPUsim, GEM5, QEMU, Multi2sim,... 有些模擬器和效能分析工具越做越複雜,應該歸類為複雜軟體系統研究,把這些東西搞清楚、會使用來做研究、甚至能改進這些東西,就是不錯的訓練。這是我們實驗室這五年一直在做的東西,也是我們在教學和研究能夠帶給同學一些幫助的地方,但是同學本身要願意學,而且肯不厭其煩努力學,不然老師講破嘴也沒有用。
2012年9月10日 星期一
2012 雲端計算專題構想(2) - Big Data Analytics with the Cloud
Instructor
Shih-Hao Hung
Contact
hungsh@csie.ntu.edu.tw
Project title
Big Data Analytics with the Cloud
Project description
Big data analysis is a hot topic. To make use of big data, we are looking the following three important layers in the system:
(1) Application domain: Smart ideas to produce, analyze, and use big data for specific applications, and then implement the ideas with the right cloud infrastructure.This is best done by someone with the knowledge of the application domain.
(2) Cloud Middleware: This is for someone who would like to look deeper into the cloud. Cloud middleware is very critical to big data analytics. People keep develop middleware to make the analysis of big data easier and more efficient. What are the tricks behind those middleware?
(3) Cloud Architecture: How would you store big data? How would you connect the machines? These are the questions you would ask if you are setting up your own cloud for big data applications.
In our lab, we are working with the industry for all three layers. We think that the best way for you to learn about big data analytics is to do a team project and work with others.
Project deliverable
(1) New system enhancing techniques with implementation, or
(2) New collaborative Android applications based our framework.
Prerequisites
The prospective participants who are interested in Part (1) of this project should be familiar with the basic concept of cloud computing, parallel programming, and distributed computing. Those who are interested in Part (2) should be familiar with UNIX system programming, operating system, and algorithm design and analysis. Those who are interested in Part (3) should be familiar with operating system, and computer architecture.
Number of students required.
1~4 students
Meeting schedule
The students are expected to meet with all project members at least once every two weeks.
Progress report
The students are expected to file progress report using a Google document.
Grading criteria
Survey of existing work 25%
Innovation 25%
Implementation 25%
Performance Evaluation 25%
2012 雲端計算專題構想(1) - Virtualization of Smartphone Applications in the Cloud
Instructor
Shih-Hao Hung
Contact
hungsh@csie.ntu.edu.tw
Project title
Virtualization of Smartphone Applications in the Cloud
Project description
Smartphone applications are increasingly popular, but are limited by the computing power and storage capacity in the smartphone devices. To make smartphone applications more useful and powerful, one may consider running smartphone applications in the cloud, or offloading portions of application workload to the cloud. However, it is important to make the cloud “transparent” to the user, i.e. the user does not need to be aware of the cloud, or, at least, the user does not have to pay attention to the details of this mobile-cloud collaboration.
In our lab, we have built a prototype to virtualize smartphone applications to the cloud. We would invite students to join this research and development work. We are interested in two directions, and you are welcome to pick one or both:
(1) Further enhance the infrastructure of this virtualization framework. This is related to systems research, and you will learn about virtualization technologies, system architecture, and perofomance engineering.
(2) Develop collaborative smartphone applications based on our prototype. You will think about the so-called mobile-cloud computing applications of the future. You are no longer limited by mobile or cloud. You can use your imagination to create applications that are really innovative.
Project deliverable
(1) New system enhancing techniques with implementation, or
(2) New collaborative Android applications based our framework.
Prerequisites
The prospective participants who are interested in Part (1) of this project should be familiar with UNIX system programming, operating system, and algorithm design and analysis. Those who are interested in Part (2) should be familiar with Android programming and mobile computing.
Number of students required.
1~4 students
Meeting schedule
The students are expected to meet with all project members at least once every two weeks.
Progress report
The students are expected to file progress report using a Google document.
Grading criteria
Survey of existing work 25%
Innovation 25%
Implementation 25%
Performance Evaluation 25%
2012年4月11日 星期三
想上雲端?先換腦袋!
這段關於「想上雲端?先換腦袋!」談話,有點意思,提供給大家參考,順便借用標題來談一下個人的看法。
舊思維從何而來呢? 在台灣的業界和學界,許多人整天就是【人云亦云】,想辦法速成,山寨式的思維比比皆是。台灣在鎖國的這些年,作風似乎越來越保守,多數人不敢衝第一。
其實張政委所講的技術內容,已經是老生常談,但我欣賞他說「政府該做的,就是提供練兵的機會,開放各種可能讓軟體人才實作」。這點說穿了,就是如何妥善運用國科會、教育部、經濟部的經費,到頭來有很多政治因素在內:學閥說他做的研究跟雲端有關,你給不給錢?每家公司寫個有雲端字眼的研發案跟你申請補助,你找誰來審查?(多半還是學閥)能夠培養實作軟體人才的師資和環境在哪裡,你知不知道?這些都是大問題,也是張政委的挑戰。
我更欣賞翟本喬(我高中時代就一起玩電腦很熟的學長)說:「系統軟體的撰寫,至少需要五到十年的訓練,台灣現在的問題是沒有人練,就好像大家都想練獨孤九劍,沒人要練九陽真經一樣。最重要的還是心態要改變,離開硬體思維。」這個別出心裁的比喻,把我個人這幾年私底下在部落格和fb上談的一些東西,簡單幾句就說完了。
這兩天我和IBM CELL處理機的設計者Peter Hofstee面對面談了不少如何打通軟體到硬體之間的「任督二脈」的研究,他覺得系統軟體是未來電腦系統的靈魂,但絕非目前傳統的作業系統格局,需要很多的研發,而台灣在上應該可以大有可為,建議我的學生要勇於多方嘗試。在贊同之餘,也不免感嘆:
- 教育體系的各項評鑑制度,有真正鼓勵老師和學生練九陽真經、從挑戰未知中學習嗎?(排名和論文數比較重要。)
- 為什麼貌似聰明的學生,往往還是選擇招式酷炫又可速成的獨孤九劍?(令狐沖比較符合時下的品味?)
- 至於個人長期教導並提倡九陽真經的經驗,前些年遇到申請國科會計畫和接受學校評鑑時屢屢被批評缺乏期刊論文的窘境,逼到不得不勤練九陰真經和獨孤九劍以期自保。
更大的問題是,如果你的腦袋換了,而周遭人等的腦袋和制度都沒換,你怎麼辦?你想看見真正的事實,還是順著流走?如電影The Matrix的經典對話般,我必須提醒你,吃下紅色藥丸,看到事實之後,你或許會有更大的煩惱在前面等著你...
換腦袋,其實是考驗一個人的智慧和勇氣的決定。
想上雲端?先換腦袋!
By 鄭欽雄 Blake Cheng | 10 四月 2012
首場TEDxTaipeiChange今(10日)在華山文創園區開講,針對台灣雲端產業的未來、現今產業面臨的困境等問題,主辦單位邀請甫上任的行政院政務委員張善政與台達電子雲端技術中心資深處長翟本喬進行對談。在短短三十分鐘的對談過程中,兩位都曾經在google任職的講者,各自對台灣雲端產業的現狀與發展,提出獨到見解。
首先,翟本喬提到,現在每個人都在談雲端,尤其是中小企業更是處心積慮想往雲端發展;但是,面對雲端,我們準備好了嗎?翟本喬認為,現在大多數的企業,對於雲端的思維,其實和雲端本身的「特徵」背道而馳。雲端服務,或者我們可以稱為「雲端系統」,應該要是能夠個人化、隨時存取、共享資源、擁有彈性架構,以及依照使用量付費。然而企業在趕搭雲端列車、甚至高呼把企業放到雲端的同時,卻依然透過舊思維,進行企業的雲端化。
在企業雲端化的過程中,大家最先應該注意到的,不是因應雲端而需要增購的硬體設備,而是軟體、服務的建置與滿足需求。過去我們為了保護資料的儲存、為了 讓伺服器穩定,花了許多時間精力與成本在維護、換購和建置上。雲端其實沒有這麼複雜,藉由依使用量付費的概念,我們不再需要買「更大」的伺服器,而是改買 「更多」的伺服器。今天容量不夠了,我們就多用一個,不需要的時候就少用一個。擺脫掉硬體的思維,從軟體、服務的建置出發,才能真正把企業搬上雲端。
最後,翟本喬也說,不管伺服器、機上盒、硬碟,每個過去我們考慮的重點,都是一個一個的BOX,台灣不論是企業還是產業,想要上雲端,得先「Think outside of box」,脫離過去的框架,我們才能看到真正的雲在哪裡。
接著,張善政也分享了台灣雲端產業的迷思與挑戰。一開始他就提出最常被質疑的問題:「雲端安全嗎?」尤其是對各種商業機密保密到家的企業來說,把資料放到雲端,透過網路存取這些重要的公司資料,難道不會有安全顧慮嗎?張善政說,這個思維就跟幾十年前,老先生老太太把放在床底下的貴重物品,拿去放在銀行保險箱一樣。如果今天雲端不夠安全,那相關業者就沒有辦法吃這行飯,因為這就跟銀行保險箱一樣,不能保障客戶財產的安全,就不會有生意可以做。
另 一方面,甫動工沒多久的Google 彰濱資料中心,也讓人聯想到雲端產業的環保問題。張善政解釋到,他在宏碁任職時成立的資料中心,每年的電費高達四億元,地下儲水達到六千噸。很多人都會覺得,這樣很不環保。但是,就像公車和私有汽車的差別,資料中心或雲端服務產生的碳排放與能源問題,都應該分攤給使用該服務的個人、企業及國家;經過這層換算,雲端絕對是更環保的做法。張善政同時也認為,面對雲端時代,我們該思考的不再是生產與販售硬體的「產值」,而是軟體與服務所產生的「價值」。張善政以台灣健保使用的連線軟體為例:「台灣健保使用的程式非常有『價值』,因為它讓全台灣人都能很方便地就醫;但是這套軟體只適合台灣使用,無法賣到別的國家,這代表它沒有『產值』。」
對談最後,翟本喬和張善政也回應觀眾的提問,談到台灣雲端軟體人才應具備的條件。翟本喬說:「台灣現在欠缺的是基礎訓練紮實、內力雄厚的人才。例如系統軟體的撰寫,至少需要五到十年的訓練,台灣現在的問題是沒有人練,就好像大家都想練獨孤九劍,沒人要練九陽真經一樣。最重要的還是心態要改變,離開硬體思維。」
而關於政府如何培育雲端軟體人才這部份,張善政也回答:「政府該做的,就是提供練兵的機會,開放各種可能讓軟體人才實作,做不好也絕不手軟,從頭再來過;不斷不斷地練,才能培育出好人才。」
不論是來自產業端或政府端,今日的對談都呈現了全面且一致的觀點:想上雲端不是只有說說而已,不是用了Gmail和Google Docs就是雲端;如果我們不先改變自己的思維,不先換掉自己的腦袋,繼續用傳統產值評估雲端的價值,我們就只能繼續站在這裡,看雲流過。
2012年4月9日 星期一
關於我們所研究的虛擬手機和個人應用雲端
這篇工商時報的報導(2012.4.08)把我們過去兩年所研究的虛擬手機(Virtual Phone)和個人應用雲端(Personal Application Cloud)的目標和重點,在短短的篇幅裡,用既淺顯易懂的文字呈現出來。如果您想用三分鐘概略了解我們這些計畫,請讀這篇報導 (文章很短,為了方便閱讀,我就剪貼在這裡了,工商時報如果有意見,請告知我)。如果您想深入了解我們實驗室的研究內容,請參考下列論文 (我們還有很多研究要做,有興趣者,歡迎參加我們實驗室或是與我們洽談合作):
個人雲 成數位生活新核心
工商時報【記者何英煒╱台北報導】
- Shih-Hao Hung, Chi-Sheng Shih, Jeng-Peng Shieh, Chen-Pang Lee, and Yi-Hsiang Huang. Executing Mobile Applications on the Cloud: Framework and Issues. In Computers & Mathematics with Applications, Volume 63, Issue 2, January 2012, pp. 573–587. (SCI)(EI)
- Shih-Hao Hung, Jeng-Peng Shieh, Chen-Pang Lee. Virtualizing Smartphone Applications to the Cloud, in Computing and Informatic, Vol.30, 2011, 1083-1097. (SCI)
- Yu-Shuo Chang and Shih-Hao Hung. Developing Collaborative Applications with Mobile Cloud - A Case Study of Speech Recognition, in Journal of Internet Services and Information Security (JISIS), Vol. 1, No. 1, June 2011, pp. 18-36.
- Shih-Hao Hung, Tei-Wei Kuo, Chi-Sheng Shih, Jeng-Peng Shieh, Chen-Pang Lee, Che-Wei Chang, and Jie-Wen Wei, A Cloud-Based Virtualized Execution Environment for Mobile Applications, in ZTE Communications, Vol.9 No.1, March 2011, pp. 15-21.
- Shih-Hao Hung, Chi-Sheng Shih, Jeng-Peng Shieh, Chen-Pang Lee, and Yi-Hsiang Huang. An Online Migration Environment for Executing Mobile Applications on the Cloud, in Proc. the Fifth International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS) , pp.20-27, Seoul, Korea, June 30-July 2, 2011. (EI)
工商時報【記者何英煒╱台北報導】
國際研究暨顧問機構Gartner指出,2014年時「個人雲」將取代個人電腦,成為使用者數位生活的核心。
Gartner表示,這也意味著PC作為企業唯一使用裝置的時代即將結束,因為到了2014年個人雲(personal cloud)將取代PC成為使用者數位生活的核心。
Gartner分析師認為,個人雲將開啟一個全新時代。Gartner研究副總裁Steve Kleynhans表示,用戶端運算主要趨勢已經從以PC為重心、轉移到智慧手機、平板和其它消費裝置等裝置。新興的雲端服務將成為上網裝置的黏著劑,讓使用者在日常生活中選擇從各處透過不同裝置連結上網。」
對企業來說,也必須重新思考如何提供應用程式和服務給使用者。
Gartner預期未來IT將朝五大趨勢發展,包括裝置的功能愈強價格愈便宜,其次是虛擬化(Virtualization),消費者可擺脫單一設備、作業系統或處理器架構的特殊性。第三,App化,一個應用程式可以讓使用者以多種方式及多種環境下使用。趨勢四,持續的自助服務雲,使用者可以自己決定應用程式、服務和內容,並在線上儲存虛擬工作區或個人化數位內容。趨勢五,移動轉移(The Mobility Shift),與雲端相結合的行動裝置能完成絕大多數的運算任務。
Kleynhans表示,因上述五大趨勢,加上新技術的演進,預期個人雲時代的來臨。在這個新時代裡,特定的裝置對企業來說變得不那麼重要,使用者將使用多種裝置,然而PC仍舊是其中的一個選擇,但沒有任何一個裝置會成為中心樞紐。相反地,個人雲將扮演中心的角色。
2012年2月21日 星期二
三年過去依然連個雲都生不出來?
敢說三年過去依然連個雲都生不出來是項愧對國家民族的事,張政委來自業界,才敢實話實說的,請參考推上來的報導。換做是學術界出身的政委,恐怕是官官相護,只會說一些官話。
寫成果報告時,大長官要看到「世界第一」「世界首創」等字眼,否則不算重大貢獻。結果搞出一堆號稱世界頂尖,卻沒有人敢用的東西。其實工研院資策會搞雲端搞得很辛苦,因為沒有能做事的人才,比較厲害的人被聯發科搶走,工硏院憑什麼搶人?政府首長光在那邊講講,花錢給工研資策做人才訓練還算有點價值,還有很多錢花在名稱上有「雲」的計劃上,那才是「雲深不知處」。
國內有多少人懂雲端?今年資訊工程研究所入學考試中有一題名詞解釋,什麼是cloud computing? 到現在改了上百份考卷,一半以上的學生沒有作答,有作答的大部分寫的都是把工作透過網路送到遠端去做的這種幾十年前就有的client-server運作,或者是把檔案放在遠端大家可以分享的這種很虛的答案,勉強給點分數,真正寫得有點深度的大概不到十分之一。
所以,三年過去了,國內許多學資訊的大學生都還搞不清楚雲端運算是什麼,或者只懂一點點皮毛,那我們的教育又出了什麼問題?是主管教育和人才培養的官員愧對國家民族?還是學校老師不教,課本和考古題沒有,學生就不學呢?如果必須走到「考試領導教學」這一步,那也只好如此了。
寫成果報告時,大長官要看到「世界第一」「世界首創」等字眼,否則不算重大貢獻。結果搞出一堆號稱世界頂尖,卻沒有人敢用的東西。其實工研院資策會搞雲端搞得很辛苦,因為沒有能做事的人才,比較厲害的人被聯發科搶走,工硏院憑什麼搶人?政府首長光在那邊講講,花錢給工研資策做人才訓練還算有點價值,還有很多錢花在名稱上有「雲」的計劃上,那才是「雲深不知處」。
國內有多少人懂雲端?今年資訊工程研究所入學考試中有一題名詞解釋,什麼是cloud computing? 到現在改了上百份考卷,一半以上的學生沒有作答,有作答的大部分寫的都是把工作透過網路送到遠端去做的這種幾十年前就有的client-server運作,或者是把檔案放在遠端大家可以分享的這種很虛的答案,勉強給點分數,真正寫得有點深度的大概不到十分之一。
所以,三年過去了,國內許多學資訊的大學生都還搞不清楚雲端運算是什麼,或者只懂一點點皮毛,那我們的教育又出了什麼問題?是主管教育和人才培養的官員愧對國家民族?還是學校老師不教,課本和考古題沒有,學生就不學呢?如果必須走到「考試領導教學」這一步,那也只好如此了。
行政院科技政委張善政:台灣ICT產業 雲當火車頭
問:你認為雲端產業時代,台灣的利基在哪?
答:工研院,資策會前幾年拿到政府科專經費要做雲端作業系統(OS)軟體,如果做得起來,這會是個利基。我們期待這是玩真的不是玩假的,資策會和工研院的責任很大,不能寫個報告、練兵練完就算了,如果不能真槍實彈的上場,如果不能推廣到海外、如果不能獲得業界背書,就不算成功。萬一失敗了,那工研院及資策會就太愧對國家民族了。
問:資策會已經有雲端作業系統產品出爐,你打幾分?
答:對於資策會和工研院是否能夠成功開發出雲端作業系統,我不敢說謹慎樂觀,只能說謹慎,畢竟這兩個單位已經很久沒有做出什麼好東西來了。我目前不敢打分數,我覺得要由業界來背書。至少要做到業者願意用,或使用國外產品者願意將產品移植到這,敢把應用在這個作業系統上寫,才算成功。但我相信開發初期功能尚不全,需要時間發展。
問:過去政府曾想邀業者共同籌組雲端公司,提供整廠輸出解決方案。您的想法呢?
答:我不這麼認為。如果產業界要做到垂直分工,就不能夠將所有的東西放在一個公司,由一個公司全包。再能幹的國家也不可能全部統包。
問:可否談一談政府所推動的幾朵雲?
答:我會先從目前政府已推動的幾朵雲去了解。如果立意很好,只是預算不夠,可以補強,進一步做出實在的東西,如果這個雲太譁眾取寵,就站一邊,但也要找新題目進來。我希望多方嘗試找應用,且誠心誠意的推動。
2010年10月24日 星期日
測試WiMAX 4G網路
很多人大概不知道在台灣已經有4G網路可以用了,3G不是才出沒多久嗎?
自從一年多前有了iPhone之後,一直使用中華電信的3G服務,最近幾個月不知為何,就是覺得中華電信的3G服務很不穩定。室外還好,室內就馬馬虎虎了。上個月搬家之後,這個感覺特別強烈。中華電信的3G服務,不只斷斷續續的,頻寬相當低,但是一直沒空解決。最近學生報了幾篇3G網路的效能評估的研究論文,想想也可以來看看這些切身的問題。
我的猜測,是大量的iPhone和Android用戶不斷湧入,網路塞車所致。
固網業者,如ADSL或是Cable Modem,以傳輸速率定價,月租費500元起跳,必須租用電話或是有線電視,還必須付一筆設定費。若是要8Mbps下載/1Mbps上傳的網路,月租費大約800元。
行動3G服務,如中華電信,或者其他電信業者,吃到飽的月租費大部分在800元左右,號稱下載的頻寬可達3.5Mbps~7.2Mbps,而特色是和電話網路共用,涵蓋率廣。
國內在4G行動網路上,目前以WiMax為主,有多家區域性業者。台北市地區有好幾家,但是涵蓋範圍僅限在台北市,所以無法帶到外縣市去。最近有北中南業者開始串連,在主要城市提供服務。月租費用也在800元左右。
有趣的是,上述網路服務,月租費接近。對我而言,主要活動圈在台北市,尤其是在家中,希望有穩定的網路,但是有時也希望能在外面使用,或者是搬家後還能用。原本是寄望3G能一網打盡,但是所得到的3G經驗不好,只好另尋出路。
評估過Cable Modem + Digital Cable,是還不錯的路,但是Cable公司的服務是個關鍵。之前的地點,High-Definition的電視電影相當優,例如Discovery HD, History HD, HBO HD, Asian Sports Network HD等等,還奉送數位錄影機,價錢合理。現住的地區,相去甚遠,不想花五百多元租一堆爛節目的類比電視,所以就不考慮了。
只剩下WiMax可以考慮,搜尋之後發現,威邁思(VMAX)這家業者有七天免費試用的方案,就去登記了。排隊等了三週後,終於在昨天(2010.10.22)拿到網卡,開始試用。
免費試用七天的WiMax網卡
試用結果出乎意料之外的好
在住家測試WiMax結果,下載:3.22 Mbps,上傳:2.01 Mbps
測試時段是週六中午,大概沒多少人用網路,所以效果很好。連3G網路的下載速度,都比平常好多了。
3G測試結果,下載:2.51 Mbps,上傳:0.35 Mbps
可是,注意到3G上傳的速度,比起WiMax,實在太慢了。只要有用手機傳照片上Facebook的朋友都知道,有時必須忍受幾十秒鐘一張照片的痛苦。
而且,我記得昨天(週五)晚上八點,3G網路的下載速度只有300~500Kbps。越多人同時使用,速度越慢,除非業者增建基地台和增加Internet頻寬。
晚上到士林新光醫院附近的老家作客,測了一下,WiMax速度還是不錯,但是3G就差多了(下:756Kbps 上:355Kbps)。所以,不管是台北北區還是南區(公館),WiMax都好很多。
使用的是Hinet的測試網站(http://speed.hinet.net/speedtest/do.htm),別的也用過,結果差不多。在Hinet上看到以下的速率測試參考值,不禁搖頭,我們的消費者的權益何在?
Hinet的速率測試參考值(http://speed.hinet.net/index_faq03.htm)
不只是頻寬(bandwidth),等待時間(latency)也很重要,我發現中華電信3G的等待時間相當長,WiMax就好多了,有空再來評量一番。
WiMax現在使用者不多,頻寬相對穩定,現在又有月租費456元的方案,搭配行動分享器,這些讓我想要轉台了,甚至想買台HTC EVO 4G手機,不過這台手機業者沒有公開的支援。
住台北市,家裡用ADSL的朋友,不妨去試用WiMax看看。這不是廣告,我只是一介小市民,希望購買值得的服務。
2010年8月2日 星期一
專題研究導向的課程規劃(2010.09~2011.06)
有鑑於研究生對於做專題的能力不足,欠缺解決問題的能力,又沒有太多時間和機會能接受比較正式的訓練,今年我打算換一個方式來教授研究所層級的課程,在課程中著重專題研究和個別指導,幫學生打下獨立研究、資料搜尋、實際製作、論文寫作的基礎能力。
要參加這些課程的學生,必須有以下的認知:
Linux Kernel, Systems, and Applications
內容大綱:
Parallel and Distributed Programming for Cloud Computing
要參加這些課程的學生,必須有以下的認知:
- 對於做專題有濃厚的興趣
- 有足夠時間收集資料和實作專題
- 能夠每週參加課程討論
上課進行方式,原則上:
- 1/3 時間是講解課程相關知識(lecture/textbook)
- 1/3 時間討論research papers
- 1/3 時間為student presentations and discussions
Linux Kernel, Systems, and Applications
內容大綱:
- Linux systems
- Android systems
- Cloud computing systems
- Virtualization technologies
- Virtual machine technologies
- Virtual platform technologies
- Advanced Linux Programming (2 weeks)
- Basic parallel programming skills
- Pthread & OpenMP Programming
- Message-passing interface
- Performance analysis
- Linux Kernel Development
- Process management & Interrupt handling (2 hours)
- Kernel synchronization
- Memory management
- I/O devices
- Drivers
- Filesystems
- Network
Parallel and Distributed Programming for Cloud Computing
- Parallelization of Applications
- Shared Memory Programming
- Message-Passing Programming
- MapReduce
- Task Distribution and Process Migration
- Distributed File Systems
- Data Synchronization
- Client-Server
- Performance Analysis
2010年7月29日 星期四
研究領域分組『虛擬平台與系統設計』與『雲端虛擬手機』
最近根據最新的研究方向、研究計畫、實驗室研究人力和興趣,我大致規劃兩個研究小組,將會每週定期開討論會:
- 虛擬平台與系統設計研究小組: Virtual platform, performance tools, system design, multicore architecture
- 雲端虛擬手機研究小組: Cloud computing, virtualization, virtual phones, Android software
2010年5月18日 星期二
Clouds and MapReduce for Scientific Applications
雲端運算是否是用於科學工程計算?大哉問!沒有人能斷言是或不是。Indiana University這篇報告列出了一些要點,是不錯的參考資料。
Cloud computing is at the peak of the Gartner technology hype curve[2] but there are good reasons to believe that as it matures that it will not disappear into their trough of disillusionment but rather move into the plateau of productivity as have for example service oriented architectures. Clouds are driven by large commercial markets where IDC estimates that clouds will represent 14% of IT expenditure in 2012 and there is rapidly growing interest from government and industry. There are several reasons why clouds should be important for large scale scientific computing...
http://grids.ucs.indiana.edu/ptliupages/publications/CloudsandMR.pdf
CMU's Parallel Data Lab
CMU的Parallel Data Lab以Storage Systems聞名,在cloud computing的時代,對於cloud storage也有許多不錯的研究。尤其是performance tools,是非常值得我們參考的。
注意到許多papers全部出現在conferences或是技術報告(technical reports),或有重複的部份,因為利用conference的機會到處宣揚,不足為奇。CMU強調實作的精神,也是這個實驗室的一大特色。
注意到許多papers全部出現在conferences或是技術報告(technical reports),或有重複的部份,因為利用conference的機會到處宣揚,不足為奇。CMU強調實作的精神,也是這個實驗室的一大特色。
http://www.pdl.cmu.edu/index.shtml
Latest development:
Selected papers for performance tools:
Latest development:
- Open Cirrus: A Global Cloud Computing Testbed. Arutyun I. Avetisyan, Roy Campbell, Indranil Gupta, Michael T. Heath, Steven Y. Ko, Gregory R. Ganger, Michael A. Kozuch, David O’Hallaron, Marcel Kunze, Thomas T. Kwan, Kevin Lai, Martha Lyons, Dejan S. Milojicic, Hing Yan Lee, Ng Kwang Ming, Jing-Yuan Luke, Han Namgong, Yeng Chai Soh. IEEE Computer, April 2010.
Selected papers for performance tools:
- Visual, Log-based Causal Tracing for Performance Debugging of MapReduce Systems. Jiaqi Tan*, Soila Kavulya, Rajeev Gandhi and Priya Narasimhan. 30th IEEE International Conference on Distributed Computing Systems (ICDCS) 2010, Genoa, Italy, Jun 2010.
- An Analysis of Traces from a Production MapReduce Cluster. Soila Kavulya, Jiaqi Tan, Rajeev Gandhi and Priya Narasimhan. 10th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid 2010). May 17-20, 2010, Melbourne, Victoria, Australia. Supersedes Carnegie Mellon University Parallel Data Lab Technical Report CMU-PDL-09-107, December, 2009.
- Kahuna: Problem Diagnosis for MapReduce-Based Cloud Computing Environments. Jiaqi Tan, Xinghao Pan, Eugene Marinelli, Soila Kavulya, Rajeev Gandhi, Priya Narasimhan. Proceedings of the 12th IEEE/IFIP Network Operations and Management Symposium (NOMS) 2010, Osaka, Japan, Apr 2010.
- DiscFinder: A data-intensive scalable cluster finder for astrophysics. Bin Fu, Kai Ren, Julio López, Eugene Fink, and Garth Gibson. In Proceedings of the ACM International Symposium on High Performance Distributed Computing (HPDC), Chicago, IL. June, 2010. Supersedes Carnegie Mellon University Parallel Data Lab Technical Report CMU-PDL-10-104.
- File System Virtual Appliances: Portable File System Implementations. Michael Abd-El-Malek, Matthew Wachs, James Cipar, Karan Sanghi, Gregory R. Ganger, Garth A. Gibson, Michael K. Reiter. Carnegie Mellon University Parallel Data Lab Technical Report CMU-PDL-10-105, April 2010.
- PLFS: A Checkpoint Filesystem for Parallel Applications. John Bent, Garth Gibson, Gary Grider, Ben McClelland, Paul Nowoczynski, James Nunez, Milo Polte, Meghan Wingate. Supercomputing '09, November 15, 2009. Portland, Oregon.
- Understanding and Maturing the Data-Intensive Scalable Computing Storage Substrate. Garth Gibson, Bin Fan, Swapnil Patil, Milo Polte, Wittawat Tantisiriroj, Lin Xiao. Microsoft Research eScience Workshop 2009, Pittsburgh, PA, October 16-17, 2009.
訂閱:
文章 (Atom)