BOINC:使用教程

来自中国分布式计算总站
Youth讨论 | 贡献2008年7月17日 (四) 20:33的版本 →‎安装
跳转到导航 跳转到搜索

本文主要讲述 BOINC 客户端的安装及使用方法,也包括项目网站的用途,客户端的安装使用针对Windows平台的用户,Linux平台的用户请阅读论坛中的相关主题。

BOINC 概述

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

下载 BOINC 客户端

下载和安装 BOINC 客户端

下载

  1. 在浏览器中打开:http://boinc.berkeley.edu/download.php
  2. 该页面将根据您的计算机平台自动显示相应版本的客户端软件,点击“下载 BOINC”,将其下载至本地计算机
  3. 如果您需要的不是自动显示的版本,请点击“所有版本”,进入完整的下载列表页面,该页面根据操作系统平台分类,每个类别一般都包含有 Development version(开发版本,)、Recommended version(推荐版本)和 Older version(旧的推荐版本),一般建议使用 Recommended version(推荐版本)。

安装

安装 BOINC 客户端时的设置
  1. 运行下载好的 BOINC 安装文件,其名称应该类似于 boinc_x.y.z_windows_intelx86.exe,其中的 x.y.z 为软件版本号,windows 和 intelx86 为计算机平台的标识
  2. 安装程序启动后,一般用户按照缺省的设置进行安装即可
    1. 出于安全性的考虑,客户端将会安装至计算机的两个文件夹(在 BOINC Configuration 这一步显示),客户端自身的程序文件(Program directory,程序目录)和客户端的运行数据(Data directory,包括将要下载的计算项目程序及数据)是分开保存的,可根据您的需要在点击 Advanced(高级)按钮后对这两个文件夹的位置进行定制
    2. 安装程序的缺省设置中包含了 Protected application execution,出于安全性考虑,建议不要修改该设置
  3. 安装操作完成后,安装程序将自动运行客户端的管理界面,且缺省使用的是客户端的简易视图,同时会显示“加入项目”的向导对话框,直接点击取消即可,稍后我们再通过统一的步骤来加入项目。

卸载

  1. 依次点击“开始菜单->控制面板”,运行其中的“添加/删除程序”,找到 BOINC,点击右边的“卸载”按钮,根据提示完成卸载即可。
  2. 卸载操作完成后,BOINC 客户端运行过程中产生的数据还是保存在计算机上的,一般占用的空间不大,建议保留。

重装或升级

  1. 如在卸载客户端后想要重新安装,请直接运行客户端的安装程序,并使用原有的安装路径,安装程序将自动进行覆盖安装,如果在卸载之后没有手动删除过运行数据,这些数据将不会丢失。
  2. 如要将客户端升级至更新的推荐版本,请直接运行新的客户端安装程序,根据提示(一般按缺省设置就即可)进行安装,安装程序将自动进行覆盖安装,所有运行数据将不会丢失。
选择一个项目

加入 BOINC 平台上的分布式计算项目

说明:

  • BOINC 只是计算平台,该平台的各个计算项目的服务器和运行数据都是各个项目方独立维护的,因此,对于您要加入的每个项目,您都需要分别进行注册
  • 对于任何一个项目,您可以在多台计算机上使用这个项目的同一个帐户进行计算
  • 建议在所有的项目中都使用相同的注册信息,方便管理

加入项目的步骤:

  1. 点击 Add Project 按钮(如当前使用的是客户端的高级视图,请依次点击菜单中的“工具->加入项目”)
  2. 客户端将显示一个项目列表窗口
  3. 在列表中找到您想要加入的项目,单击选中后,再点击下一步
  4. 之后根据您是否已加入过这个项目,分为两种情况:
注册新帐户或者登录现有帐户
初次加入的项目:
选择“没有,我是新用户”
输入电子邮件地址(作为用户 ID)
设定帐户密码(不是电子邮件的密码)
已注册过的项目:
选择“是的,我已经注册过了”
输入之前注册时所用的电子邮件地址和设定的帐户密码。

点击下一步后,客户端将与项目的服务端进行通讯

  • 如显示“已加入到项目”,即表示你已经成功在这台计算机上加入该项目。
  • 如显示其它错误提示信息,请根据情况进行处理。

加入项目后,任务单元的下载、计算和上传都将是自动完成的,一般都不需要用户的手动干预,您大可不必去理会它:)

BOINC 客户端界面说明

客户端主要包括前端管理界面(窗口名为 BOINC Manager,程序名为 boincmgr.exe)和后端调度程序(无窗口,程序名为 boinc.exe),用户需要使用到的只是 BOINC Manager。

