Posts by Jacob Klein

1) Message boards : Questions and problems : Certain Projects Hijack Boinc (Message 98416)
Posted 10 May 2020 by Jacob Klein
Post:
Some projects have super short deadlines, and depending on your cache size, BOINC may run tasks from those projects ahead of other tasks.

The MindModeling project comes to mind. I've created a few forum posts about this issue on their forum, and at one point the admin said they made the deadlines a bit more reasonable, but then a new batch of work came along, and the deadlines were back to being due too quick for my tastes (like: Due in 12-36 hours).

Now, if this were interrupting my CPU work only, it would not be a problem for me. So long as my CPU threads are getting used, I'm happy, and Resource Share would "even things out" in the long term, such that MindModeling would only get its fair share of time of my CPUs.

But when I saw that these short deadline tasks make my GPUs go idle (because all CPUs were busy on "deadline-miss" "high-priority" "EDF" "earlist-deadline-first" MindModeling tasks) .... that was the last straw, for me. I do NOT want my GPUs to go idle.

So, a few years ago, I set the MindModeling project to "No New Tasks" on my 7 PCs, and was done with that.

So, there's an example where a project's configuration didn't jive well with how I wanted my resources to be distributed. And I took action to stop getting work from that project.
It was not a hijack. It was always the user's choice.
2) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87073)
Posted 11 Jul 2018 by Jacob Klein
Post:
I think we are moving the investigation to here:
https://github.com/BOINC/boinc/issues/2549
3) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87052)
Posted 11 Jul 2018 by Jacob Klein
Post:
Thanks. I've actually read most of that, and I think I understand it too.

The big cores are used for foreground cpu-intense operations, like app loading, web browsing, VR, and games. 80% of the time, the little cores are used, for things like checking email and serving notifications and making calls.

But that doesn't mean it's not built to do science. It just means the OS scheduler, by default, treats it as a phone doing phone activities, with the goal of preserving battery life.
Those are not my goals, while BOINC is running :)
4) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87049)
Posted 11 Jul 2018 by Jacob Klein
Post:
Yeah, I have developer options unlocked, which is why I'm able to enable USB debugging and use these commands like adb shell, top, ps.
But I don't think I have this "CPU Usage Overlay" thing you're talking about, here on Oreo, but would like to know how you trigger it and on what OS version.

When you describe how to get to the option exactly, I'll check. But yeah, I think things have changed, with 7 Nougat and 8 Oreo - See here https://www.androidpolice.com/2016/10/25/show-cpu-usage-android-7-0-displaying-systemui-processes-bug-marked-fixed/

Edit: A website showed me the UI switch you're talking about, here: https://merabheja.com/android-cpu-usage-monitor-on-screen/ ... but it does not exist on Oreo :)
5) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87045)
Posted 11 Jul 2018 by Jacob Klein
Post:
Thanks.

I really don't think this is heat related, as much as it is performance related. For instance, I think that, even when BOINC is running 8 CPUs as fg, cores 4 and 5 are STILL reserved by the system, probably for things like GPU responsiveness.

Also, you mentioned a "CPU Usage Overlay". I probably don't have that here on Oreo, but could you tell me exactly where it is on your system and what version it is? Thanks.

Are you able to use adb? That might help you see what's really going on, like I was able to. It's pretty straightforward, if your device supports USB debugging (have to enable it in developer options) and then on Windows you use "adb shell".
6) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87019)
Posted 10 Jul 2018 by Jacob Klein
Post:
Yeah, I'll think about it more. Seems likely to be another silly limitation of the operating system. I might craft an email to the dev group.

Can you maybe please do some tests on your devices, using adb and top and ps, using the commands I gave, to see if you can repro the behaviors, especially how it may affect your phone with 2 clusters of different sized cores?

PS: 46*C running 8 tasks on 6 cores, according to the app "Cpu Monitor", which is the only app that gives me CPU temp.
7) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87013)
Posted 10 Jul 2018 by Jacob Klein
Post:
I think it boils down to this, for me, on my Pixel 2:

If BOINC starts via "Autostart": The process and tasks start running as "bg" (limited to 2 little cores)
If BOINC starts via user launching BOINC: The process and tasks start running as "fg" (limited to all 4 little cores and 2 of the 4 big cores)
If BOINC is ever suspended while the UI is dismissed, then the BOINC process transitions to "bg" (limited to 2 little cores), and the tasks will later start running as "bg"... and the only way to get it all back to "fg" is to use Settings > Apps > BOINC > "Force Stop" and restart BOINC.

Does that accurately describe the behavior of the program right now?
Furthermore, does that accurately describe the behavior that we want? :)

Personally, based on ability to use CPUs, I think we'd want to use "fg" (while keeping 'nice'). I know I'm going to go out of my way to do that, at least, but BOINC should do that by default in my opinion.

Useful commands to watch the behavior:
top -o PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,PCY,CPU,CMDLINE
top -o PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,PCY,CPU,NAME
8) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87009)
Posted 10 Jul 2018 by Jacob Klein
Post:
... but then when BOINC is suspended and the BOINC app is closed, later when BOINC is opened, the tasks get created as background again. Hmm, I'm still missing understanding something I think.

This has something to do with ... the parent BOINC process running as "fg" versus "bg", and I think it relates to it being spawned from the UI or UI being closed when it is spawned. I'm still missing something.
9) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87008)
Posted 10 Jul 2018 by Jacob Klein
Post:
BAD / SLOW / RESTRICTING:
When BOINC has "Autostart" turned ON, and the phone is restarted
- The child threads run using "bg" (Background) scheduling policy
- This places them all on CPUs 0 and 1
- This leaves CPUs 2-7 all idle.
- This leaves my "BIG" CPU cores idle.
walleye:/ $ ps -A -o PID,TTY,TIME,CMD,CPU,PCY,PPID -P 5928
  PID TTY          TIME CMD             CPU PCY  PPID
 6732 ?        00:00:46 rosetta_android   0  bg  5928
 6996 ?        00:00:40 rosetta_android   1  bg  5928
 7037 ?        00:00:45 rosetta_android   1  bg  5928
 7253 ?        00:00:44 rosetta_android   0  bg  5928
 7379 ?        00:00:39 rosetta_android   1  bg  5928
 7380 ?        00:00:04 data_collect_v5   1  bg  5928
 7480 ?        00:00:38 rosetta_android   0  bg  5928
 7485 ?        00:00:38 rosetta_android   0  bg  5928
 7514 ?        00:00:38 rosetta_android   1  bg  5928


GOOD / USING ALL CPUS:
When BOINC has "Autostart" turned OFF, and the phone is restarted, and the user manually starts BOINC:
- The child threads run using "fg" (Foreground) scheduling policy
- This places them originally across ALL CPU CORES, with sometimes having them double-up.
- This keeps my "BIG" CPU Cores at full frequency, and mostly loaded.
127|walleye:/ $ ps -A -o PID,TTY,TIME,CMD,CPU,PCY,PPID -P 3975
  PID TTY          TIME CMD             CPU PCY  PPID
 4724 ?        00:00:11 rosetta_android   2  fg  3975
 5191 ?        00:00:10 rosetta_android   7  fg  3975
 5384 ?        00:00:13 rosetta_android   1  fg  3975
 5561 ?        00:00:07 rosetta_android   7  fg  3975
 5730 ?        00:00:07 rosetta_android   6  fg  3975
 5731 ?        00:00:00 data_collect_v5   6  fg  3975
 5893 ?        00:00:11 rosetta_android   3  fg  3975
 6128 ?        00:00:09 rosetta_android   0  fg  3975
 6341 ?        00:00:06 rosetta_android   6  fg  3975


Instructions:

Window 1:
top
Window 2 (replace the BOINC_PARENT_PROCESS_ID with the BOINC parent process ID):
ps -A -o PID,TTY,TIME,CMD,CPU,PCY,PPID -P [BOINC_PARENT_PROCESS_ID]
10) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87007)
Posted 10 Jul 2018 by Jacob Klein
Post:
Holy crap. I found out something important just now.
11) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 87004)
Posted 10 Jul 2018 by Jacob Klein
Post:
I made a little progress, I think. Basically, I'm able to connect to the device from windows, using adb (Android Desktop Bridge), and then do a "top" or "top -H" to see some stuff. Instructions at bottom. What I found, though, I did not like.

Basically, look at the "nice" values below, and also the "%CPU" values for the tasks.
They make it look like, the BOINC threads are ACTUALLY limited to just 2 of my 8 CPUs - not even 4! Regardless of being set to 2, 4, or 8.

This leads me to believe that I should set BOINC to 2 on this phone, as that's all the OS will end up using. Do you agree?

Here's what my Pixel 2 looks like, when running:

8 BOINC tasks:
800%cpu  17%user 194%nice  13%sys 565%idle   4%iow   5%irq   2%sirq   0%host                                                                                                                                                                                                                                                                                                                                                           
  PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS                                                                                                                                                                                                                                                                                                                                                                   
18541 u0_a163      39  19 347M 185M 5.7M R 24.3   5.0   0:32.64 rosetta_android_4.10_arm-android-linux-gnu...
18245 u0_a163      39  19 379M 221M 3.0M R 24.3   6.0   1:07.79 rosetta_android_4.10_arm-android-linux-gnu...
18232 u0_a163      39  19 373M 187M 6.0M R 24.3   5.1   1:06.30 rosetta_android_4.10_arm-android-linux-gnu...
17999 u0_a163      39  19 244M  86M 1.2M R 24.3   2.3   1:32.07 rosetta_android_4.10_arm-android-linux-gnu...
17995 u0_a163      39  19 244M  86M 1.3M R 24.3   2.3   1:33.66 rosetta_android_4.10_arm-android-linux-gnu...
17986 u0_a163      39  19 244M  83M 1.6M R 24.3   2.2   1:25.48 rosetta_android_4.10_arm-android-linux-gnu...
18882 u0_a163      39  19 157M  32M  20M R 24.0   0.8   0:02.55 rosetta_android_4.10_arm-android-linux-gnu...
17988 u0_a163      39  19 244M  86M 1.3M R 24.0   2.3   1:24.47 rosetta_android_4.10_arm-android-linux-gnu...


4 BOINC tasks:
800%cpu  13%user 188%nice  24%sys 565%idle   2%iow   4%irq   4%sirq   0%host                                                                                                                                                                                                                                                                                                                                                           
  PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS                                                                                                                                                                                                                                                                                                                                                                   
19642 u0_a163      39  19 157M  32M  20M R 65.0   0.8   0:04.72 rosetta_android_4.10_arm-android-linux-gnu...
19567 u0_a163      39  19 194M  68M  22M R 55.6   1.8   0:23.21 rosetta_android_4.10_arm-android-linux-gnu...
19636 u0_a163      39  19 160M  37M  21M R 37.0   1.0   0:06.40 rosetta_android_4.10_arm-android-linux-gnu...
19639 u0_a163      39  19 160M  37M  21M R 36.0   1.0   0:06.38 rosetta_android_4.10_arm-android-linux-gnu...


2 BOINC tasks:
800%cpu  23%user 195%nice  16%sys 558%idle   2%iow   5%irq   2%sirq   0%host                                                                                                                                                                                                                                                                                                                                                           
  PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS                                                                                                                                                                                                                                                                                                                                                                   
19639 u0_a163      39  19 377M 229M  10M R 96.0   6.2   0:55.71 rosetta_android_4.10_arm-android-linux-gnu...
19636 u0_a163      39  19 380M 231M 9.2M R 94.6   6.3   0:55.49 rosetta_android_4.10_arm-android-linux-gnu...


1 BOINC task:
800%cpu  51%user 121%nice  37%sys 582%idle   3%iow   5%irq   1%sirq   0%host                                                                                                                                                                                                                                                                                                                                                           
  PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS                                                                                                                                                                                                                                                                                                                                                                   
19639 u0_a163      39  19 385M 235M  10M R  100   6.4   1:21.36 rosetta_android_4.10_arm-android-linux-gnu...


Instructions:
I personally used this link, which a software "SystemPanel2" recommended to use to get its app able to read additional info on Nougat and Oreo.
http://sp.nextapp.com/
Then I used this link to learn a little about top:
http://adbshell.com/commands/adb-shell-top
...
So I:
- Downloaded that zip and extracted it
- Connected my phone
- Opened Command Prompt (Admin) on Windows 10, and used "cd" to change directory to the folder of the extracted contents
- Ran "adb shell"
- Ran "top"
- Used Ctrl+C to exit top
- Ran "exit" to exit the shell
12) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 86955)
Posted 9 Jul 2018 by Jacob Klein
Post:
I'm told that rooting the phone may unlock the ability to see cpu usage for tasks, again.
I may investigate that option at some point.
This is my source (Release notes info for Simple System Monitor)
13) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 86953)
Posted 9 Jul 2018 by Jacob Klein
Post:
Ah, sorry I didn't think to mention this before, but ...

For my non-rooted Oreo 8.1.0:
CPU-Z Thermal tab, for me, says "No Thermal data". But its Battery tab says "Temperature: 33.0 *C"
Even AIDA64 Thermal tab says "Battery: 33.0 *C" only.
CPU Monitor is the only app of the 3, that shows a "CPU Temperature" of 37 *C.
14) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 86951)
Posted 9 Jul 2018 by Jacob Klein
Post:
That's interesting. My findings are a bit different, on my Pixel 2, running Android Oreo 8.1.0.

For me, when running BOINC with 1 CPU, the first 4 cores all go to their max of 1900 MHz. In fact, I think they cannot scale independently, and so, when only 1 task is running, they all will be at 1900 MHz. Furthermore, the last 4 big cores bounce between frequencies, usually low ones( like 345 MHz - 650 MHz), but do not shut off entirely or become disabled.

So..

- When BOINC is suspended, first 4 little cores bounce at low frequences, and last 4 big cores bounce at low frequencies.
- When running BOINC with 1 CPU, first 4 little cores are at 1900 MHz, and last 4 big cores bounce at low frequencies. CPU Temp per CPU Monitor is 38-41*C.
- When running BOINC with 4 CPUs, first 4 little cores are at 1900 MHz, and last 4 big cores bounce at low frequencies. CPU Temp per CPU Monitor is 38-41*C.
- When running BOINC with 8 CPUs, first 4 little cores are at 1900 MHz, and last 4 big cores bounce at low frequencies. CPU Temp per CPU Monitor is 38-41*C.

On my system at least ... I suspect that the Android scheduler reserves the big cores for GPU activity (I see all 4 cores spike together, up to 2457 MHz, when using the Task Switcher, for instance), and possibly also for main-thread-tasks (whereas BOINC tasks seem to be treated as background tasks relegated to the first 4 slow cores).

I wish I had a way to find out more, like which CPUs they are running on, or better yet a way to set them :)

It sounds like I may end up setting BOINC to use 4 instead of 8, until I can get proof that they're running at all on the big cores.
15) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 86948)
Posted 9 Jul 2018 by Jacob Klein
Post:
Thank you for replying!

Regarding the cores:
Is it possible that, when user selects 8 concurrent tasks, all 8 tasks are bouncing on the 4 little cores, and none are processing on the big cores? I wish there was a way for me to find this info out, but I think recent versions of Android prevent cpu usage detail access on rooted phones. What proof is there that the tasks are on the big cores at all? Would it be better to set BOINC to use 4 instead of 8?

Regarding temp:
The phone is in a case on the desktop, battery temp is fine, 31*C while fully charged with BOINC running. Battery, when rapidly charging, heats to 41-45*C, and per the safety regulatory documentation, phone's operating conditions mention two limits: 35*C and 45*C. I have set BOINC to 45*C max, and will monitor it.
https://support.google.com/pixelphone/answer/7486047?hl=en
16) Message boards : Android : Android - Help - How to use all CPUs at maximum frequency? (Message 86946)
Posted 9 Jul 2018 by Jacob Klein
Post:
Can anyone please help me figure out how to keep CPU Clocks up on my Pixel 2 (Android 8.1.0, Qualcomm Snapdragon 835) ? The big cluster's frequencies make it look like they're not even being used by BOINC :(

My little cluster (4x Qualcomm Kryo 280 LP @ 1900 MHz) ==> Shows 4 CPUs at 1900 MHz (their max, I believe)
My big cluster (4x Qualcomm Kryo 280 HP @ 2457 MHz) ==> shows 4 CPUs that are typically at 345 MHz (with a range of 300 MHz to 2457 MHz)

- I have BOINC set to crunch 8 CPU tasks at once, and it's not cycling between running/suspended for any reason
- Temps are good to my knowledge
- Settings > Battery > ... > Battery optimization > All Apps > I have changed BOINC from "Optimizing battery use" to "Not optimized"
- Settings > System > Developer options > Stay awake > I tried setting this and restarting, but didn't help

Surely this isn't normal behavior? I want this phone to crunch through these tasks, but not sure what I'm missing.

Does anybody have any ideas on what's happening right now, and how to make it better?

Thanks,
Jacob Klein
17) Message boards : BOINC Manager : Boinc Manager Suggestions (Message 85233)
Posted 15 Mar 2018 by Jacob Klein
Post:
Thanks guys. I would appreciate something to mitigate this problem. I'm not on a metered connection, but I've got 4 PCs all uploading CPDN (ClimatePrediction.net) files over and over, and my local network gets badly congested when the upload pipe is saturated - sometimes hard to use webpages even.

I hope the change gets implemented to avoid the upload altogether, if the backing store is incapable of accepting.

Thanks,
Jacob Klein
18) Message boards : Questions and problems : Since Windows 10 Insider Build 16226, computer is always "busy" (Message 81234)
Posted 14 Sep 2017 by Jacob Klein
Post:
Thanks for getting back to us with confirmation! :)
19) Message boards : Questions and problems : Since Windows 10 Insider Build 16226, computer is always "busy" (Message 81197)
Posted 13 Sep 2017 by Jacob Klein
Post:
Jim,
From my testing, I think Microsoft may have fixed this "Task Manager - Details tab - BOINC doesn't resume" problem, in Build 16288!
Can you confirm please? Note: I do my testing with "In Use Means" "0.05 minutes" :)
20) Message boards : Questions and problems : Since Windows 10 Insider Build 16226, computer is always "busy" (Message 80629)
Posted 31 Aug 2017 by Jacob Klein
Post:
It's not a non-issue. Things should not break when Task Manager is open! :) It works just fine on non-Insider builds. So it is a new issue, too.

In earlier builds, my screen wouldn't even turn off in this scenario. They fixed that, but still have BOINC broken. So, it is an ongoing issue.

Please be more respectful. We're trying to track the issue, reproduce the issue, and get the issue fixed. Be helpful instead of dismissive, if possible, please. The issue may not matter to you, but it does to us.

PS: I haven't had the problems you describe, with Task Manager. Seems possible that some other software might be involved in causing your problems.


Next 20

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.