Berkeley Open Infrastructure for Network Computing
BOINC comes as an official part of Debian and with it of Ubuntu, Mint and many others. Just install the boinc package. Then start the boincmgr application to join the project of your liking.
BOINC, under your control, downloads and runs external applications. Debian supports many more platforms than any scientific group. And with Debian, you have the confidence to see a direct correspondence between the source Debian distributes and the application one runs. For SETI, we have hence prepared a package of their scientific application, i.e. install boinc-app-seti and the local application is used to search for signals from outer space. For Einstein@Home we have a boinc-app-eah-brp to search for binary pulsars in radio signals.
Debian and Ubuntu folks work together on those packages, which we are very happy about.
Installation with GUI
If your search engine brought you to this page and you just don't know how to get your machine up and running:
# install BOINC sudo apt install boinc # start the BOINC client sudo systemctl start boinc-client # enable autostart of BOINC client sudo systemctl enable boinc-client # start the BOINC manager boincmgr
Once the GUI is up, find "Add Project" to add a project by selecting on it and then following the instructions. The GUI allows to follow the progress while the client is downloading input data and/or while workunits are processed. You can also see the tasks as regular processes on your computer for inspection with typical command line tools like "ps" or "top". Please follow instructions on the project's home page (https://boinc.berkeley.edu) for more info.
Installation without Xorg/Wayland (headless install)
# install BOINC and a TUI for configuring it: sudo apt install boinc-client boinctui # Start the config tool, port and host should be ok for localhost boinctui # With F9 you can open the menu and add projects etc.
This page supports the maintenance of a Debian package for BOINC. BOINC provides an infrastructure for distributed computing that asks for volunteers world-wide to offer their compute power for a good cause. There is no central organization but every contributor decides by h(im|er)self what project to support. Everything of this infrastructure is Open Source, for the contributors and the scientists with computational demands alike. Hence, everybody can do something beneficial to the world at large, just by running an unnoticed application in the background.
packaging BOINC for Debian
projects' support for Debian's architectures
running your own BOINC server project on Debian (experimental)
problem solving and FAQs
Benefits of Debian for BOINC
There are two major criticisms of the BOINC project:
One is that it would be difficult to install. Well, to install packages in Debian is not difficult and we give explicit instructions for BOINC below.
- The other is that one does not know what is executed on one's own machine since a foreign binary is downloaded. This is helped by the redistribution of selected scientific applications as additional Debian packages - everyone can inspect also their source code and build the packages in an automated way.
The motivation to create packages for this worthwhile cause requires no further explanation, maybe except for the following hint: Debian is special for its support of many different architectures, which is only sustainable because of an automated compilation of novel packages. Thus, the provision of BOINC on Debian significantly contributes to the acceptance of the project in all these non-mainstream architectures.
Another peculiarity of Debian is the option to create dedicated chroot environments, which may be essential for security-sensitive administrators. Debian's debootstrap tool creates such easily, also in subdirectories of other Linux distributions, and schroot is a good tool for managing chroots. Together with the dynamic package management, this renders Debian a prime candidate for the creation of virtual hosts with arbitrary Linux distributions or - maybe more interestingly - on Windows machines running Xen, coLinux, VirtualBox or VMware. Also, the frequently distributed LiveCDs of Debian may help bringing functional BOINC installations to the masses.
Work performed with the help of the Debian packages counts in the same way as if the upstream client was used. The scientific application for SETI, also available as a Debian package, may even be slightly faster than the original since our version does not waste cycles on feeding the graphics. This paragraph is about the adoption of the Debian package by the community.
wget -O - http://popcon.ubuntu.com/by_vote.gz 2> /dev/null | gunzip -c | egrep 'boinc' wget -O - http://popcon.debian.org/by_vote.gz 2> /dev/null | gunzip -c | egrep 'boinc'
Adoption of Debian's BOINC packages over time. Values for Ubuntu are about 15-20 times higher.
From the user's perspective, BOINC has three parts:
- The external web server, run by the scientists, that manages the data flow. After the user's registration to a particular project this server is of interest only for power users who are interested to communicate with other users or the general progress of the individual project.
The BOINC core client that is commonly controlled by the BOINC Manager (boincmgr) and the only program that is actually started by the user.
The project-specific application (e.g. setiathome) that is started by the BOINC core client.
The speed of the processor is measured by the BOINC core client. One gets the more credits, the faster the BOINC core client says the individual machine is. Hence, it makes perfect sense to have a very much optimized binary of the BOINC core client, if one is interested in the stats. However, the project-specific application, which does the real work, does not profit from an optimization of the merely communicating BOINC client. It is the application's code where the real interest is in. Hence, the ultimate goal is to have locally optimized Debian packages for the scientific applications, too. These however are mostly distributed as binaries only, though there are exceptions, like SETI@Home, Milkyway@Home, Eistein@Home and others. We are providing also a package for SETI and Milkyway, see overview on platform-project compatibilities on /Projects.
Installation of binary packages
The BOINC packages are part of the Debian main archive since DebianEtch (see: boinc-client, boinc-dev, boinc-manager). To install BOINC on your computer update your package index files and install the boinc-client package:
sudo apt-get update sudo apt-get install boinc-client
The boinc-client starts at a reboot, or explicitly with
sudo /etc/init.d/boinc-client start
We now have the infrastructure in place that knows how to feed the scientific application with data and return the result files. The scientific application itself is either
- compiled by the user from a source repository offered by the scientific project (not many do that)
- auto-downloaded as an executable upon registration with the project (most users do it this way, but they do not truly know what they are executing)
For SETI we have the Debian package, installable via apt-get install boinc-app-seti' .
To manage scientific applications run on boinc by GUI, install the boinc-manager package in addition:
sudo apt-get install boinc-manager
Finally, attach a new project to your BOINC core client. For GUI installation, run boincmgr; for CLI installation, run boinccmd.
For support of GPU offloading on NVidia cards, feel invited to install the package boinc-nvidia-cuda. It ensures to have the required extra dependencies for CUDA programs installed, i.e. nvidia-glx and libcuda1 packages. More (too many?) details on NVidia are collected on the page NvidiaGraphicsDrivers of this wiki.
It should all be performed by the postinst scripts of the package. Anyway, if there are problems, verify the boinc user to be a member of the video group. If a card is detected but the apps don't work, also try installing the 32bit variants of support libraries like libcuda1-ia32 and lib32cudart4 packages, if these are available to you.
AMD Stream / OpenCL
This Wiki has a dedicated page on ATI/AMD Stream/OpenCL installation instructions. We prepared a package boinc-amd-opencl but are currently not shipping it since the AMD packages had issues. This, as a meta package, drags in the dependencies but otherwise has no extra functionality on its own. On amd64, it also installs the 32bit libraries, but other than for NVidia, it uses the multiarch principle.
http://boinc.berkeley.edu BOINC home page
http://www.debian.org Debian home page
http://www.dotsch.de/boinc/ SETI@Home clients for various platforms by Lars Bausch
http://packages.debian.org/unstable/net/boinc-client BOINC Client in unstable
http://packages.qa.debian.org/b/boinc.html Overview on BOINC packages in Debian and Ubuntu
http://qa.debian.org/popcon.php?package=boinc BOINC in Debian's popularity contest
https://launchpad.net/ubuntu/+source/boinc Official BOINC packages of Ubuntu
https://launchpad.net/~pkg-boinc Ubuntu backports of official BOINC packages
https://launchpad.net/~costamagnagianfranco/+archive/boinc Latest BOINC packages from this joint repository for Ubuntu
IRC: #debian-boinc on irc.debian.org
see DebianWiki/LicencingTerms for info about wiki content copyright.