= Remodel of computing preferences = == Problems with the current system == * Too complex: non-technical users see lots of prefs, with technical descriptions that many don't understand. * Not complex enough: many reasonable policies can't be expressed, such as different CPU throttling or network bandwidth limit as a function of time of day or user active. * Inconsistency between manager GUI and web interface. * Code complexity, especially in web code. This document proposes a redesign of the prefs system == Top-level interface == The top-level interface should consist of four choices: * Standard * Maximum computing * Energy-saver * Custom The first 3 would be predefined sets of prefs; e.g. Energy-saver would compute only when active, and would do CPU throttling. == Custom prefs == Prefs can be classified as * '''dynamic''': those that might change from one moment to the next, e.g. based on activity or time of day. This include: * Do computing? * Do GPU computing? * Suspend computing if CPU usage above X * Leave suspended tasks in memory * Use at most X% of processors * CPU throttling * Checkpoint interval * Limit on swap space usage * Limit on RAM usage * Use network? * max download and upload rates * '''static''': those that don't change * "In use" time interval * Disk prefs (max use GB, max use %, min free GB) * Network connection interval * Additional work parameter * Transfer at most X MB every N days * skip image file verification The following could be either static or dynamic; I'd prefer to make them static. * Suspend work while on batteries? * CPU scheduling period * Confirm before connecting to Internet? * Disconnect when done? Let's call a set of dynamic prefs a '''configuration'''. == Venues == == Implementation == == Possible additions == The BOINC client config file (cc_config.xml) has some items that maybe should be prefs. These include: Dynamic: * exclusive apps * exclusive GPU apps Static: * report results immediately == Possible deletions == Does anyone actually use the following? They could be moved to cc_config.xml * "In use" interval (2 minutes should be OK) * CPU scheduling period * leave apps in memory (should default to No) * Checkpoint interval * Limit on swap space usage * network connection interval and work buffer (these should by computed automatically based on actual behavior)