BOINC Manager 提供了多种使用界面给用户,本文主要介绍其中的简易视图高级视图,两种视图可通过使用界面中的按钮或菜单互相切换。

客户端的简易视图

简易视图

简易视图适用于一般用户,使用界面相对高级视图要更为简洁、漂亮,其中由上到下主要包括如下内容:

选项卡
可用于在当前运行的任务单元间进行切换。
任务单元信息
可查看相应项目的图片(如果项目有屏保图形,可点击查看)、任务单元的计算进展情况。
我的项目
显示该客户端所有已加入的项目,以图标形式来显示,点击项目图标,将弹出该项目的功能菜单,另外右上角的Add Project 按钮可用来加入新的项目。
功能按钮
Messages 用于查看客户端的日志消息,Pause 用于暂停客户端的计算,Preference 用于客户端的本地参数设置(可配置的选项较少,完整的本地参加设置请通过高级界面来访问),Advanced View 用于切换至客户端的高级视图。

高级视图

高级视图下用户可对客户端进行更全面的运行情况查看和参数设置。

客户端的高级视图

选项卡

高级视图下的窗体主要由六个选项卡页面组成,各个选项卡页面以表格或图表的形式显示客户端的运行情况,随着选项卡页面的切换,窗体左边的命令按钮也相应更新,可用于执行选项卡页面相关联的操作(鼠标移上的时候会有操作内容的详细提示)。

项目
本计算机参加的项目列表,在项目中的帐户名称,加入的团队,总积分,近期平均积分,资源分享率。
通过命令按钮可更新、暂停、重置或退出当前选择的项目,也可设置是否允许下载该项目的新任务单元。
任务
当前正在处理的任务单元列表,可以看到耗费的 CPU 时间,计算进度等信息。普通计算机只能同时运行一到两个任务,其它任务处于等待状态,客户端会在各个任务单元间按用户的设置来调配计算资源。
通过命令按钮可以暂停或中止当前选择的任务单元,如相应项目有屏保图形,也可通过命令按钮来显示。
网络传输
当前的网络传输列表,大多时候这个页面是没有内容的。
通过命令按钮可重试失败的网络传输、中止当前选择的网络传输(一般会导致任务单元出错,谨慎!)
消息
相当于是程序的日志,可以看到很多详细的运行期信息,出错的时候多看看这里:)
通过命令按钮可将消息复制出来,可粘贴到论坛主题中,用于求助、讨论。
统计
统计信息,程序运行个几天后就可以看到一些关于你的工作量的统计图表了。
通过命令按钮在切换统计信息的显示方式。
磁盘
各个项目在本机中所占用的磁盘空间列表。
此页仅查看,无命令按钮可用。

菜单功能

文件
关闭窗口、退出 BOINC Manager。
视图
简易视图、高级视图间的切换
工具
加入项目、加入帐户管理器
活动
切换客户端对处理器及网络的使用状态。
高级
参数设置、远程管理、基准测试等。
帮助
访问官方帮助页面,查看版本信息等。

系统图标

用鼠标右键点击该图标,主要功能有:

  • 打开 BOINC Manager 程序界面(也可以左键双击打开)
  • 休息一下(暂停客户端计算一小时)
  • 查看版本信息等。

BOINC 参数设置

客户端的本地参数设置

本地参数设置

客户端的本地参数设置仅应用于当前计算机,且优先级高于项目网站上的设置,包括如下三部分内容:

  • 处理器使用,主要设置:是否在使用计算机时进行计算,是否在电池供电时进行计算(笔记本),最多可使用计算机多少比例的处理器数量,最多可使用多少比例的处理器资源。
  • 网络使用,主要设置:额外的任务缓存,可用于在客户端下载更多的任务单元(屯粮)。
  • 磁盘和内存使用,主要设置:内存使用,缺省的比例设置比较低,如果内存够用,可适当调高,以免部分项目因内存不够用而无法完成计算。

项目网站

项目网站可完成帐户信息维护、团队管理、参数设置这几方面的任务。

帐户信息维护

帐户信息主要有:用户名(即显示在客户端和统计网站上的用户名称)、电子邮件地址、所属国家或地区、网址等。

帐户信息在项目的个人页面进行维护,其网址一般是在主页地址后面加上 /home.php,比如:

SETI@home: http://setiathome.berkeley.edu/home.php
Einstein@home: http://einstein.phys.uwm.edu/home.php

也可直接从项目主页上点击“您的帐户”或是“Your Account”来访问,初次进入该页面需要输入该项目的注册帐户信息(电子邮件地址及项目的注册密码),如果输入的时候同时选择保存登录信息的话以后就可以直接访问了。

团队管理

团队是由用户组成的群体,拥有团队名称、总积分等属性,用户可自由加入和退出。

加入团队对用户的积分没有任何影响,但加入团队后,用户所得到的新积分,用户所属的团队也能得到同样的积分,离开团队后或者换到其它团队,贡献给原团队的积分不带走。有一个例外是 CPDN,该项目中用户的所有积分都是贡献给当前所在团队的,可以带着跑:)

本论坛各个 BOINC 项目的主力团队均为 Team China,推荐大家加入。

加入团队的方法: 在各个项目的官方网站都可以搜索相应项目的团队,进入团队的页面后,有个 Join(加入)的链接,点击后即可加入该团队(可能需要先进行登录)。而客户端在下一次与服务器通讯后即可正确显示用户的团队信息。

参数设置

客户端的本地参数设置,只能应用于所设置的计算机,而在网站上针对客户端进行的设置,会自动应用到所有客户端上,但其优先级是低于客户端的本地参数设置的。

项目网站上的参数设置

同样是在上面提到的个人页面,在帐户信息下面的参数设置部分就是了,分为三个部分:

  • 计算参数设置,可在各个项目间通用的参数设置,同一台机器如果参加了多个项目,最后修改过通用参数的项目的通用参数将会被自动复制到机器上其它的项目,如果某台客户端进行了本地参数设置,刚在该台客户端上将忽略此处的设置
  • 社区参数设置,针对项目的论坛的,仅对当前项目有效。
  • 项目参数设置,针对这个项目的参数设置,也是仅对当前项目有效
计算参数设置

进入后有个 default(缺省)的配置方案,里面大部分设置缺省就可以了,有几项可能需要进行修改的(内容和客户端的本地参数设置类似):

  • Processor usage(处理器使用)
    • Suspend work while computer is on battery power? 是否在电池供电的情况暂停计算,对本本用户有用。
    • Suspend work while computer is in use? 是否在使用计算机的时候暂停计算,同时还可以设置几分钟不对计算机进行操作才启动计算程序('In use' means mouse/keyboard activity in last)。
    • Leave applications in memory while suspended? 是否在计算程序被暂停的时候将程序留在内存中,推荐设置为yes,这样可以避免因为没到下一个存盘点随程序关闭而丢失部分计算进度。
    • On multiprocessors, use at most __ % of the processors 在多处理器计算机上,最多使用多少比例的处理器数量。
    • Use at most __ percent of CPU time 最多占用多少比例的处理器资源
  • Disk and memory usage(磁盘和内存使用)
    • Use at most __ % of memory when computer is in use 当计算机正在使用时,最多使用多少比例的内存
    • Use at most __ % of memory when computer is not in use 当计算机未在使用时,最多使用多少比例的内存
  • Network usage(使用)
    • Maintain enough work for an additional 下载额外的任务单元(单位为天,表示可满足多少天的计算量),如果日常上网没什么问题的话,不建议设置太长,缺省即可,以避免WU过期,因为BOINC里面过期的计算结果是不能获得积分的。另外,这也就是传说中的屯粮大法了:)

如果你有多台机器,而且希望对不同的计算机采用不同的配置方案,那么可以以default为模板添加home/work/school等几种配置方案(Add separate preferences for home/work/school)。

如果你已经配置了多个方案,那么怎么将配置方案应用到某台机器上呢?回到“您的帐户”页面,有一个“本帐户所属的计算机”链接可以查看你参与到项目中的所有计算机,进入相应的计算机的页面,在最下部可以修改计算机的location(位置)即可。

社区参数设置

这部分主要设置项目短消息和项目留言板的参数。

  • Notifications
    • How should we notify you of new private messages, friend requests, posts in subscribed threads, and other events? 方便的话可设置成电子邮件通知,可以更及时地收到 个人消息/好友请求/主题更新 等消息。
  • Message-board identity
    • 可以设置在项目留言板中的显示方式和签名档之类的,不详细解释了。
项目参数设置

有一个比较重要的是 Resource share(资源分享率),这里就是前面提到的分配CPU处理能力给各个项目的地方了。

如果你只参加一个项目,那不管怎么设置,CPU 都是全部分配给这个项目的。
如果你参加了两个项目,相应的 Resource share 分别是 100 和 50,则 CPU 的处理能力按 2:1 的比例调配给两个项目。
注意这里 Resource share 的具体数字并不重要,重要的是其相互间的比例。

另外一个参数(Should $项目名称$ show your computers on its web site?)可以设定是否允许其他用户看到你的计算机列表及软硬件配置情况,缺省是 yes,如果不希望给别人看到这些信息,请修改为 no。

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@homeEinstein@Home 等)均采取了另外一种积分策略,在计算这些项目的任务单元时,客户端将不再根据自身基准测试的结果和完成任务单元所用的计算时间来计算申请积分的值,而是根据服务端预先指定的一个值作为申请积分,换句话说,也就是完成任务单元的计算所能得到的积分是由项目的服务端预先就决定好的。


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

