64-bit ARM support

Message boards : Number crunching : 64-bit ARM support

To post messages, you must log in.

AuthorMessage
Sergei Chernykh
Project administrator
Project developer

Send message
Joined: 5 Jan 17
Posts: 517
Credit: 72,451,573
RAC: 0
   
Message 300 - Posted: 4 Mar 2017, 15:59:04 UTC

64-bit ARM (Raspberry Pi 3, Pine 64 and similar boards) is now supported by the project: https://sech.me/boinc/Amicable/apps.php

This is not for an average user!

1) You'll have to manually install 64-bit Linux on your Raspberry Pi 3: Arch Linux works fine
2) You'll need to create a swap file, because Raspberry Pi 3 has only 1 GB of memory. 2 GB swap file will be enough.
3) Build BOINC client from source
4) Use this global_prefs.xml for BOINC client. Note that you need to set ram_max_used_idle_pct and ram_max_used_busy_pct to 100, otherwise BOINC will refuse to run Amicable Numbers app. It's also better to set work_buf_min_days and work_buf_additional_days to zero because each task takes more than one day to complete anyway.
<global_preferences>
   <run_on_batteries>1</run_on_batteries>
   <run_if_user_active>1</run_if_user_active>
   <run_gpu_if_user_active>1</run_gpu_if_user_active>
   <suspend_cpu_usage>0.000000</suspend_cpu_usage>
   <start_hour>0.000000</start_hour>
   <end_hour>0.000000</end_hour>
   <net_start_hour>0.000000</net_start_hour>
   <net_end_hour>0.000000</net_end_hour>
   <leave_apps_in_memory>0</leave_apps_in_memory>
   <confirm_before_connecting>1</confirm_before_connecting>
   <hangup_if_dialed>0</hangup_if_dialed>
   <dont_verify_images>0</dont_verify_images>
   <work_buf_min_days>0.000000</work_buf_min_days>
   <work_buf_additional_days>0.000000</work_buf_additional_days>
   <max_ncpus_pct>100.000000</max_ncpus_pct>
   <cpu_scheduling_period_minutes>60.000000</cpu_scheduling_period_minutes>
   <disk_interval>60.000000</disk_interval>
   <disk_max_used_gb>0.000000</disk_max_used_gb>
   <disk_max_used_pct>90.000000</disk_max_used_pct>
   <disk_min_free_gb>0.100000</disk_min_free_gb>
   <vm_max_used_pct>75.000000</vm_max_used_pct>
   <ram_max_used_busy_pct>100</ram_max_used_busy_pct>
   <ram_max_used_idle_pct>100</ram_max_used_idle_pct>
   <max_bytes_sec_up>0.000000</max_bytes_sec_up>
   <max_bytes_sec_down>0.000000</max_bytes_sec_down>
   <cpu_usage_limit>100.000000</cpu_usage_limit>
   <daily_xfer_limit_mb>0.000000</daily_xfer_limit_mb>
   <daily_xfer_period_days>0</daily_xfer_period_days>
</global_preferences>
ID: 300 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile [B@P] Daniel

Send message
Joined: 27 Feb 17
Posts: 15
Credit: 613,209,034
RAC: 0
   
Message 301 - Posted: 4 Mar 2017, 16:39:44 UTC
Last modified: 4 Mar 2017, 17:38:22 UTC

Thanks! I have successfully attached my Odroid C2 and downloaded few tasks. It has 2GB RAM, so I use default config without extra changes. It also uses 64-bit Linux by default. BOINC Client also was installed from repo, no compilation was needed. Much simpler for average user :)

So far after 80 minutes it uses 824MB of RAM (this is for 4 threads). It is hard to tell how much time it will need to complete, probably a bit less than 12 hours.
ID: 301 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
fractal

Send message
Joined: 1 Feb 17
Posts: 8
Credit: 100,048,293
RAC: 0
   
Message 302 - Posted: 5 Mar 2017, 1:47:43 UTC

My C2 is not on this project but https://sech.me/boinc/Amicable/show_host_detail.php?hostid=742 is a pine64 with swap on a usb drive (ssd). Work units take just under 15 hours.

I'll switch it over to the official client and see if that makes any difference. I can't imagine it will since I did not do anything fancy, just compiled with -O2.
ID: 302 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile [B@P] Daniel

Send message
Joined: 27 Feb 17
Posts: 15
Credit: 613,209,034
RAC: 0
   
Message 303 - Posted: 5 Mar 2017, 7:41:51 UTC

1st WU completed and validated on my C2, it took 10h 46min.
ID: 303 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
JagDoc

