分享

BOINC

 赵东华 2014-05-12

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

1平台简介编辑

BOINC是一个计算平台,对志愿者来说,它提供了一个统一的客户端程序
boinc

  boinc

,这个客户端本身并不进行实际的计算工作,只是提供了管理功能,在志愿者加入了 BOINC 平台上的计算项目后,客户端程序将自动下载新的任务单元,并调用相应项目的计算程序进行计算,如果参加了多个项目,它将自动在各个项目间按用户的设定来调配计算资源,在计算完成时,它还将自动地将计算结果上传,并同时取得新的计算单元。  通过多年时间、多个项目的测试,该平台已经较为成熟。伯克利方面之前曾成功运行SETI@home 项目6年多,取得巨大成功,吸引了五百多万用户的参加,完成了两百万CPU小时的计算量。BOINC平台的开发,很重要的一个原因是为了吸引更多用户加入更多的其他由实际意义的分布式计算项目,比如气候变化,药物开发等。 BOINC 的前景非常可观,有可能发展成一种业界标准,有了 BOINC 平台,分布式计算的开发和推广工作变得更加容易简便。而统一的界面,统一的方式将会大大方便新加入分布式计算的用户,而不必研究每个不同项目的参与方法、积分算法等。

2平台应用编辑

输入URL

  输入URL

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

下载安装

下载地址参见扩展阅读。

加入地址

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

  注册

邮箱注册

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

客户端

Projects(项目)计算机参加的BOINC项目列表,在项目中的账号名称,参加的团队,总积分,平均积分,资源分享率。
Work(任务)当前正在处理的计算任务列表,可以看到CPU时间耗费,计算进度等信息。普通计算机只能同时运行一到两个任务,其它任务处于等待状态,客户端会在各个任务间按用户的设置来分配计算资源。
Transfers(网络传输)当前的网络传输列表,大多时候这个页面是没有内容的。
Messages(信息)相当于程序的日志,可以看到很多详细的运行期信息,出错的时候多看看这里。
Statistics(统计)统计信息,程序运行几天后可以看到一些关于工作量的统计图表。
Disk(磁盘)各个项目在本机中所占用的磁盘空间列表。[1]

项目

