首页 常见问题 什么是分布式计算?

什么是分布式计算?

Jun 18, 2020 pm 03:50 PM
分布式

什么是分布式计算?

什么是分布式计算?

分布式计算是一种计算方法,和集中式计算是相对的,分布式计算是将该应用分解成许多小的部分,分配给多台计算机进行处理,这样可以节约整体计算时间,大大提高计算效率。

分布式计算定义

广义定义

研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。

最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算机的闲置计算能力,通过因特网,可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命;可以寻找超过1000万位数字的梅森质数;也可以寻找并发现对抗艾滋病病毒的更为有效的药物。这些项目都很庞大,需要惊人的计算量,仅仅由单个的电脑或是个人在一个能让人接受的时间内计算完成是绝不可能的。

中国科学院的定义

在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算比起其它算法具有以下几个优点:

1、稀有资源可以共享。

2、通过分布式计算可以在多台计算机上平衡计算负载。

3、可以把程序放在最适合运行它的计算机上。

其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。

网格计算

网格计算就是分布式计算的一种。如果某项工作是分布式的,那么,参与这项工作的一定不只是一台计算机,而是一个计算机网络,这种“蚂蚁搬山”的方式将具有很强的数据处理能力。

网格计算的实质就是组合与共享资源并确保系统安全。

工作原理

分布式计算是利用互联网上的计算机的中央处理器的闲置处理能力来解决大型计算问题的一种计算科学。下面,我们看看它是怎么工作的:

首先, 要发现一个需要非常巨大的计算能力才能解决的问题。这类问题一般是跨学科的、极富挑战性的、人类急待解决的科研课题。其中较为著名的是:

解决较为复杂的数学问题,例如:GIMPS(寻找最大的梅森素数)。

研究寻找最为安全的密码系统,例如:RC-72(密码破解)。

生物病理研究,例如:Folding@home(研究蛋白质折叠,误解,聚合及由此引起的相关疾病)。

各种各样疾病的药物研究,例如:United Devices(寻找对抗癌症的有效的药物)。

信号处理,例如:SETI@Home(在家寻找地外文明)。

在以前,这些问题都应该由超级计算机来解决。但是, 超级计算机的造价和维护非常的昂贵,这不是一个普通的科研组织所能承受的。随着科学的发展,一种廉价的、高效的、维护方便的计算方法应运而生——分布式计算!

随着计算机的普及,个人电脑开始进入千家万户。与之伴随产生的是电脑的利用问题。越来越多的电脑处于闲置状态,即使在开机状态下中央处理器的潜力也远远不能被完全利用。我们可以想象,一台家用的计算机将大多数的时间花费在“等待”上面。即便是使用者实际使用他们的计算机时,处理器依然是寂静的消费,依然是不计其数的等待(等待输入,但实际上并没有做什么)。互联网的出现, 使得连接调用所有这些拥有限制计算资源的计算机系统成为了现实。

那么,一些本身非常复杂的但是却很适合于划分为大量的更小的计算片断的问题被提出来,然后由某个研究机构通过大量艰辛的工作开发出计算用服务端和客户端。服务端负责将计算问题分成许多小的计算部分,然后把这些部分分配给许多联网参与计算的计算机进行并行处理,最后将这些计算结果综合起来得到最终的结果。

当然,这看起来也似乎很原始、很困难,但是随着参与者和参与计算的计算机的数量的不断增加, 计算计划变得非常迅速,而且被实践证明是的确可行的。目前一些较大的分布式计算项目的处理能力已经可以达到甚而超过目前世界上速度最快的巨型计算机。

您也可以选择参加某些项目以捐赠Cpu的内核处理时间,您将发现您所提供的 中央处理器 内核处理时间将出现在项目的贡献统计中。您可以和其他的参与者竞争贡献时间的排名,您也可以加入一个已经存在的计算团体或者自己组建一个计算小组。这种方法很利于调动参与者的热情。

随着民间的组队逐渐增多, 许多大型组织(例如公司、学校和各种各样的网站)也开始了组建自己的战队。同时,也形成了大量的以分布式计算技术和项目讨论为主题的社区,这些社区多数是翻译制作分布式计算项目的使用教程及发布相关技术性文章,并提供必要的技术支持。

那么谁可能加入到这些项目中来呢? 当然是任何人都可以! 如果您已经加入了某个项目,而且曾经考虑加入计算小组, 您将在中国分布式计算总站及论坛里找到您的家。任何人都能加入任何由我站的组建的分布式计算小组。希望您在中国分布式总站及论坛里发现乐趣。

参与分布式计算——一种能充分发挥您的个人电脑的利用价值的最有意义的选择——只需要下载有关程序,然后这个程序会以最低的优先度在计算机上运行,这对平时正常使用计算机几乎没有影响。如果你想利用计算机的空余时间做点有益的事情,还犹豫什么?马上行动起来吧,你的微不足道的付出或许就能使你在人类科学的发展史上留下不小的一笔呢!