BOINC 统计、签名网站

BOINC 作为一个通用计算平台,允许各个计算项目以统一的格式向外输出项目的运行信息,因此就有了一些专门收集这些运行信息并进行分析、统计的网站,可以跨项目的对用户、国家或地区、团队等进行综合的排名等,同时一般也提供了根据用户、团队的统计信息制作动态更新的签名图片的功能。

常用的统计网站有:


本文重点介绍第一个即 BOINCstats,除统计功能齐全,还实现了 BOINC 平台的帐户管理器(即 BAM!),另外,也提供了本地化接口,其简体中文版本一直是由本站在进行更新维护。其它几个网站的基本使用方法类似。

Boincstats.PNG

BOINCstats

该网站不需要注册用户也可以使用统计和签名的基本功能,但如要使用该网站的完整功能(比如对签名进行定制或者使用帐户管理器)就必须得注册用户了,注册用户时所需要的资料和注册 BOINC 平台上的计算项目相同,也是用户名称、电子邮件地址、注册密码,建议使用统一的注册信息。

统计

主页左边显示了所有 BOINC 平台的项目列表,点击任一项目,即可查看项目、用户、主机、团队、国家或地区等的排名。

签名

注册用户
在该网站主页左上方的“BAM 菜单->BOINCstats”中即可查看、设置签名图片。
未注册用户
按您使用的用户名称搜索,点击搜索结果右边的放大镜图标,可进入该用户的团队项目一览页面,可根据需要查看用户的合并统计或单独项目的详细信息,然后就可见到签名图片的网址了。
(可参考该网站上的“怎么创建我自己的签名图片?”)。

BAM!

帐户管理器的使用详见帐户管理器页面。

其它

推荐阅读 BOINCstats 常见问答

BOINC 高级应用

选择计算机

远程管理

被管客户端

客户端在安装完成后,即会在安装目录下生成 gui_rpc_auth.cfg,其中保存的就是用于远程管理的密码,可根据需要修改,修改后必须退出并重新运行整个客户端(如果是安装为服务模式的话,需要在“控制面板->管理工具->服务”中重启 BOINC服务,如果是一般模式安装的话,只要将 boincmgr.exe退出并重运行就可以。)。

但仅凭密码是无法远程管理的,必须是被管客户端设置成愿意被某些指定的远程客户端管理,方法:

在被管客户端的安装目录下新建一个文本文件,取名为 remote_hosts.cfg,在其中设定允许从远端连接该客户端的主机IP地址或网络名(推荐前者),格式很简单,一行设定一台主机即可。

注意:被管机器如果安装并使用了软件防火墙,必须打开 31416 端口。

管理客户端

然后远程主机在 BOINC Manager 中选择菜单中的“高级->选择计算机...”,然后输入被管机器的 IP 地址及连接密码并点击确定就可以了。

查看任务单元的完成情况

客户端会自动完成任务单元的下载、计算和上传,但有时候我们仍希望知道任务单元的计算结果是否成功,方法如下:

  1. 访问项目网站的“您的帐户”(Your Account)
  2. 点击“计算和积分情况”下的“任务 查看”(Tasks View )或者“本帐户所属的计算机 查看 ”(Computers on this account View ),前者用于查看您近期完成的所有任务单元,后者可以按您的计算机来分类查看(适合于计算机数量不止一台的情况)
  3. 查询结果以表格形式显示,如数量较多将分页进行显示,根据任务单元的下载(sent)或上报时间(Time reported)或任务单元名称(Work unit ID),找到你希望查询的任务单元
  4. 可重点查看的任务单元属性有:
OutComes
Success 表示计算完成,Unknown 表示没有收到客户端返回的结果,Client Error 表示计算过程出错,Validate Error 表示结果验证错误
Client stats
New 表示还在计算中,Done 表示已计算完成
CPU Time
表示计算该任务单元所耗费的 CPU 时间
claimed credit
客户端为该任务单元申请的积分
granted credit
服务端授予该任务单元的积分,如显示 pending 表示任务包还未完成验证。

参考资料

  1. BOINC 5.x 新手指南
  2. BOINC 中的远程管理及用户认证

相关链接

  1. 如果您对 BOINC 的使用及本文的内容有任何疑问,请访问本站论坛的 BOINC 平台讨论区,并提出您的问题
  2. 如果您发现本文内容有任何错误,请访问本站论坛的 Wiki 系统讨论区,并告诉我们您发现的错误
  3. 本站论坛的 BOINC 教程(介绍&答疑&安装&设置)资料大汇集