请输入您要查询的百科知识:

 

词条 BOINC
释义 BOINC(Berkeley Open Infrastructure for Network Computing,伯克利开放式网络计算平台)是目前主流的分布式计算平台之一,由加州大学柏克莱分校(University of California - Berkeley)电脑学系于2003年发展出来的分布式计算系统。它本身设计成用于SETI@home项目,但逐渐在其他领域包括数学、医学、天文学、气象学等。BOINC现时旨在为各研究者提供汇集全球各地大量个人电脑的强大运算能力。直至2008年1月25日,BOINC在全世界有约549,000台活跃的主机并平均提供约852TeraFLOPS (TFLOPS)的运算能力。

§ 什么是 BOINC ?

BOINC 的英语全称是 Berkeley Open Infrastructure for Network Computing,直接翻译成中文的意思是:伯克利开放式网络计算。

BOINC 是一个分布式计算平台,使得各种分布式计算项目能够使用一个平台软件来运行。不同于传统的分布式计算项目(比如SETI@home Classic,Folding@home)都有独立的内核和分布式程序,通过BOINC,协调不同的项目所能分配到的系统资源,都将变得非常方便。

BOINC 是由美国加利福尼亚大学伯克利分校(University of California - Berkeley)于2003年开发,通过多年时间、多个项目的测试,目前该平台已经较为成熟。伯克利方面之前曾成功运行 SETI@home 项目6年多,取得巨大成功,吸引了五百多万用户的参加,完成了两百万CPU小时的计算量。BOINC平台的开发,很重要的一个原因是为了吸引更多用户加入更多的其他由实际意义的分布式计算项目,比如气候变化,药物开发等。

BOINC 的前景非常客观,有可能发展成一种业界标准,有了 BOINC 平台,分布式计算的开发和推广工作变得更加容易简便。而统一的界面,统一的方式将会大大方便新加入分布式计算的用户,而不必研究每个不同项目的参与方法、积分算法等。

§ BOINC概述

BOINC是一个计算平台,对志愿者来说,它提供了一个统一的客户端程序,这个客户端本身并不进行实际的计算工作,只是提供了管理功能,在志愿者加入了 BOINC 平台上的计算项目后,客户端程序将自动下载新的任务单元,并调用相应项目的计算程序进行计算,如果参加了多个项目,它将自动在各个项目间按用户的设定来调配计算资源,在计算完成时,它还将自动地将计算结果上传,并同时取得新的计算单元。

通过多年时间、多个项目的测试,该平台已经较为成熟。伯克利方面之前曾成功运行 SETI@home 项目6年多,取得巨大成功,吸引了五百多万用户的参加,完成了两百万CPU小时的计算量。BOINC平台的开发,很重要的一个原因是为了吸引更多用户加入更多的其他由实际意义的分布式计算项目,比如气候变化,药物开发等。

BOINC 的前景非常可观,有可能发展成一种业界标准,有了 BOINC 平台,分布式计算的开发和推广工作变得更加容易简便。而统一的界面,统一的方式将会大大方便新加入分布式计算的用户,而不必研究每个不同项目的参与方法、积分算法等。

§ 如何加入BOINC

你输入URL需要向客户端提供的信息包括:项目网站的URL(告诉客户端你要添加哪个已注册的项目)、电子邮箱地址(告诉客户端你在这个项目的用户名,也就是你用来注册项目的邮箱地址)及你在这个项目设置的密码。

1. 下载 BOINC 软件并安装

下载地址参见扩展阅读。

2. 加入项目的地址 (URL)

用来告诉客户端你要参加什么项目,可以在BOINC官方网站看到,右键查看各个项目链接的属性就可以得到相应项目的URL,如右图。

注册3. 使用您的邮箱地址进行注册/计算

邮箱地址在这里相当于是帐号的用户名,并且这个邮箱将用来收取你的帐号密钥,并且需要设置一个登录密码,如右图。

§ BOINC客户端简介

Projects(项目)本计算机参加的BOINC项目列表,在项目中的帐号名称,参加的团队,总积分,近期平均积分,资源分享率。

Work(任务)当前正在处理的计算任务列表,可以看到CPU时间耗费,计算进度等信息。普通计算机只能同时运行一到两个任务,其它任务处于等待状态,客户端会在各个任务间按用户的设置来分配计算资源。

Transfers(网络传输)当前的网络传输列表,大多时候这个页面是没有内容的。

Messages(信息)相当于是程序的日志,可以看到很多详细的运行期信息,出错的时候多看看这里。