项目名称
项目类型
项目说明
SETI@home[2]
天文科学
通过分析从射电望远镜传来的数据来搜寻地外文明
Astropulse
天文科学
SETI@home的子项目
World Community Grid[2]
AfricanClimate@Home
地球科学
非洲区域的气候模拟
Discovering Dengue Drugs
生命科学
针对登革热丙型肝炎西尼罗河病毒黄热病病毒发现有前途的药物先导化合物
Genome Comparison
生命科学
染色体对比研究
Help Conquer Cancer
生命科学
帮助科学家征服癌症
Help Defeat Cancer
生命科学
帮助科学家对抗癌症
Human Proteome Folding
生命科学
人类蛋白质折叠研究
Human Proteome Folding 2
生命科学
人类蛋白质折叠第2阶段研究
Help Cure Muscular Dystrophy
生命科学
针对肌肉营养失调和其他神经肌肉型疾病的研究
Nutritious Rice for the World
生命科学
针对水稻预测蛋白质结构的研究,以提高水稻产量
数学与计算机科学项目[2]
ABC@home
数学与计算机科学
寻找满足ABC猜想三元数组的分布
ABC@home beta
数学与计算机科学
ABC@home 的子测试项目
BOINC Alpha Test
数学与计算机科学
BOINC相关,BOINC平台软件测试项目
Chess960@home
数学与计算机科学
象棋算法测试
Crash Collection
数学与计算机科学
了解Windows操作系统上“程序没有响应”或者“异常关闭”的原因
DepSpid
数学与计算机科学
搜集网站结构数据
Enigma@home
数学与计算机科学
破解一个二战时期的密码
ESEA@home pa
数学与计算机科学
建立一个可行的分布式统计计算伯克利开放式网络计算平台
HashClash
数学与计算机科学
研究MD5算法的碰撞情况
Message@home
数学与计算机科学
BOINC相关,为BOINC平台是否适合用Perl语言开发做测试
NCSSM Grid
数学与计算机科学
网格计算研究
NQueens Project
数学与计算机科学
枚举N皇后问题的解
PrimeGrid
数学与计算机科学
关于素数的项目,有多个子项目
Project Neuron
数学与计算机科学
BOINC相关,观察和了解BOINC活性和数据,改进BOINC平台
Project Sudoku
数学与计算机科学
寻找最小唯一解数独
Ramsey@Home
数学与计算机科学
计算拉姆赛数
Rectilinear Crossing Number
数学与计算机科学
简称RCN,寻找平面化完全图最小交叉数
Resource Measurement
数学与计算机科学
分析计算机资源?
RieselSieve
数学与计算机科学
尝试找到Riesel质数
RND@home
数学与计算机科学
测试一个算法用尽量少的基站来覆盖尽量大的面积
SHA-1 Collision Search Graz
数学与计算机科学
SHA-1 密码分析
SZTAKI Desktop Grid
数学与计算机科学
找出所有直到 11 维的广义二进制数系
TMRL DRTG
数学与计算机科学
一种改进型的PreComputering Table,目的是为了提高成功率, 减少存储空间。已停止运行
TSP
数学与计算机科学
vtu@home
数学与计算机科学
BOINC相关,测试BOINC平台应用程序接口
WEP-M+2 Project
数学与计算机科学
寻找Mersenneplustwo因子
XtremLab
数学与计算机科学
探索如何增进其它项目的运算速度,提高网格计算的性能
项目名称
项目类型
项目说明
物理化学类项目[2]
BRaTS@home
物理和化学
Cosmology@home
物理和化学
天文计算宇宙模型
Einstein@Home
物理和化学
寻找引力波证据
Hydrogen@home
物理和化学
寻找生成氢的有效方法
Leiden Classical
物理和化学
目标是为科学家和学生创造一个平台,专用于一般古典动力学
物理和化学
模拟粒子在大型强子对撞机中运行从而研究其稳定性
LHC@home Alpha
物理和化学
LHC@home的子测试项目
MilkyWay@home
物理和化学
研究银河系的建模和深化
Nano-Hive@home
物理和化学
纳米尺度的实体世界的模拟
Orbit@home
物理和化学
计算出天空中所有直径>6公里的陨石的精确运行轨道
QMC@home
物理和化学
量子蒙特卡洛法研究
Spinhenge@home
物理和化学
增加对分子磁性领域的基本理解以期将其扩展到新的应用领域
The Clean Energy Project
物理和化学
寻找最佳的分子以实现用有机光电池来生产价格低廉的太阳能电池,用聚合物薄膜制造燃料电池
uFluids@Home
物理和化学
模拟微重力和微流体力学问题中的气/液两相流动现象
地球科学项目[2]
BBC Climate Change
地球科学
模拟1920到2080年的气候变化

地球科学
简称CPDN,预测21世纪气候的一项实验
CPDN beta
地球科学
的子测试项目
QCN Alpha Test
地球科学
利用笔记本内置的加速度感应器,研究地震学
Seasonal Attribution
地球科学
研究人类的工业活动对气候的影响
项目名称
项目类型
项目说明
生命科学类项目[2]
Docking@home
生命科学
探索多尺度性质的算法的修改蛋白质-配体对接
Folding@home
生命科学
蛋白质折叠过程研究
Malaria
生命科学
疟疾药物、疫苗开发研究
NNSIMU Project
生命科学
POEM@HOME
生命科学
预测蛋白质结构
Predictor@home
生命科学
研究蛋白质序列来预测蛋白质结构
Proteins@home
生命科学
蛋白质结构预测
GPUGRID
生命科学
原项目名是PS3GRID,现时需要PS3主机硬件或者支持CUDA的nVidia显卡系列
RALPH@home
生命科学
Rosetta@home的子测试项目
生命科学
增强预测和设计蛋白质结构及其复合体的技术的准确性
SIMAP
生命科学
探察蛋白质序列的相似性
Superlink@Technion
生命科学
研究基因的链接,来找出糖尿病高血压癌症精神分裂症等疾病的原因
TANPAKU
生命科学
蛋白质结构预测
其他类型项目[2]
BelgianBeer@home


