Difference between revisions of "BOINC"

From ArchWiki
Jump to: navigation, search
m (Headless Servers: Use aur template.)
(9 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:Mathematics and science (English)]]
+
[[Category:Mathematics and science]]
{{i18n|BOINC}}
+
[[de:BOINC]]
 
+
[[it:BOINC]]
== What is BOINC ==
+
[[ja:BOINC]]
 +
[[sk: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."''
 
[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."''
  
 
[[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."''
 
[[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."''
  
== Install BOINC ==
+
== Installation ==
 
=== Overview ===
 
=== 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.
 
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.
Line 29: Line 30:
 
Check if BOINC is running:
 
Check if BOINC is running:
 
  $ ps aux | grep boinc
 
  $ ps aux | grep boinc
 +
 +
=== Headless Servers ===
 +
 +
If you're planning to run BOINC on a headless server, and would like to avoid installing wkWidgets and GTK for a GUI that you won't use anyway, consider installing {{AUR|boinc-nogui}} from the [[Arch User Repository|AUR]].
 +
 +
=== boinc-svn ===
 +
{{AUR|boinc-svn}} is available on AUR. It supports to build latest stable release and non-X version as well as trunk.
 +
{{Warning|BOINC's trunk is really unstable. It often fails the build. You should not use trunk unless you are tester/developer of boinc.}}
 +
To build non-X version, uncomment the following line in PKGBUILD. This does not build BOINC Manager and not depend on any X libraries:
 +
## If you want to use X less version, uncomment below.
 +
_X="no"
 +
 +
To build latest stable release, uncomment the following lines in PKGBUILD:
 +
## If you want to use stable release, uncomment below 2 lines.
 +
_root=tags
 +
_mod=boinc_core_release_7_0_28
 +
 +
If you use systemd, you can control boinc service under systemd.
 +
 +
To start boinc:
 +
# systemctl start boinc
 +
To enable boinc service:
 +
# systemctl enable boinc
  
 
== Using BOINC ==
 
== Using BOINC ==
Line 50: Line 74:
  
 
==== 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 71: Line 96:
  
 
;To run WUs (e.g. Climateprediction)  
 
;To run WUs (e.g. Climateprediction)  
:{{Package Official|lib32-glibc}}, {{Package Official|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)
:{{Package Official|lib32-pango}}, {{Package Official|lib32-libxdamage}}, {{Package Official|lib32-libxi}}, {{Package Official|lib32-libgl}}, {{Package AUR|lib32-libjpeg6}} (AUR), and {{Package Official|lib32-libxmu}}
+
:{{Pkg|lib32-pango}}, {{Pkg|lib32-libxdamage}}, {{Pkg|lib32-libxi}}, {{Pkg|lib32-libgl}}, {{AUR|lib32-libjpeg6}} (AUR), and {{Pkg|lib32-libxmu}}
  
 
==Troubleshooting==
 
==Troubleshooting==
Line 82: Line 107:
  
 
This will happen if the BOINC daemon starts before the an X session is fully initialized. Generally, if the daemon is set to start in the background in [[rc.conf]], this doesn't happen, but it does sometimes beat the display manager. If, however, no [[display manager]] is set to load on boot, the daemon will '''always''' have to be restarted after X initialization for the GPU to be recognized.
 
This will happen if the BOINC daemon starts before the an X session is fully initialized. Generally, if the daemon is set to start in the background in [[rc.conf]], this doesn't happen, but it does sometimes beat the display manager. If, however, no [[display manager]] is set to load on boot, the daemon will '''always''' have to be restarted after X initialization for the GPU to be recognized.
 +
 +
==Running boinc in laptops==
 +
If you run Boinc in your laptop with ondemand governor, the CPUs will be kept always at maximum frequencies and thus (over)heating them and decreasing battery duration. The best way to fix it is to tell the governor not to rise frequency for boinc:
 +
echo 1 >/sys/devices/system/cpu/cpufreq/ondemand/ignore_nice_load
 +
This may be added to /etc/rc.local (if you don't use native initscripts and not systemd).
  
 
== Links ==
 
== Links ==

Revision as of 13:42, 8 December 2012

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

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

Headless Servers

If you're planning to run BOINC on a headless server, and would like to avoid installing wkWidgets and GTK for a GUI that you won't use anyway, consider installing boinc-noguiAUR from the AUR.

boinc-svn

boinc-svnAUR is available on AUR. It supports to build latest stable release and non-X version as well as trunk.

Warning: BOINC's trunk is really unstable. It often fails the build. You should not use trunk unless you are tester/developer of boinc.

To build non-X version, uncomment the following line in PKGBUILD. This does not build BOINC Manager and not depend on any X libraries:

## If you want to use X less version, uncomment below.
_X="no"

To build latest stable release, uncomment the following lines in PKGBUILD:

## If you want to use stable release, uncomment below 2 lines.
_root=tags
_mod=boinc_core_release_7_0_28

If you use systemd, you can control boinc service under systemd.

To start boinc:

# systemctl start boinc

To enable boinc service:

# systemctl enable boinc

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.

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

If you get this error :

GPU Missing

and the Work Unit does not start, you should restart the BOINC daemon :

# /etc/rc.d/boinc restart

This will happen if the BOINC daemon starts before the an X session is fully initialized. Generally, if the daemon is set to start in the background in rc.conf, this doesn't happen, but it does sometimes beat the display manager. If, however, no display manager is set to load on boot, the daemon will always have to be restarted after X initialization for the GPU to be recognized.

Running boinc in laptops

If you run Boinc in your laptop with ondemand governor, the CPUs will be kept always at maximum frequencies and thus (over)heating them and decreasing battery duration. The best way to fix it is to tell the governor not to rise frequency for boinc:

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

This may be added to /etc/rc.local (if you don't use native initscripts and not systemd).

Links