Version 1 (modified by 14 years ago) (diff) | ,
---|
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)