-
Notifications
You must be signed in to change notification settings - Fork 439
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
[Android] Boinc doesn't utilize all the cores #2549
Comments
@adamradocz, could you please send the link to this application? Will try to check it with my 2 devices. |
Damn, it requires device to be rooted :( |
By the way, could you please share some boinc logs from your device as well? |
|
I see this in your log: |
Maybe just an issue with logs. There are many other strange messages in the log that are not correct on Android. |
I'm pretty sure that the boinc not uses all the cores, because if I use set the boinc to use all the cores the WUs get done about 3 times longer than usually. |
Hm, I'm wondering whether it is a job of boinc client to utilize all cores? |
This appears to be a common issue on ARM Android devices. Often the
symptom is the task run time exceeding the CPU time a ratio of integers.
I believe that the issue that the number of FPUs and NEON units doesn't
match the number of integer cores. Low end devices may only have 1 FPU
shared between 4 or 6 cores. Processes end up waiting for the resource
they need, possibly being migrated to the CPU that owns the FPU.
I've never really spent any time figuring out how to identify whether it is
occurring. It makes processing less efficient, but doesn't seem to affect
the quality of the results.
…On Wed, Jun 6, 2018 at 1:22 PM, Vitalii Koshura ***@***.***> wrote:
Another interesting case.
8 equal cores, 8 running tasks, only 3 cores are utilized.
[image: s80606-231737]
<https://user-images.githubusercontent.com/3234209/41063092-5e2c19fa-69e0-11e8-81c3-663d45c1518d.jpg>
Either this application lies or it is a really strange behavior that needs
to be investigated
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#2549 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AKXcsi1walF_7VlGQGnP9_Ei1OiaBqiAks5t6Dn7gaJpZM4Ua4iH>
.
--
Eric Korpela
korpela@ssl.berkeley.edu
AST:7731^29u18e3
|
I tried different performance profiles. Yes, I set boinc to run CPU 100% for all cores. Nothing helped. |
My Pixel 2 has ARM big.LITTLE, using Heterogeneous Multi-Processing (HMP), with Qualcomm Snapdragon 835, that has 4 big Kryo cores and 4 little Kryo cores. On my Pixel 2 (not rooted!), running Android Oreo 8.1.0, with BOINC set to run on 8 CPUs, I am noticing that BOINC:
It seems to me that BOINC's current behavior is:
My expectation is that, by default, BOINC should run as fg (while keeping 'nice') if possible, to try to use as many of the device's CPUs as requested by the user. I've fully documented my ongoing findings here, with a summary of steps/results below: Steps:
Useful commands: Running as bg (BOINC is limited to CPUs 0 and 1 only, thus leaving 6 idle... so, using 2 of 8):
Running as fg (BOINC is limited to all CPUs except 4 and 5, thus leaving 2 idle... so, using 6 of 8):
|
So, based on some quick experimentation here, I'm seeing essentially the same behavior on my Nexus 6P that @JacobWKlein is reporting, which would explain why computational performance for BOINC there is so seemingly inconsistent relative to what it theoretically should be given the device specs. |
Sorry for the delay. I was getting access to a computer.
After (running on a big core):
|
Do things change if you turn off battery optimization for BOINC?
…On Wed, Jul 11, 2018 at 9:31 AM, fxzjshm ***@***.***> wrote:
Sorry for the delay. I was getting access to a computer.
Yes @JacobWKlein <https://github.com/JacobWKlein> you are right
Before reboot (8 programs shared 1 little core CPU 0):
meri:/ $ ps -P 15706
USER PID PPID VSIZE RSS PCY WCHAN PC NAME
u0_a154 15706 14573 205920 127324 bg 0000000000 R ../../projects/einstein.phys.uwm.edu/einsteinbinary_BRP4_1.46_arm-android-linux-gnu__ASIMDPIE
After (running on a big core):
USER PID PPID VSIZE RSS PCY WCHAN PC NAME
u0_a154 2863 2768 156768 121776 fg 0000000000 R ../../projects/einstein.phys.uwm.edu/einsteinbinary_BRP4_1.46_arm-android-linux-gnu__ASIMDPIE
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#2549 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AKXcslSHqaElzChc5nKA-UgF82Yi5Fqjks5uFihogaJpZM4Ua4iH>
.
--
Eric Korpela
korpela@ssl.berkeley.edu
AST:7731^29u18e3
|
Hmmm, I am not getting this while running on WCG, and I am running on real cheap phones... I lways thought it was a thermal throttling issues Could someone (having issues with full load) please try running on WCG instead of SETI, and post the results again here? |
What I have done, on really cheap phones, to run for WCG is:
See my instructable, one really cheap phone (brand Landvo L700 :)) ) is still running after 2.5 years |
I did. Got almost the same results. on several phones. Also not everyone want to root his phone and remove battery. Most people just want to run an application and do nothing more. |
On Android 9 with the latest dev build, this issue looks fine. |
Well there are 3 steps of disabling thermal throttle. I just use the first (safest) one, and I do not let the phone exceed 80degC. Can you please post the chipset soc for the affected phones here, since I tried on mostly mediatek and samsung octo-cores phones and did not find any issues. Usually from what I saw, the thermal throttling started at 65-70degC if I remember correctly, but by using the safest (first) thermal throttle, it gave the phone 10-15degC of headroom. Could you try lowering the freq if you have root with kernel adiutor? |
It is a waste of energy and money to buy a new battery every months or so. From my experience, the Android OS is doing some checks when it needs to run an intensive task. So basically I treated this as a heat problem, and removed the battery. Since there is no battery, I am not wasting energy/money on it. There is also no heat convection from the battery to the CPU, which is also getting hot from BOINC. |
As I previously explained, in my scenarios, the usage of the BIG cores was dependent upon how BOINC was started. You might try to test using the scenarios that I provided, to confirm the behavior. I'm told that dev builds of BOINC may have fixed the issue, and I could re-test if someone told me how to use one. |
Have you tried the instructions at https://github.com/BOINC/boinc/blob/master/INSTALL or https://boinc.berkeley.edu/trac/wiki/CompileClient perhaps? |
Sorry, I'm a beta tester of beta or release candidate builds. I'm not tooled to compile them, nor do I want to be. |
I guess modifying boinc to act as a bg process with all available cores is really difficult to implement without root.
Photo attached when OS Schedule knows best (CPU % is normally staying at 99%), need to restart phone |
Same problem. I use Lineage 16 (based on Android 9) with root on OnePlus 3T and after reboot only 3 core (2 little and 1 big) may used for BOINC tasks, if I close BOINC GUI only 1 core for all tasks is still used. On my other devices with Android 6 (Samsung Galaxy Nexus) and 4.3.1 (Ainol Novo 10 Hero) this problem does not exist. I’m frustrated with Google’s policy, they could have specifically made permission for the full utilization of resources, and not to break everything (as usual). |
On every other platform (including Android) we are relying on kernel scheduler to manage running processes. |
I have a LeEco Le Max 2 phone with LineageOS 15.1 (Android 8.1). It has Snapdragon 820 SOC with 4 cores. The power management is set to performance.
I set the boinc to use all the 4 cores, and if I check the CPU utilization with the Kernel Auditor, it shows that only 1 CPU is used. I've tried multiple scenarios with different options like use 1, 2 or 3 cores, but I got the same results.
The text was updated successfully, but these errors were encountered: