boinc - Berkeley Open Infrastructure for Network Computing
Even armV6 / armV7 systems with a single core can contribute significantly.
Run boinc persistently on a Pi / whatever without affecting latency of other service.
boinc is in both Raspbian and Arch Linux.
Install boinc:
# raspbian
$ apt-get install boinc
# arch
$ pacman -S boinc-nox
Run the service:
# raspbian
$ /etc/init.d/boinc start
# arch
$ systemctl enable boinc
You can use boincmgr
if you're running X, or boinccmd
from the shell.
Create an account on Seti@Home (or SkyNet):
$ boinccmd --create_account http://setiathome.berkeley.edu email password name
Get your account key:
$ boinccmd --lookup_account http://setiathome.berkeley.edu email_address password
Attach the project to boinc:
$ boinccmd --project_attach http://setiathome.berkeley.edu account_key
systemd service can be configured to have a high nice value:
[Unit]
Description=BOINC Daemon
[Service]
User=boinc
Nice=19
ExecStart=/usr/bin/boinc_client --dir /var/lib/boinc --redirectio
[Install]
WantedBy=multi-user.target
Can alternatively be resource-limited with CPUShares which limits the service's share of the CPU using cgroups:
# /etc/systemd/system/boinc.service
.include /usr/lib/systemd/system/boinc.service
[Service]
CPUShares=1500
(see man systemd.service
or http://0pointer.de/blog/projects/resources.html)
Other
BOINC
projects: