38202 開創科學計算的研究與職場生涯

終極密碼

遊戲規則:本遊戲為猜密碼的遊戲。密碼為0到100之間的其中1個整數,電腦會提示密碼的所在範圍,玩家必須在6次之內猜到密碼才能過關。

★ 終極密碼為0到100之間 ★
您共有六次機會

演講者 : 王偉仲教授
時 間 : 民國 101 年 12 月 18 日
地 點 : 臺大天文數學館 202室
整 理 : 陳麗伍

介紹(臺灣大學數學系王振男教授): 今天很高興請到本系的王偉仲老師, 來講跟計算相關的問題。在應用數學所中如果沒有計算這個領域, 或是計算的老師, 就不能算是一個好的應用數學所。 今天的題目是一個相當通俗有趣的講題, 讓我們歡迎王偉仲老師。

零、序幕

謝謝主任的介紹, 也謝謝各位出席今天的演講。

在這個時候念數學, 究竟是一個最好的時代? 還是一個最壞的時代? 近幾年在美國的調查顯示, 數學和電腦相關的行業排行非常前面。 它的投資報酬率很高, 待遇很好, 它的職業發展也相當有前景, 看起來非常的吸引人。 可是, 我們看到台灣, 當少子化問題浮現後, 有些學校已經關閉一些科系, 其中也包含數學系。這些訊息是不是有些矛盾? 所謂數學系畢業有很好前景, 到底是好在哪裡?

我們看到數學在過去長久輝煌的歷史, 將人類文明一波波的推向一個個的高峰, 創造許多美好的果實。 但是在這個瞬息萬變的世界, 數學又應許我們什麼樣的未來? 數學將會扮演怎麼樣的角色?

此外, 能源和石油探勘、生命科學基因體、商業行為分析、多尺度的物理設計和製造業、 氣候模型與預測、 天文、 以及數位內容產業等等, 這麼多與我們生活息息相關的產業, 背後有沒有任何的共通點? 數學, 又在這些產業中扮演了任何角色嗎?

我認為這些問題有個共同的答案, 那就是:科學計算。

今天的演講分為四個部分。首先, 我們談談人類用電腦成就了什麼事情。 再來, 我們看看未來計算方面可能的趨勢是什麼。 第三, 我會簡單介紹我們的研究工作。 最後, 談一談各位的未來, 如果你走科學計算這一行, 將來到學術界或是工業界, 會有什麼樣的可能性。

一、過去的成就

當電腦開始進入人類生活的時候, 其實是受到質疑的。有些人認為電腦不過是一部按照指令進行運算的機器, 它如何能擴展人類的心靈? 提升人類的智慧能力? 它可以深入探索自然界的奧秘嗎? 可以使我們生活更美好嗎? 我們說個半科幻的故事, 來回答這些問題。 這個故事來自一本結合歷史上不同年代真實人物的半科幻小說: The One True Platonic Heaven1 1 The One True Platonic Heaven: A Scientific Fiction of the Limits of Knowledge, 作者 John L. Casti, Joseph Henry Press 出版, ISBN-10: 0309095107。另有中譯本。在柏拉圖的天堂裡:普林斯頓高等學術研究院與科學巨人的故事, 譯者蕭秀珊、黎敏中, 商周出版社出版, ISBN: 9861244956。。這本書主要是談知識的極限以及電腦的誕生的故事, 非常有趣。

這想像中的故事發生在普林斯頓高等研究院。 當時 von Neumann2 2 John von Neumann (1903-1957), 匈牙利裔美籍數學家, 現代電子計算機創始人。 開始構想要做一台電腦, 但是很多人反對, 因為他們認為高等研究院是培養研究者菁粹思考的園地, 不應進行工廠生產線般的機械式運作。 他們認為, 要致力探索人類智慧的極限, 絕不應該在這學術的殿堂建造機器, 破壞殿堂的神聖。有人問:你看 Euler's formula $e^{{\pi}i} + 1 = 0$, 多麼的漂亮! 將這幾個基本的數, 用基本的運算結合起來。 這個公式, 有數學上純然美妙的形式, 更是人類智慧的結晶。造個電腦, 做得到這樣的事情嗎?

但是 von Neumann 怎麼看呢? 他認為, 電腦透過快速大量的計算, 可以增強人類心智的能力, 讓人類可以更深入的探索自然界的奧秘。例如說, 五人共有10元, 每個人平均有幾元? 你只要做個運算, 10除以5, 或是解一個方程 $5x=10$ , 就可以得到答案。 也就是說, 要解決實際的問題, 需要計算能力。 計算能力越強, 就越能洞察自然及人類的世界。這時就有反對者提出:但是, 解方程式已有多年的歷史, 計算機可以帶進什麼新的元素? 可以達成哪些以前所不能達成的事情? 只要算得快, 就是好嗎? 人類的心智只是一部運算數字的計算機嗎? 只靠數字快速的加法, 就可以引領科學發展嗎?

