HOWTO: Installing BOINC
Introducing to BOINC
The Berkeley Open Infrastructure for Network Computing (BOINC) an open-source middleware system, supports volunteer and grid computing. Originally developed to support the [email protected] project, it became generalized as a platform for other distributed applications in areas as diverse as mathematics, linguistics, medicine, molecular biology, climatology, environmental science, and astrophysics, among others. BOINC aims to enable researchers to tap into the enormous processing resources of multiple personal computers around the world.
In essence, BOINC is software that can use the unused CPU and GPU cycles on a computer to do scientific computing—what one individual does not use of his/her computer, BOINC uses. In late 2008, BOINC 's official website announced that NVIDIA had developed a system called CUDA that uses GPUs for scientific computing. With NVIDIA's assistance, some BOINC-based projects (e.g., [email protected], [email protected]) now have applications that run on NVIDIA GPUs using CUDA. Beginning in October 2009, BOINC added support for the ATI/AMD family of GPUs also. These applications run from 2× to 10× faster than the former CPU-only versions. In 7.x preview versions, GPU support (via OpenCL) was added for computers using Mac OS X with AMD Radeon graphic cards.
BOINC consists of a server system and client software that communicate with each other to distribute and process work units and return the results.
Available package and install
# equo s boinc ╠ @@ Searching... ╠ @@ Package: sci-misc/boinc-7.6.33-r4 branch: 5, [sabayonlinux.org] ╠ Available: version: 7.6.33-r4 ~ tag: NoTag ~ revision: 0 ╠ Installed: version: 7.6.33-r4 ~ tag: NoTag ~ revision: 0 ╠ Slot: 0 ╠ Homepage: http://boinc.ssl.berkeley.edu/ ╠ Description: The Berkeley Open Infrastructure ╠ for Network Computing ╠ License: LGPL-2.1 ╠ Keywords: boinc ╠ Found: 1 voce
# equo i boinc --ask [...]
By default BOINC will be installed to /var/lib/boinc and it has its own user and group.
Working directory: /var/lib/boinc User: boinc Group: boinc
Configuring users and working directory
Change BOINC working directory permissions and owner/group (by default is root:root)
# chown -R boinc:boinc /var/lib/boinc && chmod -R 775 /var/lib/boinc
Add boinc user to Video group (useful for GPU computing)
# gpasswd -a boinc video
Add your user to boinc group (need for running boinc manager/client by the user)
# gpasswd -a <USER> boinc
Configuring BOINC Manager authentication
start boinc service once to create all needed files to the working directory then stop it.
# systemctl start boinc && systemctl stop boinc
Inside /var/lib/boinc directory will be created a file gui_rpc_auth.cfg . This is used to autenticate the user to the boinc manager. A random password will be generated in this file. You can change this password or not use it.
With a common password for all users (type as user)
$ echo "PASSWORD" > /var/lib/boinc/gui_rpc_auth.cfg
Without password (Direct access to the manager) -blank file-
$ echo > /var/lib/boinc/gui_rpc_auth.cfg
Starting boinc service
# systemctl start boinc
Enabling boinc service at boot
# systemctl enable boinc
Look for the BOINC manager in the application menu , launch and attach your favourite project. (Note: An user account must be created for the boinc projects you choose even from Boinc Manager or via project webpage)
Change BOINC directory and users
You can set your own BOINC working directory (e.g.: /home/USER/data/boinc) and/or run boinc with your user permissions Be sure to create your new data boinc directory first. You can change BOINC data directory only if you need more disk space or simply set new data location so no need to change User and Group parameters.
$ mkdir -p /home/$USER/data/boinc
Now edit /usr/lib64/systemd/system/boinc.service as follow:
[Unit] Description=BOINC Daemon [Service] User=<YOUR-USER> # e.g: "larry" Group=<YOUR-USER-GROUP> # e.g: "larry" Nice=19 ExecStart=/usr/bin/boinc_client --dir /home/<YOUR-USER>/data/boinc --redirectio --allow_remote_gui_rpc # e.g: <YOUR-USER> = larry [Install] WantedBy=multi-user.target
After the changes keep in mind to reload daemon before to start boinc service
# systemctl daemon reload
Then follow the steps described above.
More options can be added to ExecStart line , see
--dir /path/boinc # Boinc data directory --redirectio # Output logs to a file --allow_remote_gui_rpc # Allow to connect/control this client from other pc's on the LAN/NET
If you reinstall boinc package , all changes you applied will be overwritted.To avoid this you can protect all changes. Edit /etc/entropy/client.conf and add the Boinc service path.
[...] # Configuration files protection # List of files that should be kept as they are: whose updated config files # will be rejected # # syntax for CONFIG_PROTECT_SKIP: # config-protect-skip = /path/to/dir1 /path/to/dir2 /path/to/dir3 # # default: unset, internal variable will be used (this is stored into the # repository database) # # 2: Installation/Removal protection skip config-protect-skip = /etc/conf.d/hostname /etc/sudoers /etc/exports /usr/lib/systemd/system/boinc.service [...]
If there are no hardware recognition issues and NVIDIA GPUs are detected correctly , CUDA/OpenCL applicatios runs fine. (Depends on the project).
AMD dropped fglrx drivers . No GPU Computing is supported by AMDGPU opensource drivers. AMDGPU wouldn't work properly (No OpenCL support).
AMDGPU-PRO closed source drivers (aka crimson on Windows) are still in Beta and they aren't supported by Gentoo.
Happy 'crunching' :)