BOINC分布式计算平台

BOINC是Berkeley Open Infrastructure for Network Computing的简称,即伯克利开放式网络计算平台。

BOINC是不同分布式计算可以共享的分布式计算平台。不同分布式计算项目可以直接使用BOINC的公用上传下载系统、统计系统等,这样不仅可以发挥各个分布式计算之间的协调性,也能使分布式计算的管理、使用更加方便易用。

BOINC项目由美国加州大学伯克利分校(U.C.Berkeley)主持发起。

BOINC项目由美国国家科学基金会(National Science Foundation)赞助。

BOINC有自己的积分系统,因为在BOINC上可以运行的项目千差万别,比如项目A的任务包(Workunit,简称WU)在某台机器里需要3个小时完成,而项目B的任务包在这台机器里需要30个小时才能完成,显然用WU的数目来衡量工作量是不可行的;类似的,机器性能也有差别,用CPU时间来衡量工作量更是不行的。积分系统只能通过一定的算法得到用户实际完成的计算量,这篇文章对BOINC中积分的计算方法进行了说明。

分布式计算在中国

据中国互联网信息中心(CNNIC)的统计信息,中文网民人数占世界的比重已经增长到了12%左右,并且还在快速增长着。这里所说的中文网民是包括大陆、香港、澳门、台湾和海外华人的。

相比于互联网在中国的快速发展,中国的分布式计算却发展缓慢。就我看来,网民数量的统计并不能十分客观地反映一个国家信息化程度的高低,而参与分布式计算网民的数量或比例却可以明显地看出这个国家科学普及化的水平。在这方面,毋庸置疑,欧美国家是十分领先的。在北欧国家,几乎一半的电脑参加了分布式计算项目,这是一个惊人的数字。再让我们来看看我们中国和印度,尽管我们拥有了不少最新科技,且看上去在网络普及化进程中有不错表现,但是在分布式计算方面却很薄弱。让我们来看些例子:

SETI@home是世界上最大的分布式计算项目。从中国的参与人数来看,它在中国也是最著名的项目。它通过使用联网的计算机下载程序分析射电望远镜所收到的讯号,来搜索地球外的生命迹象。

尽管中国在分布式计算中取得了进步,中国的国际排名从29上升到了24,但是我们中国用户却仍然只完成了日本用户完成的工作数的十分之一,而日本,这个高度发达的国家网民人数却少于中国。看来,提高网民素质、提高科学普及化程度也是十分重要的。印度和一些中东国家也有相似的问题,而中欧国家明显在这方面作得比较好,不少独联体国家所完成的数据量已经超过了俄罗斯联邦的总合。

Folding@home是一个研究蛋白质折叠,误解,聚合及由此引起的相关疾病的分布式计算工程。它使用联网式的计算方式和大量的分布式计算能力来模拟蛋白质折叠的过程,并指引我们对由折叠引起的疾病的一系列研究。

中国参加这个项目的人数在不断增多,截至2011年3月底,中国3213团队的用户数达到3025人,活跃用户有190人左右。

参与该项目 Climateprediction工程是把最新的气候预测模型通过家庭、学校、办公室的计算机来进行计算。这些计算完成的结果将会组成世界最大的气象预测模型。气候改变了,而我们对此的行动已经是全球重要的话题。这将影响到人类的农业生产、水资源量、生态系统、能源需求、保险花费和很多其他与人类息息相关的方面。确凿的科学依据表明,地球在在接下来的几个世纪可能会变得温暖,但是我们无法估计到底变化会有多大。如果您参加,这将能有助与21世纪的气候科学预测。

中国已经有了很多计算机,其中不乏性能极其先进的。而他们中的大多数仅仅是打字、播放幻灯而已。这不能不说是一种资源的浪费。

从另外一个角度看,我们不难发现发达国家和发展中国家的差距。我们把这种现象称为数字鸿沟。另一个现象同样令人痛心疾首,所有的分布式计算项目都是由发达国家,如:美国、德国、英国、日本等发起的,这一方面也加深了科学鸿沟。斯坦福大学化学系的戈尔哈姆·理查德·切尔曼教授说,分布式计算将加快整个人类的科学进程。科学家们可以完成以前从来想不到要去完成的,或者要花几十年几百年才能完成的计算任务。这是的确是千真万确的,但是这种计算从一定程度上助长了发达国家的科学垄断。

中国有关部门也开始意识到分布式计算的重要性,一些大学教授和科学家也开始钻研分布式计算科学,比如:中科院CAS@HOME和清华大学的“清水计划”。

推荐教程:《PHP

以上是什么是分布式计算?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何使用Redis实现分布式数据同步 如何使用Redis实现分布式数据同步 Nov 07, 2023 pm 03:55 PM

如何使用Redis实现分布式数据同步随着互联网技术的发展和应用场景的日益复杂,分布式系统的概念越来越被广泛采用。在分布式系统中,数据同步是一个重要的问题。Redis作为一个高性能的内存数据库,不仅可以用来存储数据,还可以用来实现分布式数据同步。对于分布式数据同步,一般有两种常见的模式:发布/订阅(Publish/Subscribe)模式和主从复制(Maste

Redis如何实现分布式会话管理 Redis如何实现分布式会话管理 Nov 07, 2023 am 11:10 AM

Redis如何实现分布式会话管理,需要具体代码示例分布式会话管理是当下互联网热门话题之一,面对高并发、大数据量的场景,传统的会话管理方式逐渐显得力不从心。Redis作为一个高性能的键值数据库,提供了分布式会话管理的解决方案。本文将介绍如何使用Redis实现分布式会话管理,并给出具体的代码示例。一、Redis作为分布式会话存储介绍传统的会话管理方式是将会话信

利用MongoDB实现分布式任务调度与执行的经验分享 利用MongoDB实现分布式任务调度与执行的经验分享 Nov 02, 2023 am 09:39 AM

MongoDB是一个开源的NoSQL数据库,具有高性能、伸缩性和灵活性的特点。在分布式系统中,任务调度与执行是一个关键的问题,通过利用MongoDB的特性,可以实现分布式任务调度与执行的方案。一、分布式任务调度的需求分析在分布式系统中,任务调度是将任务分配给不同的节点进行执行的过程。常见的任务调度需求包括:1.任务的请求分发:将任务请求发送给可用的执行节点。

如何使用Swoole实现分布式定时任务调度 如何使用Swoole实现分布式定时任务调度 Nov 07, 2023 am 11:04 AM

如何使用Swoole实现分布式定时任务调度引言:在传统的PHP开发中,我们经常会使用cron来实现定时任务调度,但是cron只能在单台服务器上执行任务,无法应对高并发的场景。而Swoole是一款基于PHP的高性能异步并发框架,它提供了完善的网络通信能力和多进程支持,使得我们能够轻松实现分布式定时任务调度。本文将介绍如何使用Swoole来实现分布式定时任务调度

Java开发实战经验分享:构建分布式日志收集功能 Java开发实战经验分享:构建分布式日志收集功能 Nov 20, 2023 pm 01:17 PM

Java开发实战经验分享:构建分布式日志收集功能引言:随着互联网的快速发展和大规模数据的涌现,分布式系统的应用越来越广泛。在分布式系统中,日志的收集和分析是非常重要的一环。本文将分享Java开发中构建分布式日志收集功能的经验,希望能对读者有所帮助。一、背景介绍在分布式系统中,每个节点都会生成大量的日志信息。这些日志信息对于系统的性能监控、故障排查和数据分析都

利用Redis实现分布式缓存一致性 利用Redis实现分布式缓存一致性 Nov 07, 2023 pm 12:05 PM

利用Redis实现分布式缓存一致性在现代分布式系统中,缓存起着非常重要的作用。它可以大大降低系统对数据库的访问频率,提高系统的性能和吞吐量。而在分布式系统中,为了保证缓存的一致性,我们需要解决多个节点之间的数据同步问题。在本文中,我们将介绍如何利用Redis实现分布式缓存一致性,并给出具体的代码示例。Redis是一个高性能的键值数据库,它支持持久化、复制和集

利用Redis实现分布式任务调度 利用Redis实现分布式任务调度 Nov 07, 2023 am 08:15 AM

利用Redis实现分布式任务调度随着业务的扩展和系统的发展,很多业务都需要实现分布式任务调度,以确保任务能够在多个节点上同时执行,从而提高系统的稳定性和可用性。而Redis作为一款高性能的内存数据存储产品,具备分布式、高可用、高性能等特点,很适合用于实现分布式任务调度。本文将介绍如何利用Redis实现分布式任务调度,并提供相应的代码示例。一、Redis的基

如何利用Redis实现分布式消息发布与订阅 如何利用Redis实现分布式消息发布与订阅 Nov 07, 2023 am 09:39 AM

如何利用Redis实现分布式消息发布与订阅引言:在分布式系统中,消息发布与订阅是一种常见的通信模式,可以实现不同模块之间的解耦。Redis作为一种高性能的键值对存储系统,可以用来实现分布式消息发布与订阅功能。本文将介绍如何使用Redis来实现这一功能,并提供具体的代码示例。一、Redis的发布与订阅功能Redis的发布与订阅功能是基于消息队列的一种实现方式。