威廉·卡亨

威廉·卡亨

嚴密、嚴謹、嚴格、追求更進一步是威廉·凱亨的一貫作風,也是他留給英特爾在不斷研發新的計算機浮點運算技術道路上的一筆精神財富

基本信息

簡介

威廉·凱亨,也譯為威廉·卡亨(William Morton Kahan)1933年6月5日出生,凱亨生於多倫多。完成中學學業以後,凱亨進入著名的多倫多大學。

在那裡,他實現了“三級跳”——繼1954年取得數學學士學位以後,1956年和1958年又先後獲得碩士學位和博士學位。

威廉·卡亨 威廉·卡亨

經歷

卡亨1933年6月5日生於多倫多。完成中學學業以後,卡亨進入著名的多倫多大學。在那裡,他實現了“三級跳”——繼1954年獲得數學學士學位以後,1956年和1958年又先後獲得碩士學位和博士學位。學成以後,卡亨既在大學從事過教學和科研,又在一些著名的計算機整機廠和元器件廠從事過重要的技術工作和產品開發工作。其中包括:1960—1968年在多倫多大學任教,1972—1973年在IBM公司工作,1974--1982年任HP公司顧問,1976—1983年在Intel公司工作,1983—1986年重返IBM,1986年以後在加州大學伯克利分校任教,同時在美國國家半導體公司兼職。這些經歷使他積累了豐富的工程實踐經驗,並為計算機科學技術,尤其是在計算機運算技術的發展方面作出了重要貢獻。

凱亨既在母校和加州大學伯克利分校從事過教學和研究,又在Intel、NS、IBM、HP、Apple等著名的計算機元器件公司和整機製造廠家工作過。這些經歷使他積累了豐富的工程實踐經驗,並為計算機科學技術,尤其是在計算機運算技術的發展方面做出了重要貢獻。

在英特爾供職期間,凱亨主持設計與開發了8087晶片,成功地實現了高速、高效的浮點運算部件。直到目前,以80×86為CPU的計算機,若需完成科學與工程計算方面的課題,也必須同時配置8087這種數學協處理器。同時,一些著名的數學軟體包,如Mathematica,也必須在配有8087數學協處理器的機器上才能運行。由於他的突出貢獻,凱亨後來又受命主持制定了二進制的、與基數無關的浮點運算標準,即IEEE754標準和IEEE854標準。而這兩個標準至今仍為絕大多數的計算機廠商所遵守。也正是由於這兩個標準,ACM於1990年1月宣布凱亨因在浮點運算標準的制定上的貢獻而獲得圖靈獎。

1989年的圖靈獎又一次選擇了一位加拿大計算機科學家,這一次是威廉·卡亨(William M.Kahan),他是因為在浮點運算部件的設計和浮點運算標準的制定上的突出貢獻而獲此殊榮的。

浮點計算

大家知道,計算機中的“數”有“定點數”和“浮點數”之分,“定點數”的運算部件的設計與實現比較容易,而“浮點數”的運算部件的設計和實現卻複雜得多,困難得多。因此,較早的計算機許多都不配備浮點運算部件。那么,需要浮點運算的時候怎么辦呢?歷史上曾經有過兩種解決辦法。第一是利用浮點運運算元程式在定點運算部件上實現浮點運算。最早的浮點運運算元程式是由1970年圖靈獎獲得者威爾金森(J.H.Wilkinson)在圖靈所設計的ACE計算機上實現的。第二種辦法是馮·諾伊曼提出來的,即對定點數附加以“比例因子”,使之成為實際上的浮點數。這個辦法固然巧妙,但比例因子的設定成了令程式設計師傷腦筋的事,因為有時候運算的中間結果和最後結果的範圍很難確切估計,比例因子選小了,造成運算溢出;比例因子選大了,影響運算精度。後來,巴克斯(J.Backus,1977年圖靈獎獲得者)和他的同事海里克(H.Herrick)一起開發出了一個叫Speedcoding的軟體,能根據問題自動設定和調整比例因子,成功地解決了這個問題。這兩種辦法都是通過軟體實現浮點運算的,雖然可行,畢竟是“權宜之計”,因為前者使浮點運算的速度大大降低,後者在數的取值範圍和精度兩方面都有很大限制,難以滿足某些套用的需要。正是卡亨,在Intel工作期間,主持設計與開發了8087晶片,成功地實現了高速、高效的浮點運算部件。目前,以80x86為CPU的計算機,若需完成科學與工程計算方面的課題,有些需配置8087這種數學協處理器(mathematical coprocessor)。一些著名的數學軟體包,如Mathematica,也必須在配有8087數學協處理器的機器上才能運行。除此以外,卡亨還為HP計算機的體系結構設計作出過貢獻。

