Difference between revisions of "BOINC"

From ArchWiki
Jump to: navigation, search
m
(update link(s) (avoid redirect))
(36 intermediate revisions by 19 users not shown)
Line 1: Line 1:
[[Category:Other desktop user's resources (English)]]
+
[[Category:Mathematics and science]]
{{i18n|BOINC}}
+
[[de:BOINC]]
 +
[[fr:BOINC]]
 +
[[it:BOINC]]
 +
[[ja:BOINC]]
 +
[[sk:BOINC]]
 +
[[zh-cn:BOINC]]
 +
[http://boinc.berkeley.edu/ BOINC website]: ''"Use the idle time on your computer (Windows, Mac, or Linux) to cure diseases, study global warming, discover pulsars, and do many other types of scientific research. It's safe, secure, and easy."''
  
== What is BOINC ==
+
[[Wikipedia:BOINC|Wikipedia]]: ''"The Berkeley Open Infrastructure for Network Computing (BOINC) is a non-commercial middleware system for volunteer and grid computing. It was originally developed to support the SETI@home project before it became useful as a platform for other distributed applications in areas as diverse as mathematics, medicine, molecular biology, climatology, and astrophysics. The intent of BOINC is to make it possible for researchers to tap into the enormous processing power of personal computers around the world."''
BOINC website: ''"Use the idle time on your computer (Windows, Mac, or Linux) to cure diseases, study global warming, discover pulsars, and do many other types of scientific research. It's safe, secure, and easy."''
+
  
Wikipedia: ''"The Berkeley Open Infrastructure for Network Computing (BOINC) is a non-commercial middleware system for volunteer and grid computing. It was originally developed to support the SETI@home project before it became useful as a platform for other distributed applications in areas as diverse as mathematics, medicine, molecular biology, climatology, and astrophysics. The intent of BOINC is to make it possible for researchers to tap into the enormous processing power of personal computers around the world."''
+
== Installation ==
 +
[[Pacman|Install]] either {{Pkg|boinc}} or {{Pkg|boinc-nox}} from the [[Official repositories]]. The latter package omits [[Xorg]] dependencies, and is therefore suited for use on headless servers.
  
== Install BOINC ==
+
Both packages install a unit file named {{ic|boinc.service}}. Therefore, the daemon can be managed using {{ic|systemctl}}. Read [[Systemd#Using_units]] for details.
=== Overview ===
+
BOINC is installed as a daemon and for security reasons will be run under the newly created ''boinc'' user. We will add ourself to the ''boinc'' group and create a link to the password file so that we can manage it via the GUI.
+
 
+
=== Instructions ===
+
Install BOINC via pacman:
+
# pacman -S boinc
+
 
+
 
+
BOINC runs as a daemon, to run at start up add it to the daemons section in /etc/rc.conf:
+
DAEMONS=(... boinc ...)
+
 
+
 
+
Add your user to the ''boinc'' group. You will need to log out and in again for it to take effect.
+
# gpasswd -a username boinc
+
 
+
 
+
If you want, you can easily check if you are now part of the ''boinc'' group by using the groups command:
+
$ groups
+
 
+
 
+
Start the BOINC daemon:
+
# /etc/rc.d/boinc start
+
 
+
 
+
Check if BOINC is running:
+
$ ps aux | grep boinc
+
  
 
== Using BOINC ==
 
== Using BOINC ==
 
=== BOINC via the GUI ===
 
=== BOINC via the GUI ===
By default, a password is created in /var/lib/boinc/gui_rpc_auth.cfg for
+
By default, a password is created in {{ic|/var/lib/boinc/gui_rpc_auth.cfg}} for connecting to the daemon. To simplify connection of the GUI to the daemon, cd to your home directory, create a link to the file, and change permissions to allow read access to boinc group members.
connecting to the daemon. To simplify connection of the GUI to the
+
daemon, cd to your home directory, create a link to the file, and change
+
permissions to allow read access to boinc group members.
+
  
  $ cd
+
  $ cd ~/
 
  $ ln -s /var/lib/boinc/gui_rpc_auth.cfg gui_rpc_auth.cfg
 
  $ ln -s /var/lib/boinc/gui_rpc_auth.cfg gui_rpc_auth.cfg
 
  # chmod 640 gui_rpc_auth.cfg
 
  # chmod 640 gui_rpc_auth.cfg
  
If you prefer a different password, or none at all, you can edit /var/lib/boinc/gui_rpc_auth.cfg. Then restart BOINC daemon.
+
If you prefer a different password, or none at all, you can edit {{ic|/var/lib/boinc/gui_rpc_auth.cfg}}. Then restart BOINC daemon.
  
If you don't like the idea of having this file in your home directory, there is an alternative approach.  Boinc Manager will also look for a readable gui_rpc_auth.cfg file in the current working directory.  If you make the file readable by the '''boinc''' group and ensure that the manager is run with '''/var/lib/boinc''' as the working directory, you should find that the client connects to the daemon automatically, as desired.  This can usually be achieved via the menu editor in your desktop environment of choice.
+
If you do not like the idea of having this file in your home directory, there is an alternative approach.  BOINC Manager will also look for a readable gui_rpc_auth.cfg file in the current working directory.  If you make the file readable by the '''boinc''' group and ensure that the manager is run with {{ic|/var/lib/boinc}} as the working directory, you should find that the client connects to the daemon automatically, as desired.  This can usually be achieved via the menu editor in your desktop environment of choice.
  
 
To start the GUI, use the ''boincmgr'' command
 
To start the GUI, use the ''boincmgr'' command
Line 55: Line 32:
 
BOINC should now take you through the process of attaching to a project. NB, some projects will let you create an account remotely via the GUI while some may require you to first create an account via their website. You can attach to multiple projects if you have the resources (disk space, time, CPU power). Do this via menu option ''Tools / Attach to project''.
 
BOINC should now take you through the process of attaching to a project. NB, some projects will let you create an account remotely via the GUI while some may require you to first create an account via their website. You can attach to multiple projects if you have the resources (disk space, time, CPU power). Do this via menu option ''Tools / Attach to project''.
  
If BOINC didn't ask you to connect to a project, then make sure you are connected to the daemon. Go to menu option ''Advanced / Select computer'', choose your machine's name and enter the password. (To avoid this, make sure the above steps regarding gui_rpc_auth.cfg have been done.)
+
If BOINC did not ask you to connect to a project, then make sure you are connected to the daemon. Go to menu option ''Advanced / Select computer'', choose your machine's name and enter the password. (To avoid this, make sure the above steps regarding gui_rpc_auth.cfg have been done.)
 
+
==== .desktop file sample ====
+
The following is a sample of .desktop file. In order to use this sample, you have to put a password file or the symlink in your home directory (see above).
+
*file name: boincmgr.desktop
+
*path: ${XDG_DATA_HOME}/applications/ (default: ~/.local/share/applications/) or /usr/share/applications/
+
[Desktop Entry]
+
Type=Application
+
Name=BOINC Manager
+
GenericName=BOINC client manager
+
Comment=Configure and monitor a BOINC client
+
Icon=/usr/share/boinc/boincmgr.48x48.png
+
Exec=boincmgr
+
Terminal=false
+
Categories=System;Monitor;GTK;
+
"BOINC Manager" menu item appears under [System] menu.
+
  
 
==== Projects using GPU ====
 
==== Projects using GPU ====
If you want to use your GPU, you need the proprietary nvidia or amd drivers. For ATI/AMD Cards you also need [https://aur.archlinux.org/packages.php?ID=21933 Catalyst driver for stock kernel] which you can get from AUR.
+
If you want to use your GPU, you need the proprietary nvidia or amd drivers. For ATI/AMD Cards you also need [https://aur.archlinux.org/packages.php?ID=21933 Catalyst driver for stock kernel] which you can get from AUR. For Nvidia, you also need the package {{Pkg|opencl-nvidia}} located in extra.
 +
 
 
In addition, the boinc user should be in the video group:
 
In addition, the boinc user should be in the video group:
 
  # gpasswd -a boinc video
 
  # gpasswd -a boinc video
Line 79: Line 42:
 
  xhost local:boinc
 
  xhost local:boinc
 
You may want to add that to a startup script.
 
You may want to add that to a startup script.
 +
 +
=== BOINC via the CLI ===
 +
 +
For {{pkg|boinc-nox}}, {{ic|boinccmd}} and {{ic|boinc}} have help information that can be referenced. {{ic|boinccmd}} is BOINC's recommended command line interface.
  
 
== Log files ==
 
== Log files ==
NB, BOINC places log files in /var/lib/boinc/
+
NB, BOINC places log files in {{ic|/var/lib/boinc/}}
 
  /var/lib/boinc/stderrdae.txt
 
  /var/lib/boinc/stderrdae.txt
 
  /var/lib/boinc/stdoutdae.txt
 
  /var/lib/boinc/stdoutdae.txt
  
 
== Considerations when choosing a project ==
 
== Considerations when choosing a project ==
Projects have different minimum hardware requirements (CPU, disk space), and different times to taken to run each work unit. If you don't finish a work unit before the deadline it will sent out to someone else, but it is better to look around to see what projects suit your machine and your uptime patterns to avoid this happening.   
+
Projects have different minimum hardware requirements (CPU, disk space), and different times to taken to run each work unit. If you do not finish a work unit before the deadline it will sent out to someone else, but it is better to look around to see what projects suit your machine and your uptime patterns to avoid this happening.   
  
 
Also, if it is important to you, check if the project makes the data and results publicly available.
 
Also, if it is important to you, check if the project makes the data and results publicly available.
  
 
=== Running on Arch64 ===
 
=== Running on Arch64 ===
Some projects provide only 32bit applications and some of them require 32bit libraries to run WUs or show graphics.
+
Some projects provide only 32bit applications which may require 32bit libraries to run work units or show graphics.  You will find most of these libraries in the [multilib] repository.
  
 
;To run WUs (e.g. Climateprediction)  
 
;To run WUs (e.g. Climateprediction)  
:lib32-glibc, lib32-glib2
+
:{{Pkg|lib32-glibc}}, {{Pkg|lib32-glib2}}
 
;To show graphics (e.g. Several projects of WCG, Climateprediction)
 
;To show graphics (e.g. Several projects of WCG, Climateprediction)
:lib32-pango, lib32-libxdamage, lib32-libxi, lib32-libgl, lib32-libjpeg6, and lib32-libxmu
+
:{{Pkg|lib32-pango}}, {{Pkg|lib32-libxdamage}}, {{Pkg|lib32-libxi}}, {{Pkg|lib32-libgl}}, {{AUR|lib32-libjpeg6}} (AUR), and {{Pkg|lib32-libxmu}}
  
 
==Troubleshooting==
 
==Troubleshooting==
 +
=== GPU missing ===
 
If you get this error :
 
If you get this error :
GPU Missing
+
{{bc|GPU Missing}}
and the Work Unit doesn't start, you should restart the Boinc Daemon :
+
and the Work Unit does not start, you should [[Daemons|restart]] the {{ic|boinc.service}} daemon.
# /etc/rc.d/boinc restart
+
 
 +
This will happen if the BOINC daemon starts before the an X session is fully initialized.
 +
 
 +
===Laptop overheating and battery duration reduction===
 +
If you run BIONC on a laptop with the ondemand governor (the default), it will keep the CPUs at their maximum frequencies (over)heating them and decreasing battery duration. The best way to fix this is to tell the ondemand to not rise the CPU frequencies for BIONC:
 +
{{bc|# echo 1 >/sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load}}
 +
 
 +
To do this on boot, create the following tmpfiles.d config:
 +
{{hc|/etc/tmpfiles.d/ondemand-ignore-nice.conf|
 +
w /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load - - - - 1}}
 +
 
 +
=== Unable to download with World Community Grid ===
 +
If you're unable to download new work units for the World Community Grid project, the problem comes from openssl, so we need to rebuild a package with a small fix in it to allow downloads.
 +
 
 +
First, we're going to get the sources for openssl using git:
 +
$ git clone git://projects.archlinux.org/svntogit/packages.git --single-branch --branch packages/openssl
 +
 
 +
This will give you four files in ./packages/trunk/, including a PKGBUILD. The PKGBUILD is not the right one, so we need to get the correct one which you can get [http://pastebin.com/pYcYf4dr here].
 +
 
 +
Now we just have to create the package:
 +
$ makepkg
 +
 
 +
This sould give you a file ending in *.pkg.tar.xz, all that's left is to install it, and restart the boinc service:
 +
 
 +
# pacman -U openssl-1.0.1.c-1-x86_64.pkg.tar.xz
 +
# systemctl restart boinc
  
 +
Your new work units should now be able to download. If you have any trouble, the original thread on the forum can be seen [https://bbs.archlinux.org/viewtopic.php?pid=1160393#p1160393 here].
  
== Links ==
+
== See also ==
 
* [http://boinc.berkeley.edu/ BOINC homepage]
 
* [http://boinc.berkeley.edu/ BOINC homepage]
 
* [http://boinc.berkeley.edu/projects.php List of BOINC projects]
 
* [http://boinc.berkeley.edu/projects.php List of BOINC projects]
* [http://en.wikipedia.org/wiki/BOINC Wikipedia entry]
+
* [[Wikipedia:BOINC|Wikipedia entry]]

Revision as of 11:49, 24 February 2014

BOINC website: "Use the idle time on your computer (Windows, Mac, or Linux) to cure diseases, study global warming, discover pulsars, and do many other types of scientific research. It's safe, secure, and easy."

Wikipedia: "The Berkeley Open Infrastructure for Network Computing (BOINC) is a non-commercial middleware system for volunteer and grid computing. It was originally developed to support the SETI@home project before it became useful as a platform for other distributed applications in areas as diverse as mathematics, medicine, molecular biology, climatology, and astrophysics. The intent of BOINC is to make it possible for researchers to tap into the enormous processing power of personal computers around the world."

Installation

Install either boinc or boinc-nox from the Official repositories. The latter package omits Xorg dependencies, and is therefore suited for use on headless servers.

Both packages install a unit file named boinc.service. Therefore, the daemon can be managed using systemctl. Read Systemd#Using_units for details.

Using BOINC

BOINC via the GUI

By default, a password is created in /var/lib/boinc/gui_rpc_auth.cfg for connecting to the daemon. To simplify connection of the GUI to the daemon, cd to your home directory, create a link to the file, and change permissions to allow read access to boinc group members.

$ cd ~/
$ ln -s /var/lib/boinc/gui_rpc_auth.cfg gui_rpc_auth.cfg
# chmod 640 gui_rpc_auth.cfg

If you prefer a different password, or none at all, you can edit /var/lib/boinc/gui_rpc_auth.cfg. Then restart BOINC daemon.

If you do not like the idea of having this file in your home directory, there is an alternative approach. BOINC Manager will also look for a readable gui_rpc_auth.cfg file in the current working directory. If you make the file readable by the boinc group and ensure that the manager is run with /var/lib/boinc as the working directory, you should find that the client connects to the daemon automatically, as desired. This can usually be achieved via the menu editor in your desktop environment of choice.

To start the GUI, use the boincmgr command

$ boincmgr

BOINC should now take you through the process of attaching to a project. NB, some projects will let you create an account remotely via the GUI while some may require you to first create an account via their website. You can attach to multiple projects if you have the resources (disk space, time, CPU power). Do this via menu option Tools / Attach to project.

If BOINC did not ask you to connect to a project, then make sure you are connected to the daemon. Go to menu option Advanced / Select computer, choose your machine's name and enter the password. (To avoid this, make sure the above steps regarding gui_rpc_auth.cfg have been done.)

Projects using GPU

If you want to use your GPU, you need the proprietary nvidia or amd drivers. For ATI/AMD Cards you also need Catalyst driver for stock kernel which you can get from AUR. For Nvidia, you also need the package opencl-nvidia located in extra.

In addition, the boinc user should be in the video group:

# gpasswd -a boinc video

The boinc user also needs to have access to your X session. Use this command to accomplish this:

xhost local:boinc

You may want to add that to a startup script.

BOINC via the CLI

For boinc-nox, boinccmd and boinc have help information that can be referenced. boinccmd is BOINC's recommended command line interface.

Log files

NB, BOINC places log files in /var/lib/boinc/

/var/lib/boinc/stderrdae.txt
/var/lib/boinc/stdoutdae.txt

Considerations when choosing a project

Projects have different minimum hardware requirements (CPU, disk space), and different times to taken to run each work unit. If you do not finish a work unit before the deadline it will sent out to someone else, but it is better to look around to see what projects suit your machine and your uptime patterns to avoid this happening.

Also, if it is important to you, check if the project makes the data and results publicly available.

Running on Arch64

Some projects provide only 32bit applications which may require 32bit libraries to run work units or show graphics. You will find most of these libraries in the [multilib] repository.

To run WUs (e.g. Climateprediction)
lib32-glibc, lib32-glib2
To show graphics (e.g. Several projects of WCG, Climateprediction)
lib32-pango, lib32-libxdamage, lib32-libxi, lib32-libgl, lib32-libjpeg6AUR (AUR), and lib32-libxmu

Troubleshooting

GPU missing

If you get this error :

GPU Missing

and the Work Unit does not start, you should restart the boinc.service daemon.

This will happen if the BOINC daemon starts before the an X session is fully initialized.

Laptop overheating and battery duration reduction

If you run BIONC on a laptop with the ondemand governor (the default), it will keep the CPUs at their maximum frequencies (over)heating them and decreasing battery duration. The best way to fix this is to tell the ondemand to not rise the CPU frequencies for BIONC:

# echo 1 >/sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load

To do this on boot, create the following tmpfiles.d config:

/etc/tmpfiles.d/ondemand-ignore-nice.conf
w /sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load - - - - 1

Unable to download with World Community Grid

If you're unable to download new work units for the World Community Grid project, the problem comes from openssl, so we need to rebuild a package with a small fix in it to allow downloads.

First, we're going to get the sources for openssl using git:

$ git clone git://projects.archlinux.org/svntogit/packages.git --single-branch --branch packages/openssl

This will give you four files in ./packages/trunk/, including a PKGBUILD. The PKGBUILD is not the right one, so we need to get the correct one which you can get here.

Now we just have to create the package:

$ makepkg 

This sould give you a file ending in *.pkg.tar.xz, all that's left is to install it, and restart the boinc service:

# pacman -U openssl-1.0.1.c-1-x86_64.pkg.tar.xz
# systemctl restart boinc

Your new work units should now be able to download. If you have any trouble, the original thread on the forum can be seen here.

See also