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

加入者需要向客户端提供的信息包括:项目网站的URL(告诉客户端要添加哪个已注册的项目)、电子邮箱地址(告诉客户端在这个项目的用户名,即用来注册项目的邮箱地址)及加入者在这个项目设置的密码。
1. 下载 BOINC 软件并安装
下载地址参见扩展阅读。
2. 加入项目的地址 (URL)
用来告诉客户端需要参加的项目,可以在BOINC官方网站看到,右键查看各个项目链接的属性就可以得到相应项目的URL,如右图。

3. 使用您的邮箱地址进行注册/计算
邮箱地址相当于是帐号的用户名,并且这个邮箱将用来收取帐号密钥,并且需要设置一个登录密码,如右图。
BOINC客户端简介Projects(项目)计算机参加的BOINC项目列表,在项目中的帐号名称,参加的团队,总积分,近期平均积分,资源分享率。
Work(任务)当前正在处理的计算任务列表,可以看到CPU时间耗费,计算进度等信息。普通计算机只能同时运行一到两个任务,其它任务处于等待状态,客户端会在各个任务间按用户的设置来分配计算资源。
Transfers(网络传输)当前的网络传输列表,大多时候这个页面是没有内容的。
Messages(信息)相当于程序的日志,可以看到很多详细的运行期信息,出错的时候多看看这里。
Statistics(统计)统计信息,程序运行几天后可以看到一些关于工作量的统计图表。
Disk(磁盘)各个项目在本机中所占用的磁盘空间列表。[4]
BOINC 平台下的项目SETI@home
SETI@home(通过分析从射电望远镜传来的数据来搜寻地外文明

)
Astropulse(SETI@home的子项目)
World Community Grid
AfricanClimate@Home(地球科学类,非洲区域的气候模拟)
Discovering Dengue Drugs - Together(生命科学类,针对登革热、丙型肝炎、西尼罗河病毒和黄热病病毒发现有前途的药物先导化合物 )
FightAIDS@Home(生命科学类,寻找抗击 AIDS 的有效药物 )
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(生命科学类,针对水稻预测蛋白质结构的研究,以提高水稻产量 )
数学与计算机科学项目
ABC@home(寻找满足 ABC 猜想三元数组的分布 )
ABC@home beta(ABC@home 的子测试项目 )
BOINC Alpha Test(BOINC相关,BOINC平台软件测试项目 )
Chess960@home(象棋算法测试 )
Crash Collection(了解Windows 操作系统上“程序没有响应”或者“异常关闭”的原因 )
DepSpid(搜集网站结构数据 )
Enigma@home (破解一个二战时期的密码)
ESEA@home pa(建立一个可行的分布式统计计算伯克利开放式网络计算平台 )
Eternity2.net(设法解决 eternity II 未解之谜 )
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(探索如何增进其它项目的运算速度,提高网格计算的性能 )
物理化学类项目
BRaTS@home(引力透镜描绘 )
Cosmology@home(天文计算宇宙模型 )
Einstein@Home(寻找引力波证据 )
Hydrogen@home(寻找生成氢的有效方法 )
Leiden Classical(目标是创造一个平台,为科学家和学生,专用于一般古典动力学 )
LHC@home(模拟粒子在大型强子对撞机中运行从而研究其稳定性 )
LHC@home Alpha(LHC@home的子测试项目 )
MilkyWay@home(研究银河系的建模和深化 )
Nano-Hive@home(纳米尺度的实体世界的模拟 )
Orbit@home(计算出天空中所有直径>6公里的陨石的精确运行轨道 )
QMC@home(量子蒙特卡洛法研究 )
Spinhenge@home(增加对分子磁性领域的基本理解以期将其扩展到新的应用领域 )
The Clean Energy Project(寻找最佳的分子以实现用有机光电池来生产价格低廉的太阳能电池,用聚合物薄膜制造燃料电池 )
uFluids@Home(模拟微重力和微流体力学问题中的气/液两相流动现象 )
Zivis(研究在核聚变容器(托卡马克)里边的等离子体的流动 )
地球科学项目
BBC Climate Change(模拟1920到2080年的气候变化 )
ClimatePrediction.Net(简称CPDN)(预测21世纪气候的一项实验 )
CPDN beta(Climate Prediction.net 的子测试项目 )
QCN Alpha Test(利用笔记本内置的加速度感应器,研究地震学 )
Seasonal Attribution(研究人类的工业活动对气候的影响 )
生命科学项目
Docking@home(探索多尺度性质的算法的修改蛋白质-配体对接 )
Folding@home(无效,蛋白质折叠过程研究 )
Malaria Control.net(疟疾药物、疫苗开发研究 )
NNSIMU Project(神经网络模拟 )
POEM@HOME(预测蛋白质结构 )
Predictor@home(研究蛋白质序列来预测蛋白质结构 )
Proteins@home(蛋白质结构预测 )
GPUGRID(原项目名是PS3GRID,现时需要PS3主机硬件或者支持CUDA的nVidia显卡系列,有多个子项目 )
RALPH@home(Rosetta@home的子测试项目 )
Rosetta@home(增强预测和设计蛋白质结构及其复合体的技术的准确性 )
SIMAP(探察蛋白质序列的相似性 )
Superlink@Technion(研究基因的链接,来找出糖尿病、高血压、癌症、精神分裂症等疾病的原因 )
TANPAKU(蛋白质结构预测 )
未归类
BelgianBeer@home
BURP(动画渲染 )
Cunning Plan
Gerasim@home
Distributed Rainbow Table Generator(DRTG,算法类项目 )
Pirates@home(BOINC相关,为其它项目制作屏保的项目 )
RenderFarm@home(艺术类,分布式渲染 )
SciLINC(网络知识库(Alpha测试) )
The Lattice Project(马里兰大学(University of Maryland)开发的网格计算系统,该系统整合了Globus、BOINC和其它一些软件组件)
Translator@home(人工协助类,翻译不包含故事情节的非小说类书籍,翻译成果将在互联网上公布,并可免费自由地传输和阅读 )
yoyo@home(封装非BOINC平台项目到BOINC平台下运行,子项目有Distributed.net的OGR25、LifeMapper )
Zebra RSA Bf[1]
对计算机软硬件的影响软件方面
分布式计算项目对计算机的使用与日常应用所运行的程序并无很大区别,主要区别是项目计算程序一般会以最低优先级别获得所有空闲的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 积分系统。[3]
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数据)。[5]
BOINC项目相关● 有较大科学意义且稳定可靠的推荐项目
Einstein@home
LHC@home
Predictor@home
Rosetta@home
SETI@home
Similarity Matrix of Proteins
World Community Grid[7]
● 流行度
以下列出了所有 BOINCstats 支持的项目,根据其流行度进行排序。 本排名是基于 BAM! 用户对项目的评分[6]。
项目名称
项目状态
简介
1
SETI@Home
正式运行
寻找地外生命的射电证据
2
Rosetta@Home
正式运行
帮助研究人员寻找治疗人类疾病的方法
3
World Community Grid
正式运行
帮助寻找如艾滋等重大人类疾病的治疗方法
4
Einstein@Home
正式运行
搜寻脉冲星发出的引力波信号
5
Climate Prediction
正式运行
研究气候变化
6
LHC@Home
正式运行
辅助设计CERN的LHC粒子加速器
7
Spinhenge@home
Beta 测试
研究纳米磁性分子的物理特性
8
SIMAP
正式运行
用于各类生物学研究的蛋白质序列比较
9
Malaria Control
正式运行
模拟疟疾的传播和控制。(并不是在寻找新药物!)
10
QMC@Home
Beta 测试
研究在量子化学领域广泛使用的量子蒙特卡洛方法
11
BBC Climate Change
正式运行
对直至2080年的地球气候进行预测
12
Predictor@Home
正式运行
研究蛋白质相关的疾病
13
SETI@Home Beta
Beta 测试
SETI@Home的测试项目
14
Tanpaku
Alpha 测试
使用Brownian动力学方法预测蛋白质结构
15
MilkyWay@home
Alpha 测试
试图研究银河系的引力势。
16
PrimeGrid
Beta 测试
搜寻大质数和其它特形数
17
ABC@home
正式运行
寻找ABC猜想中的abc组合。
18
Proteins@home
Alpha 测试
大范围的蛋白质结构预测,我们也将由些更了解某些疾病及病理学。
19
Cosmology@Home
Alpha 测试
寻找最合适的模型以描述我们的宇宙,并通过相关实验数据确定其范围。
20
POEM@HOME
Alpha 测试
研究蛋白质的结构。
21
GPUGRID
Alpha 测试
进行全原子分子动力模拟及其它科学应用。
22
uFluids
Beta 测试
模拟微重力和微流体力学问题中的两相流动现象
23
Nano-Hive@Home
Beta 测试
精确模拟普通方法无法计算的大纳米系统,促成纳米领域的进一步研究。
24
RieselSieve
Beta 测试
寻找k*2^n-1形式的质数,以证明k=509203是最小的黎瑟尔数
25
BURP
Alpha 测试
三维动画渲染
26
SHA-1 Collision Search Graz
Alpha 测试
寻找SHA-1哈希算法中的碰撞。
27
Seasonal Attribution
正式运行
研究导致极端气候的人类因素
28
yoyo@home
Beta 测试
利用BOINC的封装技术将现有的分布式计算项目引入到BOINC平台。
29
Superlink@Technion
Alpha 测试
帮助全球的遗传学者寻找导致引发疾病的基因,比如糖尿病、高血压等。
30
Leiden Classical
正式运行
建立一个关于经典力学的所有人都可以使用的桌面计算网格。
31
Rectilinear Crossing No.
Alpha 测试
在平台上所有n个点中任意两点间连线最少会产生多少个交点?
32
Enigma@Home
Alpha 测试
解码二次世界大战中通过Enigma发送的原始消息。
33
Docking@Home
Beta 测试
研究蛋白质及其交互过程中原子层次的细节,且助于新药物的发现。
34
Artificial Intelligence
Alpha 测试
35
Hydrogen@Home
Alpha 测试
研究氢能源的清洁生产技术。
36
IBERCIVIS
Alpha 测试
37
XtremLab
Alpha 测试
测量网格计算中可以获取的个人计算机资源
38
SZTAKI Desktop Grid
正式运行
找出所有直到11维的广义二进制数系
39
Chess960@Home
Alpha 测试
研究Chess960的开局理论并构建一个巨大的棋局数据库。
40
Climateprediction.net Beta
Alpha 测试
CPDN的测试项目。
41
RALPH@Home
Alpha 测试
Rosetta@Home的测试项目
42
Orbit@Home
Beta 测试
研究太阳系动态
43
The Lattice Project
Beta 测试
类似于WCG,包含多个生物信息类的子项目。
44
Pirates@Home
Alpha 测试
I2U2的测试项目
45
Sudoku project
Alpha 测试
46
DepSpid
Alpha 测试
分布式的网络爬虫,建立网站关系数据库,收集网站结构统计数据。
47
APS@Home
Alpha 测试
研究大气弥散,因为它关系到气象预报的精确度。
48
DistrRTgen
Alpha 测试
不明
49
BOINC Alpha Test
Alpha 测试
用于BOINC的测试项目
50
AQUA@home
Alpha 测试
51
Virtual Prairie
Alpha 测试
52
Genetic Life
Alpha 测试
53
FreeHAL
Alpha 测试
54
3x+1@home
Alpha 测试
55
MindModeling@Home
Beta 测试
56
Magnetism@home
Alpha 测试
57
Project Neuron
Beta 测试
测试BOINC框架。
58
NQueens Project
Alpha 测试
试图解决象棋中的N皇后问题。
59
RND@home
Alpha 测试
研究电信中的网络覆盖问题。
60
TSP
Alpha 测试
寻找48个城市的旅行商问题。
61
Reversi
Alpha 测试
62
VTU@Home
pre-Alpha 测试
63
WEP-M+2 Project
Alpha 测试
使用WEP算法对2^p+1进行因式分解
64
ABC@home beta
Beta 测试
寻找ABC猜想中的abc组合。
65
BRaTS@Home
Alpha 测试
进行引力波束追踪的相关计算。
66
Quake Catcher Network
Alpha 测试
67
Ramsey@Home
Alpha 测试
68
Cels@Home (old)
Alpha 测试
69
DrugDiscovery@Home
Alpha 测试
70
UCT Malaria
Alpha 测试
● BOINC项目之最
最早的boinc平台项目——SETI
参与人数最多的项目——SETI
期限最长的项目——CPDN
平均CPU时间得分最多(得分最快)的项目——cosmology
给分最快捷的项目——QMC
计算时间最长的项目——cpdn
计算时间最短的项目——xtremlab
占用内存最大的项目——Rosetta
占用内存最少的项目——RCN、Yoyo
计算出错率最高的项目——cosmology
保存点(savepoint)间隔最长的项目——cpdn
保存点(savepoint)间隔最短的项目——QMC
运行时间与CPU时间差距最大的项目——xtremlab
计算结果错误而唯一能得分的项目——Rosetta
申请积分(claimed credit)和给予积分(granted credit)得分相差最大的项目——ABC
任务包最大的项目——simap(1.84MB/个)
任务包最小的项目——RieselSieve
计算结果最大的项目——CPDN(分几次上传,每次约16M)
计算结果最小的项目——RCN[8]