![]() |
BOINC 开发文档BOINC 项目任务包 |
每个任务包(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 |
如果任务包的成功计算结果数目超过了这个值而且仍然没有达成一致,任务包将被标识为出错。这可以减少那些产生非确定性结果的任务包的影响。 |
||||||
任务包有一个动态的属性:
|
|
错误掩码。描述各种错误条件的位掩码:
|
如果上面任何一个条件满足,BOINC 将“放弃”这个任务包,也不再发送更多它的计算结果。
本页内容由中国分布式计算总站组织翻译,原文出自 BOINC 官方开发文档。参与本页制作的人员有:Youth(翻译)、碧城仙(编辑)。本站所有内容版权为中国分布式计算总站所有。本站欢迎非赢利性网站在遵守中华人民共和国版权法的前提下摘录或引用本站内容,但是请注明原作者和原出处。