Statistics(统计)统计信息,程序运行个几天后就可以看到一些关于你的工作量的统计图表了。

Disk(磁盘)各个项目在本机中所占用的磁盘空间列表。[4]

§ 对计算机软硬件的影响

软件方面

分布式计算项目对计算机的使用与日常应用所运行的程序并无很大区别,主要区别是项目计算程序一般会以最低优先级别获得所有空闲的CPU时间,因为比起其他程序的优先级别都要低,所以虽然一般情况下计算项目看上去占用了全部的处理器资源,但一旦其他程序需要CPU运算时,项目计算程序会在操作系统的调度下自动让出CPU时间。

硬件方面

分布式计算项目所利用志愿者的硬件主要是CPU、内存和显示卡图形处理器(GPU)的闲置资源,并占用一些硬盘空间。由于各项目的差异性很大,所占用的内存和硬盘空间也分别很大。例如数学类项目对内存和硬盘的占用都比较少,而生命科学类的项目会占用较多内存与硬盘空间。

虽然运行分布式计算项目对计算机的硬件寿命并未多少缩减,但长期运行还是会带来一些影响,主要包括以下方面:

对主机板的影响

计算项目运行过程将有大量数据在各个部件交换,芯片组的使用率将提高,同时会带来一定的能耗和散热问题。

对CPU的影响

计算必然需要CPU的消耗运算功能,而此时CPU将全速进行工作,CPU所消耗的电力和产生的热量也随之大幅增加。

对内存的影响

运行计算程序需要占用一定的内存空间。如果计算机所配置的内存不多的情况下,运行计算程序将减少可用的内存空间,特别对于多路多核系统,每个CPU核心都将运行一个计算程序,此时所消耗的内存空间会倍增。BOINC平台用户可以通过本地参数设置来限制项目使用的CPU的数量。

对硬盘的影响

参加分布式计算项目须在硬盘储存客户端软件、计算程序、任务单元等资料,不同的项目对硬盘空间的需要有所不同,例如CPDN等气候项目需要比较多的硬盘空间,达到几百MB。 一般项目都不需要频繁的读写硬盘数据,但有些项目会需要较多的页面文件(虚拟内存)空间。

对显示卡的影响

不少项目有提供屏幕保护程序,所显示的图形会消耗一定的CPU与GPU的计算能力,同时带来电力消耗和散热问题。 利用GPU计算能力的项目有着与对CPU同样的影响,电耗和散热的问题。 另外由于调度GPU进行计算时需要到CPU的协助,会同时消耗一定的CPU计算时间。

对电源的影响

运行项目时CPU会消耗大量电力,特别对于超频使用的,请保证整机电力消耗在电源额定使用范围内。如果电源长期超负荷运作,将影响电源的寿命,而且电源的转换效率也会降低。电源的故障更会涉及其他所有部件的安全。

对显示器的影响

带屏幕保护程序的项目可以设置在计算机闲置是启用屏保,对于CRT显示器有一定的保护作用。但由于开启显示器即消耗电力,建议在计算机闲置时手动关闭显示器或者设置自动关闭显示器,以节省能耗。

对散热器的影响

运行计算程序将是计算机各个部件产生更多的热量。风冷散热器的风扇将以高速运转。风扇寿命会降低,同时计算机环境的灰尘会更快的囤积在风叶和散热片上,增加了清理灰尘的频率。 由于风扇的高速运转,将对环境带来更大的噪音。

对网络的影响

大部分项目对网络的需求都很低,计算程序和工作单元文件一般不大,在进行计算时一般都不需要网络连接。往后只需要下载新工作单元和上传计算结果。[2]

§ BOINC 的积分系统

积分主要用来衡量用户贡献的多少,大多数分布式计算项目或平台均提供了特定的积分系统,比如 SETI@home 项目在迁移至 BOINC 前的积分方式是记录完成的任务单元的数量。

BOINC 平台也有自己独特的积分系统,因为在 BOINC 平台上可以运行的项目千差万别,比如项目 A 的任务单元在某台机器里需要 3 个小时完成,而项目 B 的计算包在这台机器里需要 30 个小时才能完成,或者项目 A 本身的任务包的完成时间就有一定的浮动范围,显然,用任务单元的数目来衡量用户贡献的计算量不再可行;类似的,机器性能也有差别,用完成任务单元所需的 CPU 时间来衡量工作量也是不行的。

作为一个通用的计算平台,BOINC 平台的积分系统必须通过一定的算法才能较为准确地记录用户实际完成的计算量。