von Nuemann 於是說, 讓我們來看一些科學與科技攜手並進的例子。 第一個例子是伽利略3 3 Galileo Galilei (1564$\sim$1642), 義大利, 物理學家、數學家、天文學家及哲學家, 科學革命中的重要人物, 被譽為 「現代觀測天文學之父」、「現代物理學之父」、「科學之父」及「現代科學之父」。 。 伽利略發明了望遠鏡, 這是一個科技, 他利用望遠鏡發現了金星的盈虧, 發現了木星最大的四個衛星以及提出日心說。 這是科學上非常大的貢獻。大家可以想像, 如果沒有望遠鏡進行觀測, 拿到這些數據, 再進行軌道的想像與運算, 恐怕這些發現難以達成。

第二個例子是虎克4 4 Robert Hook (1635$\sim$1703), 英國博物學家、 發明家, 提出虎克定律、萬有引力平方比的關係, 設計製造了真空泵、顯微鏡和望遠鏡, 「細胞」的英文: cell, 即由他命名。。 虎克用顯微鏡觀察昆蟲、 葉子、細胞, 非常仔細地把它們畫下來, 寫成一本顯微圖譜5 5 Robert Hooke, Micrographia of Some physiological descriptions of minute bodies made by magnifying glasses, 1665, first edition。 可以想見, 這在生物學上有卓越的貢獻。 沒有顯微鏡這個科技, 這些科學上的突破是辦不到的。

伽利略和虎克分別利用「遠觀」和「近看」的科技, 對科學做出卓越的貢獻。 我們再來看電腦如何推動科學的進步。

電腦是象徵符號間的計算關係, 電腦可以處理多套符號, 可靠快速的建立運算、銷毀符號, 這裡是「資訊」的流動。 利用這些符號及規則, 可將符號與真實世界連結, 虛擬符號的運算, 可以給真實世界一個具有代表性的意義。 許多的方程式, 需要在「大量」的未知點上找到適當的數值, 方能解出這些方程式, 進而求得答案, 對真實世界做出一些解釋。 這是 von Neuman 的看法。他甚至提出一個很強的說法:「我們在科學上所受到的限制, 等同於我們在計算能力上所受到的限制。」 能夠算的越多、越快、越大, 對自然界的理解就越高、越深、越遠。

在這個故事裏, 我們已經隱約提到有兩個世界, 一個是實體的物理世界, 一個是虛擬的計算世界, 這兩個世界, 就好像畢卡索的畫作 「鏡前的少女」裏面的兩個少女6 6 Girl Before A Mirror, 1932 by Pablo Picasso。 http://www.pablopicasso.org/girl-before-mirror.jsp。這幅畫將不同角度看到的相貌, 同時表現在一張二維的平面畫布, 這是立體畫派常用的做法。, 儘管鏡前真實的少女, 與鏡中反射的少女, 顯然並不相同。 但是鏡中少女, 表現出許多實體少女的特性, 藉由鏡中虛擬少女, 我們也可以一定的理解實體世界的少女。 而「實體物理」與「模擬計算」兩個世界之間的關係, 則是依靠數學模型, 才得以相互連結。 舉個簡單的例子, 一維的Poisson方程式: $\frac{d^2}{dx^2} u(x)=f(x)$, $ x_i = a + ih$, $i = 0, 1,\ldots, (m+1) $。 就是一個數學模型, 它描述了很多諸如靜電學或是 Gaussian 電量分佈的實際情況。 這個方程寫下來, 離散化後, 變成好多點。 再用泰勒展式的趨近, 捨去高次項後, 寫下有限差分的式子, 就得到一個離散的方程式。 再仔細看, 我們可以發現, 使用有線差分離散 Poisson 方程後, 得到一個 $Ax = b$ 的線性系統問題。 也就是說, 靜電學上的實體世界的現象, 已經被轉換成虛擬世界裏線性系統求解問題。 另外, 我們也可以把一個波動系統數學模型離散, 而得到一個標準特徵值問題。

換句話說, 我們透過數學模型, 將實體世界轉換到模擬世界。然後針對這個方程式離散、求解, 再透過模擬世界中的數值解, 來解釋真實世界的物理現象。

但是問題來了, 離散點的個數可能要很多。 例如:畫一個手的模型, 如果手上取的點不夠多, 用有限單元法模擬出的手, 是一隻很粗糙的手, 不會有真實感。 可是當點的數量足夠, 會覺得這個手的模型很光滑細緻, 很真實。但是當離散點多的時候, 問題的難度就高, 那就需要更好的演算法與更快更大的電腦, 才可解決更複雜的真實世界問題。

接者, 讓我們來看幾個過去數學和計算對人類的貢獻。在 MathMatters 7 7 http://www.maplesoft.com/mathmatters/index.aspx 網站上有很多的例子。 例如, 計算流體力學中 (computational fluid dynamics), Navier-Stokes 方程式幫助我們設計了飛機。 快速傅立葉轉換 (fast Fourier transform), 幫我們手機中的相片壓縮、快速處理, 上傳到臉書。 又或者是腳上的球鞋、操場的跑道、生醫工學中用到的材料, 這些高性能的材料, 很多都是經由 Fick's First Law of Diffusion 這個模型而產生。 接著, 全球氣象預測, 是件非常重要的事情, 如果可以正確預測, 除了避免災害, 對經濟也非常重要。 如果可以預知未來的天氣, 就可以更適當的管理農作物種植, 或者商人可以針對季節溫度提早準備貨品的製作。 但是地球這麼大, 要模擬它需要的點非常非常多, 多到人類數也數不清。 為了解決這個問題, 日本曾經造了一部名為 Earth Simulation 的電腦。 這台電腦由許多計算機組成, 佔據了相當於一座足球場大的面積, 有上下二層樓。下層是散熱用的空調設備等, 上層是電腦的機房。 這麼大的一台電腦, 目標很簡單, 就是模擬整個地球的氣候。

透過對方程式的求解, 我們成就許多的成果, 這些成果彰顯了科學計算的美麗。但是, 接下來這個故事, 就帶點哀傷了。

這是一個關於亞利安5號火箭 (Ariane 5) 的故事。亞利安5號火箭是歐洲13國, 共同投入超過80億美元, 研發十年的成果, 目的是將衛星射上太空。 1996年6月4日在南美洲的法屬圭亞那發射, 搭載價值5億美元的四顆科學衛星, 準備探討地球磁場與太陽風的關係。但是, 發射後40秒, 竟然在 3,700公尺處爆炸8 8 Ariane 5 explosion, http://www.youtube.com/watch?v=kYUrqdUyEpI! 十年的努力, 80億美元, 大量的人力與物力, 在發射40秒後, 化為烏有, 究竟發生什麼事情?

所有的理論通通是正確的。 但是它的慣性參考系統軟體, 發生了一個小錯誤。亞利安5號在向上飛的時候, 有一個64位元浮點數, 被用來紀錄火箭側向速度, 但是在慣性參考系統軟體中, 因為硬體設備的不同, 要把這個64位元的浮點數轉換成16位元的整數。這個數字在當時, 已經超出最大16位元整數 (也就是 36,767), 然而當初設計時沒有考慮到這件事。 因此軟體認定慣性參考系統故障, 向主電腦送出發生錯誤的訊息, 並關閉慣性參考系統。而這時候, 控制火箭的主電腦, 又把錯誤訊息當成火箭當時的火箭狀況參數, 以為有這樣的側向風, 因此, 做出反向的修正。然而, 這個不必要的方向修正與旋轉, 導致推進器與火箭被空氣動力裂解。這個裂解, 導致安全系統啟動, 將火箭自動引爆, 以免墜落時傷及地面事物。

這一場災難的起因只是一個很小的錯誤, 但這個經驗也告訴我們, 儘管是極為複雜, 包含幾百萬行, 幾千萬行的程式, 裡面也不容許有一丁點的錯誤。 另外提一下, 太空梭的程式, 仍然是 Fortran 的老程式 (legacy codes), 但非常的穩定, 沒有人敢動它。

最後是一個有趣的故事, 在影片中9 9 The BMW Sauber F1 Team wind tunnel, https://www.youtube.com/watch?v=I_7-W6X23-I, 我們可以知道 BMW 如何使用 Albert II 這台高速電腦, 協助設計 F1賽車。

二、未來的趨勢

關於過去科學計算的成就, 我們用幾個故事舉例說明, 建立在數學模型上的數值模擬, 如何在過去科學進步中, 扮演重要的角色。 接著我們進入第二個部分, 看看未來可能會發生什麼樣的事情。當然, 未來的趨勢總有很多方向, 也總有許多不同的看法。 但我相信有兩個重要的趨勢, 值得重視:algorithm redesign, 以及 data sciences。

