HOWTO: Installing BOINC

From Sabayon Wiki
Jump to: navigation, search

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.

Installing BOINC

Available package and install

# equo s boinc
╠  @@ Searching...
╠      @@ Package: sci-misc/boinc-7.6.33-r4 branch: 5, [] 
╠          Available:   version: 7.6.33-r4 ~ tag: NoTag ~ revision: 0
╠          Installed:    version: 7.6.33-r4 ~ tag: NoTag ~ revision: 0
╠          Slot:          0
╠          Homepage: 
╠          Description:   The Berkeley Open Infrastructure 
╠                         for Network Computing 
╠          License:       LGPL-2.1
╠   Keywords:  boinc
╠   Found:  1 voce

Install BOINC

# 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)

Boinc-application.png Projects-attach.png Boinc-running-project.png

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:

Description=BOINC Daemon

User=<YOUR-USER>           # e.g: "larry"
Group=<YOUR-USER-GROUP>    # e.g: "larry"
ExecStart=/usr/bin/boinc_client --dir /home/<YOUR-USER>/data/boinc --redirectio --allow_remote_gui_rpc    # e.g: <YOUR-USER> = larry


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

boinccmd --help
--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

Avoid overwriting

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.

File: /etc/entropy/client.conf
# 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

GPU Computing

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' :)

Related links

BOINC Home Page

Project List details


BOINC Videos