BOINC 开发文档

BOINC 项目任务包


最后更新:2006年3月24日晚上7:07(太平洋时间)


每个任务包(workunit)都描述需要执行的一次计算过程。它对应数据库中 workunit 表中的一行。BOINC 提供一个辅助程序和 C 函数(utility program and C function)以用来创建任务包。

在任务包被创建时,它有如下几个属性会被指定:

name

名称。一个字符串,在本项目的所有任务包中是唯一的。

application

计算程序(application)。用来执行计算的计算程序。每个任务包都关联到一个计算程序,而不是一个特定的版本或一定范围内的版本。如果输入的数据格式变成与旧版本不兼容,你就必须创建一个新的计算程序。这种情况通常可以通过以 XML 作为数据格式来避免。

input files

输入文件。一个输入文件的列表,它们的名称以及计算程序引用这些文件时的名称。

priority

优先级。高优先级的任务包会更早地被分发。

batch

批次。一个整数;可以用来对一批任务包进行操作(取消,改变优化级等)。

资源的估算和限度

rsc_fpops_est

对完成计算所需要的平均浮点运算数的估计值。用来对特定主机上完成计算所需时间的进行估算。

rsc_fpops_bound

完成计算所需要的浮点运行数的限度。如果超过了这个限度,计算程序将被中止。

rsc_memory_bound

虚存中的工作集的限度。任务包只会被分发到至少具备这么多容量内存的主机上。如果超过了这个限度,计算程序将被中止。

rsc_disk_bound

计算程序使用的最大磁盘空间的限度,包括所有的输入输出及临时文件。任务包只会被颁发到至少具备这么多容量磁盘空间的主机上。如果超过了这个限度,计算程序将被中止。

冗余和调度属性

delay_bound

从将计算结果发送给客户端到收到回复的上限时间(以秒为单位)。如果预计的完成时间超过这个时间,调度程序将不会发送。如果客户端没有在这个时间范围内回复,服务端将放弃这个计算结果,并同时生成一个新的计算结果以分发给另外一个客户端。

一般将这个时间设置成几倍于任务包在主流的PC机上的平均执行时间。如果设置过低,BOINC 可能会无法发送一些计算结果,相应的任务包将被标记为错误。如果设置过高,要等到结果返回可能就需要更长的时间了。

min_quorum

冗余度的最小值。如果您需要冗余计算,请设置成 2 或者更大。

target_nresults

初始创建多少计算结果。必须不小于 min_quorum 。可以适当加大,以反映计算结果的丢失率,或者为了尽快地完成一次成功的冗余。

max_error_results

如果客户端结果出错的数目超过了这个值,任务包将被标识为出错;以后的计算结果将不会被认可。这可以减少那些永远不会有返回结果的任务包的影响。

max_total_results

如果任务包的计算结果数目超过了这个值,任务包将被标识为出错。这可以减少那些永远不会有返回结果的任务包的影响(比如那些会使客户端崩溃的任务包)。

max_success_results

如果任务包的成功计算结果数目超过了这个值而且仍然没有达成一致,任务包将被标识为出错。这可以减少那些产生非确定性结果的任务包的影响。

任务包有一个动态的属性:

error mask

错误掩码。描述各种错误条件的位掩码:

  • WU_ERROR_COULDNT_SEND_RESULT:BOINC 调度服务无法将任务包发送给大量(100左右)的主机,可能因为主机无法满足资源需求(磁盘,内存,处理器)。或者没有适合主机的平台的应用程序版本。这时 BOINC 将“放弃”这个任务包。

  • WU_ERROR_TOO_MANY_ERROR_RESULTS:任务包已经返回了过多的错误结果(上传/下载问题,客户端崩溃)。

  • WU_ERROR_TOO_MANY_SUCCESS_RESULTS:返回了过多的不一致的成功结果。这表明计算程序可能是非确定性的。

  • WU_ERROR_TOO_MANY_TOTAL_RESULTS:任务包已经发送了过多的计算结果。

如果上面任何一个条件满足,BOINC 将“放弃”这个任务包,也不再发送更多它的计算结果。


返回:BOINC 开发文档 / BOINC 中文站 / BOINC 开发技术概论
页面来源 / BOINC 官方站

本页内容由中国分布式计算总站组织翻译,原文出自 BOINC 官方开发文档。参与本页制作的人员有:Youth(翻译)、碧城仙(编辑)。本站所有内容版权为中国分布式计算总站所有。本站欢迎非赢利性网站在遵守中华人民共和国版权法的前提下摘录或引用本站内容,但是请注明原作者和原出处。