首先, 演算法必須配合電腦架構的改變, 重新設計。 這樣的事情其實一直存在, 電腦實在進步太快, 要充分利用新型電腦的能力, 就必須重新思考設計新的演算法。 2011年5月紐約時報上有篇很有趣的文章 「The iPad in Your Hand: As Fast as a Supercomputer of Yore」10 10 The New York Times, 作者 John Markoff,
http://bits.blogs.nytimes.com/2011/05/09/the-ipad-in-your-hand-as-fast-as-a-supercomputer-of-yore/
, 文章中提到的人 Jack Dongarra11 11 Jack J. Dongarro (1950$\sim$), 美國科學家, 領導設計數學軟體解決高效能計算中的數值問題。 是美國國家工程院院士, 是高效能計算 (high performance computing) 領域非常重要的人。 在訪問中, 他提到「the iPad in your hands is as fast as a supercomputer of yore. (你手中的 iPad 和過去的超級電腦一樣快)」。 他們針對 1985年全世界最快的電腦-超級電腦 Cray 2 , 和2011年推出的 iPad II 做了一個比較, 發現 2011 年的 iPad II 和 1985年的 Cray 2 速度一樣快。甚至現在人手一機的 iPhone 的速度, 在1997年是全世界第500快的電腦, 再往前不用太多年, 就是全世界最快的電腦。 所以各位可以想見電腦的發展速度遠超乎我們所能想像的速度。

在電腦快速翻新的浪潮中, 圖形處理器 Graphic Processing Unit (GPU) 的興起, 是一個不可忽視的方向。 線上遊戲「英雄聯盟LoL」和電影「鐵達尼號」都透過大量快速的計算, 使其畫面流暢逼真, 這些令人驚豔的成果, 一大部分是 GPU 的功勞。 CPU (Central Processing Unit 中央處理器) 每秒可以計算的速度已經達到物理的極限, 無法更快。 當單一核心的 CPU 運算時脈無法更快, 這時候能做的事情就是將它變為多核心。實際上現在買電腦, 已經買不到 sequential computer, 都是二核心、 四核心、八核心的電腦。也就是說 , 經由許多核心的電腦, 同時處理很多運算, 這是平行計算 (parallel computing) 再次興起的時代。 從 2004 年到 2012 年的一個趨勢統計來看, 可以發現前 500 大電腦中有配備 GPU 加速器的系統數量增長得非常快。 也可以想見, 在未來會有越來越多由 CPU 與 GPU (或其它例如 Intel Xeon Phi 的加速器)共同組合而成的異質性電腦。 這是一個重要的趨勢, 而且這個趨勢才開始不久, 是進來這個領域的好時機。

但是要在 CPU-GPU 這類的異質性電腦上設計演算法, 重點是什麼呢? 答案是數值計算與資料傳輸 (computation and communication)。 這就像電影《The Matrix12 12 《駭客任務》, 1999年好萊塢科幻電影, 由華卓斯基兄弟執導, 基努$\cdot$李維、 勞倫斯$\cdot$菲什伯恩、 凱莉$\cdot$安摩絲及雨果$\cdot$威明等人主演, 並由香港電影界的袁和平擔任動作指導。》一樣。 在駭客任務第三集中, 機器之神 Deus Ex Machina 出現並操控所有事情, 它可以要求許多位 Agent Smith 同時執行各式各樣的任務。 機器之神就像是 CPU, Smith 探員就像 GPU。 CPU 很強大但是只有一個, GPU比較小但是量大, 以多取勝。 但是有這麼多計算核心的 GPU 幫 CPU 做事, 除了計算能力之外, 很重要的是這兩者之間的溝通。 就好像機器之神需要傳指令給 Smith 探員, 要它做什麼, 要傳什麼樣的 data 過去, 都需要溝通。 不過, 我們必須了解, 在 CPU 與 GPU 間傳輸是很慢的, 代價是很昂貴的, 而浮點運算則是很快的。 事實上, 類似的事情, 在 CPU 上也是相同。 舉例來說, 2011 年的 Xeon CPU 做一個浮點運算只需要 1.3奈秒 (nanoseconds), 但是要取相對應的資料卻可能需要90奈秒, 這是非常大的差距。 因此, 重點也從浮點數計算能力, 轉移到資料存取 (data access), 也因此, 設計 communication avoid 的演算法是件重要的事情。 甚至有人比較誇張的說 computation is free, communication is expensive (計算免費, 存取昂貴)。因此我們必須充分理解, 最新的電腦硬體結構的改變, 導致我們重新思考許多的演算法。 這樣的觀念, 推廣下去, 就衍生出 application-algorithm-architecture co-design 的概念, 這在現在和未來, 會是非常重要的事情。

