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


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

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)」上的流動所需的時間比例變了

但是,比例變了,這個應用的最佳處理方式就跟著變了,其實跟生意人打的算盤,和經理人規劃公司營運的方式,是一樣的道理。除了靠算計之外,生意人靠眼光,經理人靠經驗,電腦工程師靠工具。某個東西變了,我們就有機會把同一種應用以更好的方式建構出來,或者是把原來沒辦法做完的應用及時完成。所以,我們在過去幾十年,其實不斷在重複一些東西。雲端裡,有很多幾十年前的東西,又復活跑出來。

用「電腦來設計電腦」,是電腦之所以進步神速的重要原因。不斷進步的電腦硬體和軟體的設計工具和日積月累的智慧財產(軟體庫和硬體庫),到底會進化到何時方休?這是個有趣的問題。雖然原理沒變,但複雜度隨著資料的海量化而增大。人類設計電腦系統和應用的能力,受到「設計工具」和「對應用主題的了解」的限制,就算是再聰明的人,也很難突破這些限制。
 
因此我想,在海量資料的時代,要做好軟體和系統設計來進行海量資料分析,我們需要強化兩種基礎:
  1. 更強大的設計工具:能夠幫助開發者快速建構出優質硬體和軟體系統的工具(Tools)和方法(Methodologies)。

    有學生說,光是單看硬體,或是單看軟體,就已經很複雜了,我們要如何又看硬體又看軟體呢?關鍵就在工具和方法。

    有趣的是,傳統資訊系統是一般來說是一層一層疊上去的(階層式,hierarchical),在每個層次都必須提供有效的工具和方法。然而,面對海量資料,傳統階層式的作法,把開發工作分為:應用開發、中介軟體、系統軟體、系統架構、硬體設計,可能沒有辦法有效率地解決問題,但是要找到能夠通曉多層次的人才,又是非常難的事情,所以如果能夠研究出跨層次的工具和方法,就可已是很好的貢獻。

    因此,我希望我的學生能夠跨層次廣泛涉獵(學得快),精通每個層次(學得好),而且能夠貫串不同層次(學得巧),創新研究工具和方法(學得妙)。
  2. 對應用領域更了解:能夠更透徹理解各個重要應用領域的特性。

    有人看到Google搞海量資料,以為海量資料就是搜尋和存放資料;有人看到Facebook搞海量資料,以為海量資料就是社群網路行為的分析;如果你去看IBM搞海量資料,定義和做法又是有很大的不同。不管是哪一個,對於重要領域理解透徹的專家,決定了這些海量資料能夠帶我們到哪裡去。

    然而,這些專家,來自於四面八方,不再是傳統資訊學門所能延伸觸及的。以前,資訊工程師花一些時間去學習特定的專業知識,很可能就可以寫出一套應用;海量資料的應用,必須有領域專家(Domain Experts)的介入,甚至主導,才不會產生一些膚淺的應用。

    幾十年來,高效能計算應用的開發就是這樣性質的工作,那些在超級電腦中心工作的領域專家,比資訊專家還多,所以跨領域的團隊合作是極其重要的。在IBM的例子裡,我們可以看到領域專家的重要性。想搞海量資料的資訊人,要學習與領域專家合作,溝通技巧很重要。
然而,我們目前的工具、方法和領域專家還遠遠不足以讓我們有效且快速地開發海量資料分析應用。我看到一篇UC Berkeley的短文,標題寫著: We don't know enough to make a big data benchmark suite,只有兩頁,不妨看看,可以看看我們還缺些什麼東西。總之,可以做的研究多得很!

沒有留言:

張貼留言