BOINC:使用教程
本文主要讲述 BOINC 客户端的安装及使用方法,也包括项目网站的用途,客户端的安装使用针对Windows平台的用户,Linux平台的用户请阅读论坛中的相关主题。
BOINC 概述
BOINC 是一个计算平台,对我们志愿者来说,它提供了一个统一的客户端程序,这个客户端本身并不进行实际的计算工作,只是提供了管理功能,在你加入了 BOINC 平台上的计算项目后,客户端程序将自动下载新的任务单元,并调用相应项目的计算程序进行计算,如果参加了多个项目,它将自动在各个项目间按用户的设定来调配计算资源,在计算完成时,它还将自动地将计算结果上传,并同时取得新的计算单元。
下载安装 BOINC 客户端
- 在浏览器中打开:http://boinc.berkeley.edu/download.php
- 该页面将根据您的计算机平台自动显示相应版本的客户端软件,点击“下载 BOINC”,将其下载至本地计算机
- 运行下载好的 BOINC 安装文件,其名称应该类似于 boinc_x.y.z_windows_intelx86.exe,其中的 x.y.z 为软件版本号,windows 和 intelx86 为计算机平台的标识
- 按照缺省设置进行安装即可,安装完成将自动运行客户端软件
- 安装后缺省使用的是客户端的简易视图,同时会自动运行“加入项目”的向导,先可直接点击取消。
加入 BOINC 平台上的分布式计算项目
说明:
- BOINC 只是计算平台,该平台的各个计算项目的服务器和运行数据都是各个项目方独立维护的,因此,对于您要加入的每个项目,您都需要分别进行注册
- 对于任何一个项目,您可以在多台计算机上使用这个项目的同一个帐户进行计算
- 建议在所有的项目中都使用相同的注册信息,方便管理
加入项目的步骤:
- 点击 Add Project 按钮(如当前使用的是客户端的高级视图,请依次点击菜单中的“工具->加入项目”)
- 客户端将显示一个项目列表窗口
- 在列表中找到您想要加入的项目,单击选中后,再点击下一步
- 之后根据您是否已加入过这个项目,分为两种情况:
初次加入的项目: 选择“没有,我是新用户” 输入电子邮件地址(作为用户 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 统计、签名网站
BOINC 作为一个通用计算平台,允许各个计算项目以统一的格式向外输出项目的运行信息,因此就有了一些专门收集这些运行信息并进行分析、统计的网站,可以跨项目的对用户、国家或地区、团队等进行综合的排名等,同时一般也提供了根据用户、团队的统计信息制作动态更新的签名图片的功能。
常用的统计网站有:
本文重点介绍第一个即 BOINCstats,除统计功能齐全,还实现了 BOINC 平台的帐户管理器(即 BAM!),另外,也提供了本地化接口,其简体中文版本一直是由本站在进行更新维护。其它几个网站的基本使用方法类似。
BOINCstats
该网站不需要注册用户也可以使用统计和签名的基本功能,但如要使用该网站的完整功能(比如对签名进行定制或者使用帐户管理器)就必须得注册用户了,注册用户时所需要的资料和注册 BOINC 平台上的计算项目相同,也是用户名称、电子邮件地址、注册密码,建议使用统一的注册信息。
统计
主页左边显示了所有 BOINC 平台的项目列表,点击任一项目,即可查看项目、用户、主机、团队、国家或地区等的排名。
签名
- 注册用户
- 在该网站主页左上方的“BAM 菜单->BOINCstats”中即可查看、设置签名图片。
- 未注册用户
- 按您使用的用户名称搜索,点击搜索结果右边的放大镜图标,可进入该用户的团队项目一览页面,可根据需要查看用户的合并统计或单独项目的详细信息,然后就可见到签名图片的网址了。
(可参考该网站上的“怎么创建我自己的签名图片?”)。
BAM!
帐户管理器的使用详见帐户管理器页面。
其它
推荐阅读 BOINCstats 常见问答。
BOINC 高级应用
远程管理
被管客户端
客户端在安装完成后,即会在安装目录下生成 gui_rpc_auth.cfg,其中保存的就是用于远程管理的密码,可根据需要修改,修改后必须退出并重新运行整个客户端(如果是安装为服务模式的话,需要在“控制面板->管理工具->服务”中重启 BOINC服务,如果是一般模式安装的话,只要将 boincmgr.exe退出并重运行就可以。)。
但仅凭密码是无法远程管理的,必须是被管客户端设置成愿意被某些指定的远程客户端管理,方法:
在被管客户端的安装目录下新建一个文本文件,取名为 remote_hosts.cfg,在其中设定允许从远端连接该客户端的主机IP地址或网络名(推荐前者),格式很简单,一行设定一台主机即可。
注意:被管机器如果安装并使用了软件防火墙,必须打开 31416 端口。
管理客户端
然后远程主机在 BOINC Manager 中选择菜单中的“高级->选择计算机...”,然后输入被管机器的 IP 地址及连接密码并点击确定就可以了。
查看任务单元的完成情况
客户端会自动完成任务单元的下载、计算和上传,但有时候我们仍希望知道任务单元的计算结果是否成功,方法如下:
- 访问项目网站的“您的帐户”(Your Account)
- 点击“计算和积分情况”下的“任务 查看”(Tasks View )或者“本帐户所属的计算机 查看 ”(Computers on this account View ),前者用于查看您近期完成的所有任务单元,后者可以按您的计算机来分类查看(适合于计算机数量不止一台的情况)
- 查询结果以表格形式显示,如数量较多将分页进行显示,根据任务单元的下载(sent)或上报时间(Time reported)或任务单元名称(Work unit ID),找到你希望查询的任务单元
- 可重点查看的任务单元属性有:
- OutComes
- Success 表示计算完成,Unknown 表示没有收到客户端返回的结果,Client Error 表示计算过程出错,Validate Error 表示结果验证错误
- Client stats
- New 表示还在计算中,Done 表示已计算完成
- CPU Time
- 表示计算该任务单元所耗费的 CPU 时间
- claimed credit
- 客户端为该任务单元申请的积分
- granted credit
- 服务端授予该任务单元的积分,如显示 pending 表示任务包还未完成验证。
参考资料
相关链接
- 如果您对 BOINC 的使用及本文的内容有任何疑问,请访问本站论坛的 BOINC 平台讨论区,并提出您的问题
- 如果您发现本文内容有任何错误,请访问本站论坛的 Wiki 系统讨论区,并告诉我们您发现的错误