第二個我認為很重要的趨勢是 data sciences (數據科學), 這個方向需要計算、統計與數學、以及應用領域知識的跨領域結合, 才能夠做得好。

過去的數理問題有「問題-模型-計算」的循環。也就是說, 為了解決科學或工程問題, 我們需要先建立數學模型, 再透過計算 (離散化、資料數學化) 來求解。 但是, 數據科學裏, 不一定有明確的數學模型, 例如: 垃圾郵件過濾、手寫辨識、網拍行為、消費模式等, 太多的事情只有數據沒有方程式。 事實上, 在2007年12月號《數學傳播季刊》中的 「有朋自遠方來---專訪 James Glimm 教授」13 13 《數學傳播季刊》第31卷第4期, 有朋自遠方來─專訪 James Glimm教授, 第3-11頁, 詳網站
http://web.math.sinica.edu.tw/math_media/d314/31401.pdf
中, Glimm 已經提到這個觀念。 他指出, 「他的研究的想法原本是源自於工程、物理科學和數學, 也就是比較傳統的方法。 可是, 他也發現很多的研究, 與以物理為基礎的模型無關, 基本上直接由數據出發, 它們沒有中介的數學模型, 沒有微分方程。 你看到數據, 就會希望找出數據的模式。當然, equation based 這件事情還是會存在, 還是佔有非常重要的角色。 我從來沒有說它會變得如何, 只是有越來越多的事情發生, 有越來越多的數據出現, 它可能成為21世紀的科學。 我們絕對不是說以物理、微分方程為基礎的科學會消失, 只是模式識別 (pattern recognition) 被低估了, 數據導向科學可能會以一種預期不到的速度快速滲入我們的世界, 必須有更多的研究關注這方面。」

事實上, 我們也可以清楚的看到, 產業界在變化。有越來越多的事情是 data driven, 生活中產生太多 data。 例如, Google 的搜尋行為、Amazon 的線上交易、基因體、大強子對撞機 (Large Hadron Collider)、手機感測元件等等都產生大量的數據。 這些數據迴異於以往有方程式的情況, 它沒有方程式, 但有很大量的數據。這是一個非常重要的徵兆。 很多生物實驗已經由 Wet Lab (生技實驗室) 變成 Dry Lab (電腦實驗室), 它一直在做計算, 處理很大量的數據。 很多事情我們看得到數據, 卻沒有背後的方程, 也必須找出其間的關聯與模式。當然, 統計的重要性, 也就更突出。

美國 SIAM (Society for Industrial and Applied Mathematics, 工業與應用數學會) 在 2012 年的一份 Mathematics in Industry14 14 數學在工業界, 簡稱 MII, http://www.siam.org/reports/mii/2012/ 報告中, 也指出在工業界做事, 哪些學科能力是最重要的。 其中就包含 statistics (統計), probability (機率), applied mathematics (應用數學), modelling and simulation (模型和模擬), numerical analysis (數值分析), optimization (最佳化), discrete mathematics (離散數學) 和 differential equations (微分方程), 幾乎可以說是臺大應數所的主要科目都含括其中。 但是從1996年到2012年的變化, 統計與機率增加了10%, 我相信這是個非常重要的信息。

關於趨勢我就提這兩種, 而這兩個大方向, 跨領域的學習與合作, 是個關鍵點。 電腦硬體近來的改變, 導致我們必須要重新設計演算法, 才能做更大的問題。 更進一步說, 「應用-演算法-電腦結構」三者必須一起考慮, 因為他們是互相影響的, 也就是 application-algorithm-architecture co-design 的意思。 另一方面, 數據科學有越來越多的議題我們必須關注, 有許多的新問題在裡面, 亟須應用領域知識、統計與數學、以及計算等不同領域專家合作, 才能做出有影響力的成果。

若能掌握一件事情發展的趨勢, 就好像看準某架飛機即將起飛, 在剛起飛的時候跳進來, 就可以越飛越高。 如果某個問題已經發展很久、很成熟後, 再進來做這個題目, 有時候會很辛苦。

三、我們的研究

接著, 簡單介紹一下我們做的研究。我們的研究, 通常是以跨領域的方式來進行。 針對科學或工程上的問題, 試著利用應用數學或統計科學的方法來看這些問題。 並提出新的高效能演算法, 來解決問題。 當然也要把這些演算法變成程式, 將算出來的答案, 嘗試回答原來科學或工程上的問題。 這裡我們談談我們三個方向的研究。