BURP

动画渲染
Cunning Plan


Gerasim@home


DRTG
算法类项目
Distributed Rainbow Table Generator
Pirates@home

BOINC相关,为其它项目制作屏保的项目
RenderFarm@home
艺术类
分布式渲染
SciLINC

网络知识库(Alpha测试)
The Lattice Project

马里兰大学开发的网格计算系统,该系统整合了Globus、BOINC和其它一些软件组件
Translator@home
人工协助类
翻译不包含故事情节的非小说类书籍,翻译成果将在互联网上公布,并可免费自由地传输和阅读

积分系统

积分主要用来衡量用户贡献的多少,大多数分布式计算项目或平台均提供了特定的积分系统,比如 SETI@home 项目在迁移至 BOINC 前的积分方式是记录完成的任务单元的数量。
BOINC 平台也有自己独特的积分系统,因为在 BOINC 平台上可以运行的项目千差万别,比如项目 A 的任务单元在某台机器里需要 3 个小时完成,而项目 B 的计算包在这台机器里需要 30 个小时才能完成,或者项目 A 本身的任务包的完成时间就有一定的浮动范围,显然,用任务单元的数目来衡量用户贡献的计算量不再可行;类似的,机器性能也有差别,用完成任务单元所需的 CPU 时间来衡量工作量也是不行的。
作为一个通用的计算平台,BOINC 平台的积分系统必须通过一定的算法才能较为准确地记录用户实际完成的计算量。
原始的
BOINC 平台在发展前期采用的积分系统是综合下面几方面来完成的:
● 对计算机性能的基准测试
● 完成任务单元所耗费的 CPU 时间
● 不同用户完成同一任务单元的情况
具体地说,BOINC 客户端会定期地(一般是一周左右)在所运行的计算机上运行基准测试程序,对该计算机的整数及浮点计算能力做出一个评估。然后,客户端在完成分布式计算项目的任务单元后,也会记录下完成该任务单元所耗费的 CPU 时间。依据基准测试的结果和计算任务单元所用的时间,算出一个申请积分(Claimed Credit,具体算法见本站论坛中的这个主题),并在向项目的服务器上报计算结果的同时提交该申请积分的数值。
在大部分分布式计算项目中,项目服务端会将同一个任务包分发给多个用户进行计算,以保证计算结果的可靠性,BOINC 平台同样如此。对于同一个任务包,不同用户返回的计算结果中附带的申请积分一般都会各不相同,此时,项目的服务端一般会选取中间位置的申请积分做为最终的授予得分(Granted Credit)分别授予给完成这个任务单元的所有用户。
比如,对于 任务单元 X,用户甲、乙、丙都成功完成了该任务单元的计算,且申请积分分别是 9、11、12,则最终各个用户的得分都是 11 分。
但仍有部分分布式计算项目并不适用于这种冗余计算方式(比如一些蛋白质结构预测的项目),也就是说同一个任务单元只会分发给一位用户进行计算,在这种情况下,用户的申请积分就等于最终的授予积分了。
改进后
原始的 BOINC 积分系统主要存在以下几方面的问题:
基准测试不准,尤其是跨操作系统平台时,比如同一台计算机分别安装 Windows 版本客户端和 Linux 版本的客户端,做出的基准测试结果可能就相差比较大。
容易导致作弊,从发展之初,BOINC 平台就开放了服务端和客户端的全部源代码,如果用户下载了客户端的源代码,自行编译的过程中修改或优化原有的基准测试代码,就可能导致他自制的 BOINC 客户端的基准测试成绩大幅偏高。
由上述对积分系统计算申请积分的说明,基准测试成绩的变化,就会导致任务单元申请积分的相应变化。对于有冗余计算的项目,这将导致平均授予积分的小量增加,而对于没有冗余计算的项目,这将直接导致授予积分的相应提高。
针对原始 BOINC 积分系统存在的问题,BOINC 平台上的大部分主流计算项目(如 SETI@homeEinstein@Home 等)均采取了另外一种积分策略,在计算这些项目的任务单元时,客户端将不再根据自身基准测试的结果和完成任务单元所用的计算时间来计算申请积分的值,而是根据服务端预先指定的一个值作为申请积分,换句话说,也就是完成任务单元的计算所能得到的积分是由项目的服务端预先就决定好的。
仍有部分主流项目和大部分非主流项目,或是由于其计算的特性(如涉及到蛋白质结构预测的项目 Rosetta@home),或是由于所需的工作量暂时超出项目方的能力范围,导致了还无法采用这种在服务端预先指定任务单元积分的方式,而仍采用了原始或是进行了小幅改良(此处不再详述)的 BOINC 积分系统。