由於有這樣的背景,IEEE在制定浮點運算標準的時候,很自然地任命卡亨為這個課題的負責人。在卡亨的主持下,二進制浮點運算標準IEEE 754以及與基數無關的(radix-independent)浮點運算標準IEEE 854相繼出台。這兩個標準至今仍為絕大多數的計算機廠商所遵守。

除了以上主要貢獻外,卡亨在科學、工程、財會計算的數值算法的設計、誤差分析、驗證與自動診斷等方面也有卓越的貢獻,是該領域中世界公認的權威之一,曾發表過許多有影響的論文。尤其是在矩陣計算方面,卡亨有極高的學術造詣。

作為一名數學家,卡亨在教學與研究工作中素以作風嚴密、嚴謹、嚴格著稱。但為此,他也付出了一定的代價。卡亨獲得圖靈獎以後的一個小插曲很能說明這個問題。事情是這樣的:ACM於1990年1月宣布卡亨因在浮點運算標準的制定上的貢獻而獲得1989年度的圖靈獎,並在1990年2月於華盛頓召開的,90CSC(計算機科學會議)期間正式向卡亨頒獎。這之後,ACM收到了一名讀者對卡亨獲獎表示異議的信。這名讀者曾是史丹福大學的學生,後來考進加州大學伯克利分校念研究生,入學考試時與卡亨教授發生過齟齬,後來在舊金山的一家軟體公司工作。按照“言論自由”的原則,ACM把這封信不加評論地發表在《ACM通訊》7月份的“ACM論壇”(ACM Forum)這一專欄中。

這名讀者提出異議的理由主要有兩條:一是憑“制定標準”就獲獎,條件不足,而且他認為IEEE浮點標準是科學與技術上的一個錯誤,因為它妨礙了數學算法的發展,無助於非專家的一般用戶避免出錯。至於這個標準至今沒有遭到更廣泛的批評,只是因為它與Ada、VHDL標準相比,潛在的不良後果較小而已。對上面這條理由,該讀者大概也覺得並不理直氣壯,因而並未發揮,匆匆帶過。重點在第二條,即卡亨在伯克利大學當教授對學生不公正。不公正表現在哪裡呢?該讀者說,伯克利大學的大學生絕大多數課程都能取得高分,只有卡亨教授上的數據結構和程式設計課例外,這是其一。其二是該讀者自己和其他4—5名學生在進入伯克利研究生院的初試中,6門筆試課中的5門都順利通過,只有卡亨教授主持的數值分析課的考試通不過,不得不重考。而他之所以未能通過,是因為他解題時注重步數少,認為這比運算結果的精度更加重要,而且他強調說他在史丹福大學學習時,那裡的物理專家和微分方程專家也都是這么看的,這么教課的。卡亨教授不同意他的這種觀點,給他打了個“不及格”,讓他重考。這封讀者來信發表以後,10月份出版的《ACM通訊》上,在“ACM論壇”中發表了另一名讀者表示不同意見的來信,這次是加拿大麥克馬斯托大學(McMaster University)計算機科學系的一位老師發表看法。他認為,上述讀者介紹的情況,恰恰說明卡亨教授對學生高標準,嚴要求,是值得稱道的;而解題步數同運算結果的精度相比何者更重要,正確的一方顯然是卡亨教授。因此這名讀者表示,在看了上述讀者的信之後,他只是更加增加了對卡亨教授的敬意,而不是相反。爭論至此結束。值得我們注意的是,在這個過程中,圖靈獎的評獎委員會和卡亨教授本人都沒有出來就此說任何話。這一小插曲也許對我國的教育界和科技界有所啟示。

卡亨目前仍在伯克利計算機科學系任教授。

歷屆圖靈獎獲獎名單

相關詞條

相關搜尋

熱門詞條

聯絡我們