第一個方向是矩陣計算。 為什麼這個主題重要? 大概在前幾年美國柏克萊大學為了從微軟拿一個非常大的計劃, 提出了一個提案, 分析在各式各樣不同的應用, (包含 embedded system, SPEC, 資料庫、遊戲, machine learning, computer aided design, 高效能計算、健康、影像、口語辨識、 瀏覽器等)需要用到怎麼樣的數學工具。在這個表上, 很多地方都用到 dense matrix 和 sparse matrix computations。 Intel 在 2006年也做了類似的分析, 他們分析電腦視覺 (computer vision)、算圖 (rendering)、物理模型 (physical simulation)、 產業 (金融分析)、data mining 等, 它們需要什麼樣的方法以及什麼樣的數學工具。 最後, 發現最基本的運算是 Krylove iterative solver 解線性系統、direct solver、 以及一些更基本的矩陣運算。所以我們可以說, 矩陣運算是許許多多科學重要的核心工具。

舉例來說, 我們在 largescale eigenvalue problems 方面, 最近主要是發展三維的量子點 (3D quantum dots) 和三維的光子晶體 (3D photonic crystal) 的數值模擬。 合作的對象來自交大、師大、中央、清華、中研院原分所、美國 MSC Software (最大的 finite element 的軟體公司) 和東京大學的研究人員。 舉一個例子, 有一陣子我們特別關心模擬用 molecular beam epitaxy (分子束磊晶法) 所製造的 nano-scale quantum dot 的研究。 量子點在奈米這個極微小的尺度之下, 原本材料連續的能階變成離散的能階, 有了離散能階後, 當電子在離散能階跳動, 放射出來的能量就可以做雷射光。 要知道這個能階圖, 就是要計算 Schrödinger's equation 的特徵值 (eigenvalue)。 比較困難的是它是一個 non-parabolic model, 它的等效質量和能量是有關的, 會變成一個 polynomial eigenvalue problem, 比較複雜不好計算。 我們一系列的工作就著重在這方面, 與實際的物理實驗比照對應, 從一顆量子點到成列的量子點, 有大、小顆和不同的形狀, 試著提出計算特徵值的方法。 每種不同的形狀背後的方法都要不同。 所以我們把科學上重要的事情, quantum dot 能階圖變成矩陣計算問題, 做出來後, 設計演算法放到電腦中, 甚至把它做到平行計算, 將這個超大型特徵值系統很快地做出來。最近, 我們在做的是週期結構與光子晶體, 其中牽涉到一些很有趣的 null space 的問題。

第二個部分是 data driven analysis and optimization。 考慮只有反應函數值的情況下, 該怎麼樣分析這些數據, 怎麼樣最佳化這個反應函數。 舉個例子: 如果我們讓你測量十次台大醉月湖的單點深度, 你能不能據此告訴我醉月湖最深點的點在哪裡。 換句話說, 我們做十次實驗, 每次實驗都非常昂貴, 在這十次實驗後, 你要告訴我醉月湖最深的地方在哪裡。 換成數學來看, 就是你有一個不規則的 domain, 這個 domain 在每個點 $(x,y)$ 有一個 output。 可是要算這個 output 很貴, 而且這個未知函數是寫不出來的, 但是卻要把這個黑盒子函數最佳化, 該怎麼做? 我們的方法與實驗設計、 替代模型 (surrogate model) 有關, 也和統計的老師合作, 發展了好幾個方法。 也把這些方法應用到諸如高效能計算參數自動調校, 混沌光源產生器, 電腦實驗最佳參數, 地震地電複合地物參數聯合逆推與建模等各種實際的科學問題。

第三個是 GPU 的計算。 最近有個剛畢業的學生, 他針對大型的線性系統, 研究如何用 multifrontal 的方法在 GPU 上求解。 Multifrontal 最厲害的是把稀疏矩陣的運算變成一系列稠密子矩陣的運算。 他提出了一個 computation 與 communication 模型, 針對這個模型, 他用嚴格的數學分析, 找出上、 下界的分析, 告訴大家, 他能夠做到的 CPU 和 GPU 工作的分配是最好的, 而且好在哪裡。在醫學影像重建方面, 我們也和臺大生機系, 和芝加哥大學放射線科的老師合作, 希望透過 GPU 高速的運算, 達到高解析度低放射性的目標。

以上從矩陣計算, 數據導向分析與最佳化, 以及 GPU 計算這三個方面, 向大家簡單的介紹我們的研究。

四、各位的未來

