BOINC is an open-source platform for building computing grids, and it allows to combine the power of computers connected to the network for solving complex scientific problem. Among other projects, there is World Community Grid network backed by IBM, and it contains a number of curated projects, such as:
If you have a desktop or a server that can spare some CPU or GPU, you can become a part of this grid, and participate in fighting these diseases. Theoretically, you can even use laptop or phone/tablet, but it is not something that I could recommend: first, power efficiency of CPUs in those devices is not great, and the ratio of contribution to energy consumption is far from what can be achieved by a “normal” CPU; and second - normally laptops or phones are not designed for running at full speed 24⁄7 (there were reports of popcorned CPUs and bulged phone batteries caused by overheating).
You are free to decide which project you are going to support, and if you wish - you can support several projects at once. The software takes care of the task prioritisation, but it also allows fine-tuning how much resources you are willing to dedicate to the Grid. By default “Grid” tasks have low priority, and should not visibly affect performance of other tasks your computer is working on.
BOINC software has two separate parts: client that does computations for the grid and manager that allows to configure client. They don’t have to run on the same host, and in fact manager part is only necessary for configuring the client part - it does not have to run all the time. In my setup, for instance, I have client running on my dedicated host in a datacenter, and my manager is installed on my laptop.
Here is a short howto that should work on pretty much any modern Linux distribution:
- Register on World Community Grid website
- Optional: join our team, so we stay in touch
- Install Docker CE
Start BOINC on your dedicated host (replace MY_GUI_PASSWORD with your random password):
docker run -d --restart=always \ --name boinc \ --net=host \ -v /opt/appdata/boinc:/var/lib/boinc \ -e BOINC_GUI_RPC_PASSWORD="MY_GUI_PASSWORD" \ -e BOINC_REMOTE_HOST="127.0.0.1" \ boinc/client
At this point BOINC client runs, but is not configured, and does not do much. To configure it you will need to install BOINC manager. It does not have to be installed on the same host as the client:
apt install -y boinc-manager # Debian GUI
apt install -y boinctui # Debian text-only
yum install -y boinc-manager # Fedora
Optional step - if you run client on a different host, you will need to forward ports for establishing connection between manager and client:
ssh -L 31416:127.0.0.1:31416 user@example.com
Now you are ready to start crunching numbers:
- Use your GUI password from step 4 to connect to the client
- Use your login and password from step 1 to configure your client. At this step you will be able to decide which projects to contribute to, and how much resources to use.
Thank you for being awesome and helping scientists fight diseases!