分布式程序设计是并行程序设计或并行计算的一种形式。并行程序设计是指计算机和计算机内的计算单元同时处理某个特定的问题,例如预测明天的天气。这些计算单元可以是非常紧密地定位和协调的,也可以是分开的计算单元是分...
分布式程序设计是并行程序设计或并行计算的一种形式。并行程序设计是指计算机和计算机内的计算单元同时处理某个特定的问题,例如预测明天的天气。这些计算单元可以是非常紧密地定位和协调的,也可以是分开的计算单元是分开的,称为分布式编程,在这种情况下,计算单元常常彼此不同,操作系统和网络设置也不同,这使得计算活动的编程特别具有挑战性

SETI是一种外星智能搜索,它使用分布式编程对从各种射电望远镜阵列获得的数据进行分类分布式方式下,程序需要被拆分,以便程序的各个部分可以在不同的计算单元上运行;这些部分通常被称为"进程"。进程同时运行,但需要将输入和结果相互通信。如果进程在不同的硬件上运行,比如一部分运行在Intel上,另一部分运行在SUN上,然后程序必须以不同的方式进行编译和优化。解决一个足够困难的问题的一个方法是分解输入部分,让不同的计算单元使用相同的算法、规则或步骤在不同的部分工作例如,要破解一个10000对的基因组,前1000对可以分配给第一个计算单元,第二个1000对分配给第二个计算单元,依此类推,所有这些都使用相同的算法,一个优点是不同的计算单元可以运行不同的算法来解决同一个问题,从而得到一个明显更好的解决方案,这类似于解决一个拼图游戏,一些人拼凑边界,而另一些人则把特定颜色的碎片拼在一起协调分布式计算过程可能是一项特别困难的任务。一些计算单元可能会失败或被中断以处理其他工作。包含输入或计算结果的消息可能无法到达其目的地。如果程序如果以幼稚的方式编写,那么一个计算单元或某些消息的丢失会导致整个计算机组挂起。在分布式编程中,一个进程可以是控制进程,基本上是由其他进程完成工作,或者说,所有进程都可以对等的方式工作,而没有进程是"主进程"。分布式编程尝试的一些问题示例包括分析石油等资源的地质数据、蛋白质和生物分子的建模,编码信息的破解和军事模拟。SETI计划从地球接收到的无线电信息中寻找智能外星生命也许是最著名的例子之一。