分布式程序設計是并行程序設計或并行計算的一種形式。并行程序設計是指計算機和計算機內的計算單元同時處理某個特定的問題,例如預測明天的天氣。這些計算單元可以是非常緊密地定位和協調的,也可以是分開的計算單元是分...
分布式程序設計是并行程序設計或并行計算的一種形式。并行程序設計是指計算機和計算機內的計算單元同時處理某個特定的問題,例如預測明天的天氣。這些計算單元可以是非常緊密地定位和協調的,也可以是分開的計算單元是分開的,稱為分布式編程,在這種情況下,計算單元常常彼此不同,操作系統和網絡設置也不同,這使得計算活動的編程特別具有挑戰性

SETI是一種外星智能搜索,它使用分布式編程對從各種射電望遠鏡陣列獲得的數據進行分類分布式方式下,程序需要被拆分,以便程序的各個部分可以在不同的計算單元上運行;這些部分通常被稱為"進程"。進程同時運行,但需要將輸入和結果相互通信。如果進程在不同的硬件上運行,比如一部分運行在Intel上,另一部分運行在SUN上,然后程序必須以不同的方式進行編譯和優化。解決一個足夠困難的問題的一個方法是分解輸入部分,讓不同的計算單元使用相同的算法、規則或步驟在不同的部分工作例如,要破解一個10000對的基因組,前1000對可以分配給第一個計算單元,第二個1000對分配給第二個計算單元,依此類推,所有這些都使用相同的算法,一個優點是不同的計算單元可以運行不同的算法來解決同一個問題,從而得到一個明顯更好的解決方案,這類似于解決一個拼圖游戲,一些人拼湊邊界,而另一些人則把特定顏色的碎片拼在一起協調分布式計算過程可能是一項特別困難的任務。一些計算單元可能會失敗或被中斷以處理其他工作。包含輸入或計算結果的消息可能無法到達其目的地。如果程序如果以幼稚的方式編寫,那么一個計算單元或某些消息的丟失會導致整個計算機組掛起。在分布式編程中,一個進程可以是控制進程,基本上是由其他進程完成工作,或者說,所有進程都可以對等的方式工作,而沒有進程是"主進程"。分布式編程嘗試的一些問題示例包括分析石油等資源的地質數據、蛋白質和生物分子的建模,編碼信息的破解和軍事模擬。SETI計劃從地球接收到的無線電信息中尋找智能外星生命也許是最著名的例子之一。