Send message
Joined: 27 Feb 17
Posts: 4
Credit: 27,413,379
RAC: 32
   
Message 304 - Posted: 5 Mar 2017, 9:21:12 UTC

Thank you.
Attached some of my Odroid-C2.
ID: 304 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Sergei Chernykh
Project administrator
Project developer

Send message
Joined: 5 Jan 17
Posts: 517
Credit: 72,451,573
RAC: 0
   
Message 305 - Posted: 5 Mar 2017, 12:33:40 UTC

My Raspberry Pi 3 was much slower: https://sech.me/boinc/Amicable/result.php?resultid=475414
I guess it overheated and started throttling. I've put a heatsink on it and placed it inside my PC right next to air intake fan, so it'll have some fresh air. Let's see how it runs now.
ID: 305 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
JagDoc

Send message
Joined: 27 Feb 17
Posts: 4
Credit: 27,413,379
RAC: 32
   
Message 306 - Posted: 5 Mar 2017, 17:41:45 UTC

ID: 306 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
fractal

Send message
Joined: 1 Feb 17
Posts: 8
Credit: 100,048,293
RAC: 0
   
Message 307 - Posted: 5 Mar 2017, 20:14:03 UTC

Your pi3 will throttle badly without a heat sink and some moving air. Mine won't run flat out for more than a day without eating its sd-card. I have a samsung to try that some suggest are better than the sandisc's I usually use when I get the chance.

You can monitor how much you are throttling by looking at "/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state" I typically run the command "watch cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state" on my little boxes. My C2 is showing:

100000 53
250000 0
500000 11825610
1000000 60278736
1296000 49756520
1536000 266506476

It is spending most of its time at 1.5 GHz but dropping to 1.3 every so often. It was in the optional plastic case which was very warm to the touch. Taking it out of the case so it gets some airflow lets it stay at 1.5 GHz.

My pine64 is even worse. It too comes without a heat sink. I tried one of the little ones they sell for the pi3 and it helped a tiny bit. A fan blowing on it fixed me up. A huge heat sink on my second pine64 made little difference. It still needs airflow to avoid throttling. But, a 7 dollar USB fan from amazon is adequate.
ID: 307 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile [B@P] Daniel

Send message
Joined: 27 Feb 17
Posts: 15
Credit: 613,209,034
RAC: 0
   
Message 364 - Posted: 24 Mar 2017, 19:31:49 UTC

Could you prepare 64-bit Android app version too?

You will need Standalone Toolchain for this, configured to support API level 21. In order to compile BOINC libs, you will have to to use command like this:

./configure --prefix=/cygdrive/c/somedir/android/_boinc64/ --host=aarch64-linux-android --disable-server --disable-client --enable-libraries --enable-static --disable-shared --disable-manager --disable-boinczip CC=/cygdrive/c/somedir/android/_arm64/bin/aarch64-linux-android-gcc CXX=/cygdrive/c/somedir/android/_arm64/bin/aarch64-linux-android-g++ CFLAGS="--sysroot=c:/somedir/android/_arm64/sysroot/ -DANDROID -DANDROID_64 -DDECLARE_TIMEZONE -O3 -fomit-frame-pointer -fPIE" CXXFLAGS="--sysroot=c:/somedir/android/_arm64/sysroot -DANDROID -DANDROID_64 -funroll-loops -fexceptions -O3 -fomit-frame-pointer -fPIE" LDFLAGS="--sysroot=c:/somedir/android/_arm64/sysroot -fPIE -pie"

ID: 364 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Sergei Chernykh
Project administrator
Project developer

Send message
Joined: 5 Jan 17
Posts: 517
Credit: 72,451,573
RAC: 0
   
Message 365 - Posted: 24 Mar 2017, 20:04:48 UTC - in response to Message 364.  

Is it a good idea to torture Android smartphones with CPU intensive application that runs 24/7?
ID: 365 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile [B@P] Daniel

Send message
Joined: 27 Feb 17
Posts: 15
Credit: 613,209,034
RAC: 0
   
Message 366 - Posted: 24 Mar 2017, 20:40:04 UTC

Few other projects have Android apps and many people uses them (I crunch WUs from Moo! Wrapper, Collatz, theSkyNet POGS, Rosetta, GoofyxGrid and WuProp). Android version of BOINC is specifically designed for smartphones - by default it uses half of available cores, do not crunch when on battery or temperature is over 40°C, and transfers data when WiFi is available. Android also can be installed on devices like Odroid which are better suited for crunching. So Android app version would be a nice addition to your project.
ID: 366 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote

Message boards : Number crunching : 64-bit ARM support


©2024 Sergei Chernykh