§ 原始的 BOINC 积分系统

BOINC 平台在发展前期采用的积分系统是综合下面几方面来完成的:

● 对计算机性能的基准测试

● 完成任务单元所耗费的 CPU 时间

● 不同用户完成同一任务单元的情况

具体地说,BOINC 客户端会定期地(一般是一周左右)在所运行的计算机上运行基准测试程序,对该计算机的整数及浮点计算能力做出一个评估。然后,客户端在完成分布式计算项目的任务单元后,也会记录下完成该任务单元所耗费的 CPU 时间。依据基准测试的结果和计算任务单元所用的时间,算出一个申请积分(Claimed Credit,具体算法见本站论坛中的这个主题),并在向项目的服务器上报计算结果的同时提交该申请积分的数值。

在大部分分布式计算项目中,项目服务端会将同一个任务包分发给多个用户进行计算,以保证计算结果的可靠性,BOINC 平台同样如此。对于同一个任务包,不同用户返回的计算结果中附带的申请积分一般都会各不相同,此时,项目的服务端一般会选取中间位置的申请积分做为最终的授予得分(Granted Credit)分别授予给完成这个任务单元的所有用户。

比如,对于 任务单元 X,用户甲、乙、丙都成功完成了该任务单元的计算,且申请积分分别是 9、11、12,则最终各个用户的得分都是 11 分。

但仍有部分分布式计算项目并不适用于这种冗余计算方式(比如一些蛋白质结构预测的项目),也就是说同一个任务单元只会分发给一位用户进行计算,在这种情况下,用户的申请积分就等于最终的授予积分了。

§ 改进的 BOINC 积分系统

原始的 BOINC 积分系统主要存在以下几方面的问题:

基准测试不准,尤其是跨操作系统平台时,比如同一台计算机分别安装 Windows 版本客户端和 Linux 版本的客户端,做出的基准测试结果可能就相差比较大。

容易导致作弊,从发展之初,BOINC 平台就开放了服务端和客户端的全部源代码,如果用户下载了客户端的源代码,自行编译的过程中修改或优化原有的基准测试代码,就可能导致他自制的 BOINC 客户端的基准测试成绩大幅偏高。

由上述对积分系统计算申请积分的说明,基准测试成绩的变化,就会导致任务单元申请积分的相应变化。对于有冗余计算的项目,这将导致平均授予积分的小量增加,而对于没有冗余计算的项目,这将直接导致授予积分的相应提高。

针对原始 BOINC 积分系统存在的问题,目前 BOINC 平台上的大部分主流计算项目(如 SETI@home、Einstein@Home 等)均采取了另外一种积分策略,在计算这些项目的任务单元时,客户端将不再根据自身基准测试的结果和完成任务单元所用的计算时间来计算申请积分的值,而是根据服务端预先指定的一个值作为申请积分,换句话说,也就是完成任务单元的计算所能得到的积分是由项目的服务端预先就决定好的。

目前仍有部分主流项目和大部分非主流项目,或是由于其计算的特性(如涉及到蛋白质结构预测的项目 Rosetta@home),或是由于所需的工作量暂时超出项目方的能力范围,导致了还无法采用这种在服务端预先指定任务单元积分的方式,而仍采用了原始或是进行了小幅改良(此处不再详述)的 BOINC 积分系统。

§ BOINC在中国

根据BOINC STATS的统计,BOINC在中国大陆的使用率处于较低的位置。而在台湾及香港,人均贡献率均较高。积分最高的国家为美国,达到47,116,057,426和德国(14,621,977,432)、英国、加拿大、法国、日本。

§ BOINC在大陆

在统计的所有265个国家的地区中,中国大陆的人均分数为0.6620,排名162;总积分为859,852,688,排名22(2009年8月31日13:33:21数据)。

§ BOINC在台湾

在统计的所有265个国家的地区中,台湾的人均分数为48.345,排名67;总积分为1,099,850,892,排名21(2009年8月31日13:33:21数据),领先于中国大陆。

§ BOINC在香港

在统计的所有265个国家的地区中,台湾的人均分数为55.722 ,排名62;总积分为381,984,180,排名33(2009年8月31日13:33:21数据),领先于中国大陆。

§ BOINC在澳门

在统计的所有265个国家的地区中,台湾的人均分数为15.818 ,排名90;总积分为7,043,408,排名113(2009年8月31日13:33:21数据),领先于中国大陆。

§ 相关条目

张大方

谢冬青

闵应骅

杨金民

郭卫锋

申煜湘

鲁春初

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/13 17:06:28