接著我們來談談各位的未來。各位最關心的應該就是自己的未來。如果你進到科學計算這個領域, 將來會是什麼樣的情況?

有些人想到學術界, 去學校當教授, 當然要念碩士、念博士。那麼可以到哪裡念呢? 除了美國的主要大學有類似的學程, 在歐洲的瑞士、 瑞典、英國、芬蘭等等, 亞洲的日本、韓國也有。我們蒐集一些設有科學計算領域的研究所, 可以參考這個網頁 http://goo.gl/maps/MhMO2。 我們發現, 因為市場有龐大需求, 很多學校都需要老師來培養具備科學計算能力的學生。因此只要我們做得好, 往學術界發展完全沒有問題。

當然, 有更多的同學會進入工業界。那麼在工業界的未來會如何? 工業界注重什麼能力? 從我過去的學生在臺灣就業的情況來看, 他們都能找到蠻好的工作, 在全國性的研究單位, 跨國的電子公司, 中小型企業等都有。也有公司或研究單位來詢問有無適當的人選。 例如: 有沒有學生會寫程式做電腦計算的, 可以做電腦算圖的, 又或者懂影像處理又能做 GPU 加速計算的人選。

除了這些個人經驗外, 我想要再談談之前提到的 SIAM 2012 的 MII 報告, 來了解工業注重什麼能力。 首先, 此報告指出美國的經濟已經從生產業轉移到服務業為導向, 在這個情況下, 以數學做為背景的人員會越來越多, 工業界會更願意聘用數學科學家與計算科學家 (Industries hiring mathematical and computational scientists)。 再者, 報告中還包含18件個案分析 (case studies), 告訴我們數學究竟是怎麼應用在工業界。這些個案分散在許許多多的產業, 例如: 在 business analytics 方面, IBM 有個 automatics decision business , 怎麼樣自動做決策、自動下單、做交易買賣、處理財務等。 在生物方面, 現在都是 Dry Lab, 無論是 molecular dynamic simulation 或是 drug development 藥物製造, 全部是大量的計算。 石油的生產、採礦;製造業;通訊和運輸;雲端運算等, 它一個一個告訴你在這些產業中有哪些用到數學, 怎麼樣運用。

舉個例子, 這份報告中第十個個案分析, 是波音公司利用跨領域的方式, 進行最佳化和電腦輔助設計。各位知道, 從波音777開始到波音 787, 全部都是用電腦設計, 用電腦運算來模擬空氣動力學中流場狀況, 也就是「數值風洞」。 這些飛機的設計有許多創新, 例如: 複合材料, 讓機身更輕更堅固, 同時因為更輕更堅固也就更省油。 甚至因為機身不是金屬材料, 比較不怕濕氣腐朽, 可以提高機艙濕度, 讓乘客更舒適。 另外, 機翼是 dynamic wings , 飛翔與靜止時有三公尺的差異, 這並不是個剛性的物質, 這在過去沒有辦法解大量方程時是做不到的。 接著是整體的 integration , 這架飛機有超過十萬個零組件, 超過四十個以上的 contractors, 分散在世界各個國家, 最後全部運送到西雅圖組裝, 可以想見這樣的整合技術是多麼複雜。再者, 因為全部都是電腦設計, 所以很容易客製化, 如果有部分需要客製, 可以馬上修改, 這在以前是做不到的。 這些都是非常驚人的工程成就。這裡面用到哪些數學? SIAM 的報告明確指出: 數值線性代數, 微分方程, 作業研究, 計算幾何, 最佳化, 最佳化控制, 資料管理與統計。

換句話說, 在演講一開始我們提出的問題, 「為什麼學數學前景會好?」 這些個案分析提供許多面向的說明, 告訴我們, 由數學界訓練出來的人, 是怎麼樣在工業界發揮所長。 當然, 科學計算在其中扮演一個關鍵性的角色。

除了這些個案分析, MII 2012 裡面還有很多重要的資訊, 值得我們參考。 讓我們知道工業界注重什麼能力, 在學生時代要有怎麼樣的準備。 我必須強調, 雖然這個報告是以美國為主, 但是這些能力在世界各地都是共通的需求, 尤其是越高階的研發, 越是重要。

首先, 我們拿數學系與資訊系來比較。一般而言, 數學系的學生寫程式能力, 可能比不上資工系的學生, 憑什麼業界要雇用數學系的人? 這個報告中的一句話, 值得參考:「 Computation is not enough. Our recruits need to understand algorithms, mathematical modelling, and the application.」 這句話告訴我們廣泛知識與能力的重要。一般業界希望有 ``T-shaped" 的人才。 也就是在數學或科學計算上, 要有足夠廣的知識之外, 還要有幾項特別深入理解的領域。就像是英文字母「T」一樣, 要有廣度, 也有深度。 更具體的說, 在數學與計算各個科目, 必須要有廣度的理解, 與幾個方向特別深入。在一些應用領域, 要能夠理解真實世界的問題, 能夠和他人溝通。

