Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Adaptive Work Buffer, Dynamic CPU Management, and Screensaver Removal #6084

Open
MrGrappleMan opened this issue Feb 14, 2025 · 1 comment

Comments

@MrGrappleMan
Copy link

Describe the problem

This request proposes three changes to improve BOINC’s efficiency, automation, and usability:

  1. Adaptive Work Unit Buffer – Dynamically adjust buffer size based on online-offline history.
  2. Dynamic CPU Usage – Allow 100% CPU usage but automatically prioritize system responsiveness.
  3. Screensaver Removal – Remove the screensaver to reduce unnecessary resource consumption.

Describe the solution you'd like

  1. Adaptive Work Unit Buffer Based on Usage Patterns

Proposed Change

Automatically adjust the work unit buffer based on client uptime relative to total online time.

Store online-offline history for up to 30 days.

If the client is frequently offline, request more work units; if often online, request fewer.

Benefits

✔ Prevents unnecessary expiration of tasks, improving efficiency.
✔ Reduces storage usage by preventing excessive downloads.
✔ Removes the need for users to manually adjust work buffers.

  1. Dynamic CPU Management for Better Responsiveness and Device Longevity

Proposed Change

Allow BOINC to use 100% CPU, but always run at the lowest priority level (e.g., highest nice value).

Dynamically suspend computation based on temperature and battery percentage (already available on Android but missing from desktop/laptops).

Benefits

✔ Ensures BOINC remains opportunistic and never disrupts system performance.
✔ Improves battery health on laptops by avoiding excessive heat and power drain.
✔ Allows devices to charge faster, helping users in emergency situations.
✔ Eliminates manual CPU usage configuration, making BOINC more user-friendly.

  1. Remove Screensavers to Improve Efficiency

Proposed Change

Remove BOINC’s built-in screensaver.

Statistics and visualization can remain accessible through the UI and logs.

Benefits

✔ Reduces energy consumption, especially on battery-powered devices.
✔ Eliminates unnecessary GPU strain that could slow down computations.
✔ Simplifies BOINC by removing a legacy feature with little practical use.

Additional context

These changes improve BOINC’s usability, efficiency, and automation while reducing user configuration overhead.

The adaptive buffer and dynamic CPU management align with BOINC’s goal of utilizing spare resources efficiently without user intervention.

Screensaver removal follows modern computing trends, where idle states prioritize energy savings.

It is better for BOINC to remain a program that users should passively use on their devices, not exclusively as on a "server" PC.

@AenBleidd
Copy link
Member

  1. This will not solve the issue of expired tasks, because every task has its deadline set by server. And tracking the history might be interesting idea but probably too complex and not clear to the users. I'd say the user is the only person who can predict how long and when the device will be offline and adjust the work buffer accordingly.
  2. BOINC currently runs tasks with the lowest priority already, so there is nothing that should be changed (and by the way, this is configurable). Regarding CPU usage, it could be controlled using setting different settings when device is in use and when device is not in use. Using information about temperature is not so easy, since OS doesn't provide the information about connected sensors, and assuming we have Linux, MacOS and Windows - that doesn't make it easier, but this is something that we were thinking about, and we already have two open tickets: CPU temperatures monitoring #1378 and GPU Temperature Monitoring #1379. We though about using information of the battery as well: Add support for Windows 10 Battery Saver #1471.
  3. BOINC screensaver is optional, and this is still the good way to represent and even advertise BOINC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Development

No branches or pull requests

2 participants