國王說:“親愛的大臣,昨晚我夢見一個數字,是190334261410902619,我不知道這個數是不是一個素數,我需要最快知道答案。”大臣回答說:“陛下,我也不知道,不過,我們剛給王國里的每個百姓按自然數順序編了身份證號碼,只要發布命令,讓每個人用自己的號碼去除國王所夢見的數字,很快就能得到答案。”命令發布后的第二天,就獲得了兩個報告,一個是436273009,另一個是436273291。這個故事蘊涵了分布式計算的思想,只是至今全世界都沒有如此多的人口,況且還要進行編號。本期將介紹幾個著名的計算機分布式計算項目。
Enigma(謎語)
解密總是要比加密花費更多的時間和精力。譬如,兩個素數可以輕而易舉地乘出一個合數,但要分解這個合數卻非常復雜,這個有趣特性被著名的RSA加密算法充分利用。盡管人們可以設法獲得RSA算法,然而即便是利用計算機的速度和耐力對RSA密鑰進行破解,也會因為所耗時間太長而失去實際意義。但是,若有許多臺計算機參與到運算過程中,解密過程就能大為縮短。原理很簡單,大的任務被分解成許多小的任務塊,由多臺計算機同時處理。
分布式計算在密碼破解和數學探索中同時取得了輝煌的成績。這里留給大家一個問題,到2006年6月為止,人們所發現的最大的素數是什么?是怎么發現的?
接觸未來
《接觸未來》是華納兄弟于1997年出品的電影,導演是澤梅里斯,根據卡爾·薩根的同名小說改編。影片中,科學家通過無線電信號獲得來自外星的重要技術資料。然而現實是,當前還沒有任何一臺計算機,能單獨對波多黎哥射電望遠鏡所獲取的浩大的外層空間無線電信息進行分析。由此催生了全球最為著名的分布式計算項目——SETI@HOME(由加州大學伯克利分校主持),全世界超過500萬個用戶自愿參與了這個項目。這些電腦累計工作時間達到200多萬年。美國深空探測網認為,通過類似項目與地外文明建立聯系的可能,是“絕對非0”,也就是說,有可能要等上幾千萬年,但也有可能明天就能收到來自外星的問候。
通過互聯網,SETI客戶端從等待分析的海量數據里取出一小塊進行處理。為了避免影響到計算機的正常工作,SETI采用了一種非常簡單的辦法來判斷計算機是否閑置,這是什么辦法呢?
(答案在本期找)
(作者單位:上海位育中學 200231)