此外, 一定要會寫程式, 最好也要能夠做平行的高效能計算。 在 MII 2012針對研究生的訓練問卷調查發現, 除了本科系學科外, 工業界人員在學生時期另外學習最多的方向就是程式編寫 (65%), 科學計算 (35%), 其它資訊科學相關的知識 (28%), 以及其它科學領域 (58%)。

在另外一個表格, MII 2012 詢問業界人員, 那些能力是重要且必須的, 有 67% 的回答是數學模型 (mathematical models), 43 % 的回答是 software development 。但是你有這些很好的知識與技能是不夠的, 還有 64% 說對上司做報告是重要的, 59% 認為內部報告是重要的, 53 % 覺得對顧客做報告是重要的等, 這裡有一個關鍵:communication 。 你必須透過書面或口語跟人溝通。 所以有好的想法是不夠的, 足夠的溝通能力, 必須要能夠說服你的同僚、上司、與顧客。 必須能夠在一個跨領域的團隊中工作, 必須能夠和同伴一起共事, 無論你是否喜歡這個同伴。 總之, 溝通與團隊合作非常非常重要, 在學校裡某種程度, 我們可能忽視了這些面向。

工業界也需要雇員有足夠的彈性, 要不停的學習新事物, 公司可能會在不同時期, 賦予不同的任務。 因此, 會看重具備接受不同挑戰的能力, 要有興趣、經驗、熱忱解決問題, 完成主要的 business focus。 另外, 必須能夠在限定的時間內完成工作, 講好的時限是中午12點, 就絕對不能是12點零1分。 最後, 必須理解真實世界中常常要的是一個合理的解 (reasonable solution), 而不是確實的解 (exact solution)。 確實的解可能只存在於抽象的數學概念, 或滿足許多的前提與假設, 不一定可以符合實際情況。

MII 2012 中特別提到 Dual-Mentor 的制度, 鼓勵研究生由一位學術界導師與一位工業界導師, 或是學術界中不同領域導師共同指導。 我非常贊同這個想法, 我有一部份的研究生就是用這樣的方式來指導他們。

另外, 我觀察一些表現特別優秀的學生, 天資或個性不盡相同, 不過通常都有強烈的動力, 個性主動積極, 為了克服困難, 做出長時間的努力。 我問他們原因, 最多的人說他們就是喜歡這些工作。 另外, 有的說不喜歡有人做得比他更好的感覺, 有的說是想到好主意要盡全力把它做出來, 有的說是為了他們的未來。 這也讓我覺得, 協助學生了解自己, 找到他們內在的熱情與動機, 是老師的職責。當然, 能跟這些優秀又努力, 眼神散發出迷人光采的同學一起工作, 是當老師最大的回饋, 也讓我覺得臺灣的未來充滿希望。

五、結語三二一

演講尾聲, 我想要強調科學計算的研究是「三個領域」彼此互動的成果。 透過科學與工程的問題, 應用數學與統計方法, 以及電腦科學, 這三個領域的互動, 我們可以做很好的研究, 解決很困難的問題, 有非常好的前景。

Open-mindness 與 passion, 這「兩個關鍵字」與同學息息相關。 有開闊的心胸, 就能發現這個世界是一個彩色的光譜, 不是只有一點或一條線, 有太多的未知值得探索與嘗試, 沒有做哪件事, 讀什麼方向才是所謂高級的人。 有開闊的心胸, 更可以發現他人工作的價值;更可以發現這個世界的寬廣與樂趣;更有機會找到自己的熱情, 真正有興趣的事情。 一旦找到自己熱情的方向, 做起事情來就完全不同。更有勁, 更能堅持努力走下去, 更可以期待成功。

我常常在想, 我們每天努力工作的意義在哪裡? 我想我們的「第一要務」是能讓我們的研究成果與培養出來的學生, 能對科學有大的影響力, 對臺灣有幫助, 讓我們的生活更美好, 這是我們一直努力的目標。

最後, 如果你覺得以上所談的內容還有點道理, 想要加入這個行列, 哪裡是你的起點? 這就回到我的題目, 歡迎以科學計算開創屬於你的研究與職場生涯!

---本文演講者王偉仲教授任教臺大應數所, 整理者陳麗伍當時為中央研究院數學所助理---