鲜明对比:分布式计算与并行编程

日期: 2013-03-31 作者:Jason Tee翻译:谨萱 来源:TechTarget中国 英文

分布式计算和并行编程的差异是一种常见的混乱,因为当你着手完成在服务器、网络和软件开发上的绩效目标时,这两者之间有大量的重叠。那有什么差异呢?在基本水平上,分布式计算和并行编程仅仅是描述性术语,指的是在运行时把工作完成的方式(如并行处理,另一个常常与分布式计算和并行编程两者混为一谈的术语)。在这些术语精确和包罗万象的定义上,你可能永远得不到一群开发商的同意。但是我们给你描绘一些重要的地方,让你能够理解他们所说的企业计算世界。

  分布式计算基础   无论何时,一个负载分布在两个或更多的计算设备上,或者通过不同类型的网络连接的计算机,这就是分布式计算。有各种各样的方法来做到这一点。当一个客户端设备……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

分布式计算和并行编程的差异是一种常见的混乱,因为当你着手完成在服务器、网络和软件开发上的绩效目标时,这两者之间有大量的重叠。那有什么差异呢?在基本水平上,分布式计算和并行编程仅仅是描述性术语,指的是在运行时把工作完成的方式(如并行处理,另一个常常与分布式计算和并行编程两者混为一谈的术语)。在这些术语精确和包罗万象的定义上,你可能永远得不到一群开发商的同意。但是我们给你描绘一些重要的地方,让你能够理解他们所说的企业计算世界。

  分布式计算基础

  无论何时,一个负载分布在两个或更多的计算设备上,或者通过不同类型的网络连接的计算机,这就是分布式计算。有各种各样的方法来做到这一点。当一个客户端设备,比如一台个人电脑、智能手机或平板电脑,可以处理一部分工作时,这是客户端-服务器的分布式计算。一个三层体系架构有一个中间层参与,正如许多web应用程序一样,因此,客户端可以是无状态的,服务器不需要记住每个客户的信息或每个会话。点对点架构中每个组件或机器能力等同并且负责执行任何要求的任务,集群架构还有多个机器并行运行一个进程,这两个架构是另外一些例子。网格计算和云计算是分布式计算的两个广泛子集。

  并行编程基础

  这个术语通常是指软件代码,它促进在同一时间执行多个计算任务的性能。这有点像有一个操场上有20个滑梯而不是一个。孩子们不必排队等待轮到自己,因为他们可以同时玩。你可以使用电脑鼠标,一边听在线广播,一边更新电子表格中的信息,并对你的个人电脑做病毒扫描,这唯一的理由就是并发编程。在这种情况下,它的多重任务允许多个程序或进程访问CPU而没有等待。这一设置允许使用多任务共享的资源进行密集的I/O处理和有效的信号处理。并发性也可以通过实施多个计算线程发生(通常采用交错启动和完成点)。这叫做多线程,并且它发生在一个单一的进程或程序中。这就是为什么你可以打印一个文档,同时继续编辑另一个文档。如果没有多线程,UI会太慢,因为系统将无法在同一时间应对多个用户操作。

  两者的差异和重叠

  所有分布式系统必须,通过其本身的性质,利用某种形式的并行编程,否则他们无法完成任何事情。在一个非常简单的层面上,你可能会说,分布式计算主要是基础设施、物理或虚拟化,而并发编程是在应用程序层实现。两者都是用来利用可用资源并提高性能。

  Java中的分布式计算和并行编程

  不用惊讶,Java提供了一种编程语言、类库、API、架构和其他工具并且同时支持分布式计算和并行编程。DJVM,分布式Java虚拟机,在服务器端允许并行处理一个多线程Java应用程序来提高计算性能,同时使分布式的环境可以通过一个单一的接口访问。自从企业应用程序期望利用分布式计算,对于依赖Java的组织来说Java EE是天然的选择平台。Java语言本身和可用的Java库都可通过API支持并发编程,例如那些java.util.Concurrent包。如果你真的想深入挖掘分布式计算如何使用JVM,请回顾我们先前的文章“Distributed Computing Made Easy”,Server Side网站的Jonas Boner所写。它始于2006年,但至今其基本原则仍然适用。

  这些技术的未来会怎样?

  对于计算能力和更好的性能需求只会增加。云、移动和大数据都在创造企业能够并且应该每时每刻管理大量信息的期望中扮演一个角色。我们可以看到越来越多的框架和工具使其更容易。拥有MapReduce的Hadoop结合了分布式计算和并行编程的一些最好的特征,把大量的并行编程注入良好的措施中。《Hadoop in Action》一书的作者Chuck Lam说,这个技术已经颇具规模,并且准备进一步发展。

  “我认为现在的基础设施已经很成熟。你甚至可以获取Hadoop并很容易地运行在Amazon上,因为他们引进了Elastic MapReduce。对于开发者社区来说,所感兴趣的是开始探索应用程序层。许多公司现在有某种Hadoop集群,可以处理任何类型的数据。现在重要的是弄清楚如何利用这些数据来得到一些商业价值。”那么,未来不会只是提高计算性能,也将是提升企业的性能。

相关推荐