166 | | == Credit reporting == #credit |
167 | | |
168 | | By default, the claimed credit of a result is based on the product of its total CPU time and the benchmark values obtained by the core client. This can produce results that are too low if the application uses processor-specific optimizations not present in the core client, is compiled with different compiler settings, or uses a GPU or other non-CPU computing resource. To handle such cases, the following functions can be used. |
169 | | |
170 | | {{{ |
171 | | #!c++ |
172 | | void boinc_ops_per_cpu_second(double floating_point_ops, double integer_ops); |
173 | | }}} |
174 | | |
175 | | This lets the application report the results of an application-specific benchmark to the core client, expressed as number of floating-point and integer operations per CPU second. |
176 | | |
177 | | {{{ |
178 | | #!c++ |
179 | | void boinc_ops_cumulative(double floating_point_ops, double integer_ops); |
180 | | }}} |
181 | | |
182 | | This lets the application report the total number of floating-point and/or integer operations since the start of the result. If `floating_point_ops` is nonzero, it's used to compute credit and `integer_ops` is ignored. `boinc_ops_cumulative()` may be called multiple times, but only the last call makes any difference. |