wiki:NonCpuIntensive

Version 3 (modified by Nicolas, 17 years ago) (diff)

--

Non-CPU-intensive applications

A 'non-CPU-intensive' project is one whose applications use little CPU time. Examples include:

  • Host measurements
  • Network measurements
  • Web crawling
  • Network data access

A non-CPU-intensive project is treated specially by the core client:

  • The core client maintains one result for the project
  • The core client executes this result whenever computation is enabled, bypassing the normal CPU scheduling mechanism.

A project labels itself as non-CPU-intensive by including the <non_cpu_intensive> flag in its configuration file.

This attribute is at the project level; there is no provision for a project to have some applications that are CPU intensive and some that aren't.

Non-CPU-intensive applications can use chunks CPU time; this won't break anything, and the CPU scheduler will adjust to it by changing its estimates of 'CPU efficiency'. However, non-CPU-intensive applications should try not to use more CPU time than their resource share fraction indicates.