3使用率编辑

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

在大陆

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

在台湾

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

在香港

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

在澳门

在统计的所有265个国家的地区中,澳门的人均分数为15.818 ,排名90;总积分为7,043,408,排名113(2009年8月31日13:33:21数据)。[3]

4平台影响编辑

软件方面

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

硬件方面

分布式计算项目所利用志愿者的硬件主要是CPU、内存和显示卡图形处理器(GPU)的闲置资源,并占用一些硬盘空间。由于各项目的差异性很大,所占用的内存和硬盘空间也分别很大。例如数学类项目对内存和硬盘的占用都比较少,而生命科学类的项目会占用较多内存与硬盘空间。
虽然运行分布式计算项目对计算机的硬件寿命并未多少缩减,但长期运行还是会带来一些影响,主要包括以下方面:
对主机板的影响
计算项目运行过程将有大量数据在各个部件交换,芯片组的使用率将提高,同时会带来一定的能耗和散热问题。
对CPU的影响
计算必然需要CPU的消耗运算功能,而此时CPU将全速进行工作,CPU所消耗的电力和产生的热量也随之大幅增加。
对内存的影响
运行计算程序需要占用一定的内存空间。如果计算机所配置的内存不多的情况下,运行计算程序将减少可用的内存空间,特别对于多路多核系统,每个CPU核心都将运行一个计算程序,此时所消耗的内存空间会倍增。BOINC平台用户可以通过本地参数设置来限制项目使用的CPU的数量。
对硬盘的影响
参加分布式计算项目须在硬盘储存客户端软件、计算程序、任务单元等资料,不同的项目对硬盘空间的需要有所不同,例如CPDN等气候项目需要比较多的硬盘空间,达到几百MB。 一般项目都不需要频繁的读写硬盘数据,但有些项目会需要较多的页面文件(虚拟内存)空间。
对显示卡的影响
不少项目有提供屏幕保护程序,所显示的图形会消耗一定的CPU与GPU的计算能力,同时带来电力消耗和散热问题。 利用GPU计算能力的项目有着与对CPU同样的影响,电耗和散热的问题。 另外由于调度GPU进行计算时需要到CPU的协助,会同时消耗一定的CPU计算时间。
对电源的影响
运行项目时CPU会消耗大量电力,特别对于超频使用的,请保证整机电力消耗在电源额定使用范围内。如果电源长期超负荷运作,将影响电源的寿命,而且电源的转换效率也会降低。电源的故障更会涉及其他所有部件的安全。
对显示器的影响
带屏幕保护程序的项目可以设置在计算机闲置是启用屏保,对于CRT显示器有一定的保护作用。但由于开启显示器即消耗电力,建议在计算机闲置时手动关闭显示器或者设置自动关闭显示器,以节省能耗。
对散热器的影响
运行计算程序将是计算机各个部件产生更多的热量。风冷散热器的风扇将以高速运转。风扇寿命会降低,同时计算机环境的灰尘会更快的囤积在风叶和散热片上,增加了清理灰尘的频率。 由于风扇的高速运转,将对环境带来更大的噪音。
对网络的影响
大部分项目对网络的需求都很低,计算程序和工作单元文件一般不大,在进行计算时一般都不需要网络连接。往后只需要下载新工作单元和上传计算结果。[4]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多