什么是分布式编程?(distributed programming?)

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

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

SETI, a search for extraterrestrial intelligence, uses distributed programming to sort through the data it has gained from various radio telescope arrays.

当以分布式方式解决问题时,需要将程序拆分,以便程序的各个部分可以在不同的计算单元上运行;这些部分通常被称为“过程”这些过程同时运行,但需要相互交流输入和结果。如果进程运行在不同的硬件上,例如一部分运行在Intel上,另一部分运行在SUN上,那么程序必须以不同的方式编译和优化。

解决足够困难的问题的一种方法是分解输入部分,让不同的计算单元使用相同的算法、解决问题的规则集或步骤在不同的部分上工作。例如,要破解10000对基因组,可以使用相同的算法将前1000对分配给第一个计算单元,将第二个1000对分配给第二个计算单元等等。分布式编程的一个优点是,不同的计算单元可以运行不同的算法来解决同一个问题,从而得到更好的解决方案。这类似于解决一个拼图游戏,一些人拼凑边界,而另一些人拼凑特定颜色的碎片。

协调分布式计算过程可能是一项特别困难的任务。一些计算单元可能会出现故障,或者在处理其他工作时可能会中断。包含输入或计算结果的消息可能无法到达目的地。如果程序是以一种幼稚的方式编写的,那么计算单元或某些消息的丢失可能会导致整个计算机挂起。

在分布式编程中,一个进程可以是控制进程,基本上由其他进程完成工作,或者,所有进程都可以以对等方式工作,没有进程是“主进程”分布式编程试图解决的一些问题包括分析石油等资源的地质数据、蛋白质和生物分子的建模、编码信息的破解以及军事模拟。SETI项目从地球接收到的无线电信息中寻找智能外星生命,这也许是最著名的例子之一。

  • 发表于 2021-12-13 14:09
  • 阅读 ( 171 )
  • 分类:互联网

你可能感兴趣的文章

水蟒(anaconda)和python编程(python programming)的区别

...据科学和机器学习任务更加容易。 什么是python编程(python programming)? Python是一种高级的、通用的编程语言。它是免费的,开源的,跨平台的。它还支持数据类型,如数值、字符串、列表、元组和字典。Python是一种多范式编程语...

  • 发布于 2020-10-18 11:25
  • 阅读 ( 336 )

离散分布

什么是离散分布(discrete distribution)? 离散分布是一种概率分布,描述了离散(个别可数)结果的发生,如1,2,3。。。或者零对一。例如,二项式分布是一种离散分布,它评估在给定次数的试验中出现“是”或“否”结果的概率...

  • 发布于 2021-05-31 21:52
  • 阅读 ( 436 )

集中化(centralized)和分布式数据库(distributed database)的区别

集中式数据库和分布式数据库的主要区别在于集中式数据库处理单个数据库文件,而分布式数据库处理多个数据库文件。 数据库是相关数据的集合。许多组织使用数据库来轻松地存储、管理和检索数据。数据库有多种类型,集...

  • 发布于 2021-06-30 18:00
  • 阅读 ( 642 )

云计算(cloud computing)和分布式计算(distributed computing)的区别

云计算和分布式计算的主要区别在于云计算提供硬件,软件和其他基础设施资源在互联网上,而分布式计算将单个任务划分为多台通过网络连接的计算机,以比使用单个计算机更快地完成任务。 云计算有助于通过网络远程访问...

  • 发布于 2021-06-30 18:27
  • 阅读 ( 398 )

网络操作系统(network operating system)和分布式操作系统(distributed operating system)的区别

网络操作系统和分布式操作系统的主要区别在于,网络操作系统提供与网络相关的功能,而分布式操作系统通过网络连接多**立的计算机,以执行类似于一台计算机的任务。 操作系统是用户和硬件之间的接口。它控制程序的执行...

  • 发布于 2021-06-30 19:18
  • 阅读 ( 860 )

人口密度(population density)和人口分布(population distribution)的区别

...。 捕食者很容易捕捉到个体。 什么是人口分布(population distribution)? 在一定程度上,分布人口比密集人口有几个优点。例如,中国的自然条件导致人口分布不均。 Figure 2: World Population Distribution 平均分布的人口有其自身的好处...

  • 发布于 2021-07-01 00:37
  • 阅读 ( 468 )

JAVA(java)和python(python)的区别

...将Python源代码逐行转换为机器代码。 Java是一种设计用于分布式环境的编程语言。它是Android智能**和物联网(IoT)等各种应用程序的流行编程语言。Java背后的概念是“只写一次就可以在任何地方读”。另一方面,Python是一种简单...

  • 发布于 2021-07-01 03:43
  • 阅读 ( 326 )

平行(parallel)和分布式计算(distributed computing)的区别

并行计算和分布式计算的主要区别在于,并行计算允许多个处理器同时执行任务,而分布式计算将单个任务在多台计算机之间划分,以实现一个共同的目标。 在计算机中,一个接一个的执行一个任务的单处理器不是一种有效的...

  • 发布于 2021-07-01 13:33
  • 阅读 ( 1131 )

分布式(distributed)和并行数据库(parallel database)的区别

分布式数据库和并行数据库的主要区别在于,分布式数据库是管理分布在网络上的多个逻辑上相互关联的数据库的系统,而并行数据库是多个处理器同时执行和运行查询的系统。 数据库是每个企业组织必不可少的存储单元。它...

  • 发布于 2021-07-02 00:49
  • 阅读 ( 828 )

什么是分布式组件对象模型?(a distributed component object model?)

... 在过去的几十年中,计算机科学家一直致力于通过使用分布式组件技术来提高计算机的整体性能。分布式组件对象模型(DCOM)由Microsoft®创建,用于跨多台计算机服务器分发Microsoft®软件组件。这项技术使服务器能够在公司内...

  • 发布于 2021-12-10 11:38
  • 阅读 ( 115 )