Contents

?Anchor(Introduction)

Introduction

http://boinc-doc.net/boinc-wiki/index.php?title=BOINC_FAQ:_Introduction_To_BOINC

The [http://boinc.berkeley.edu/ wiki:BOINC] project transferred all its fame from the [http://setiweb.ssl.berkeley.edu/ SETI@home] project that the developers created before to the new infrastructure they are providing. This is far more flexible now, now fostering many more projects at a very high scientific level. It is a great success with a strong attention of the media.

The idea behind having Debian projects for BOINC ( {alioth:pkg-boinc} ) was that Debian could push the infrastructure by its capabilities of automated builds from source that cater for a higher efficiency of clients under Debian since these are adapted to the AMD/Intel/other processors, also taking, if preferences are set correctly by the user, the respective version of the processor into account.

From the user's perspective, BOINC has three parts.

  1. The server that the data flow to which, after registration to the project(s) is no longer of interst.
  2. The boinc client that is commonly wrapped by the BOINC Manager (boincmgr) and the only program actually that is started by the user.
  3. The application's binary that is started by the boinc client.

The speed of the processor is measured by the boinc-client. One gets the more credits for one's efforts in the stats, the faster the boinc-client says the individual machine is. Hence, it makes perfect sense to have a very much optimised binary of the boinc client, if one is interested in the stats. In a way, the Debianers are interested in high stats to show that their distribution is a good one. However, the client that does the real work, the application's binary, does not go any faster from that. And this is where the real interest is in. Hence, the ultimate goal of this project is, that we have packages for the applications, too. Some are only distributed as binaries, though, which renders this process difficult. A debian package for the SETI client is available not as binary package yet but via Subversion, instructions for which you find below.

?Anchor(installation)

Installation

Installation of binary packages

If you are running DebianUnstable or DebianTesting you should add the following lines to your /etc/apt/sources.list file:

  # experimental BOINC packages for Debian "sid" (unstable)
  deb     http://pkg-boinc.alioth.debian.org/debian experimental main non-free
  deb-src http://pkg-boinc.alioth.debian.org/debian experimental main non-free

For DebianSarge use these lines for your /etc/apt/sources.list file:

  # BOINC packages for Debian 3.1 "sarge" (stable)
  deb     http://pkg-boinc.alioth.debian.org/debian sarge main
  deb-src http://pkg-boinc.alioth.debian.org/debian sarge main

Now update the package index files and install the BOINC packages:

  apt-get update
  apt-get install boinc-client boinc-manager

Finally, run the user interface boincmgr and follow the instructions to attach a new project to your BOINC core client.

Installation from source

The installation from source is totally identical to the binary. The apt-src tool takes care.

  1. Prepare source directory
    1. mkdir -p ~/src/boinc
    2. cd !$
    3. apt-src install boinc
  2. Inspect source and apply patches
  3. Build and install binaries
    1. apt-src build boinc
    2. dpkg -i boinc-client boinc-manager

The man page to apt-src gives insights into how above steps could be more streamlined. I.e., if no manual intervention is desired, with apt-src install -i boinc all these steps could have been performed in one go.

Using subversion for the latest source

1. Download the files from the the repository, substitute smoe-guest in the URL with your user id:

    svn co svn+ssh://smoe-guest@svn.debian.org/svn/pkg-boinc

You will be asked for a password. Actually, I am always asked three times :-) The download is likely to work without the specification of a user name, though this is all about contributing code and you need an account for the upload.

2. Now, files can be edited and subsequently be submitted (checked in) back to the repository. The URL from abo

    svn ci

3. To get the latest version again, run update without the reqirement of specifying the URL again, which is stored in local files.

    svn up

The program svn-buildpackage is nice for creating debian packages directly from the svn repository. Our repository is not fully prepared for that, the orig.tar.gz is not available. Run

   svn-buildpackage -rfakeroot

in the directory trunk/boinc/ and subsequently inspect the file

   trunk/boinc/.svn/deb-layout

That file supports the specification of the source location. Please let feedback fly in. We presume this to involve some changes to our repository that we have not addressed yet.


Optimising the client to the local hardware

Changing Compiler settings

Frankly, we are ourselves a bit floating around on how to optimise the build process. At the moment, the following feels a nice path to go. Prior to the build, or even prior to the download, set the following variables which are picked up by configure.

  CFLAGS      C compiler flags
  CXXFLAGS    C++ compiler flags

Then inspect man gcc for the specification of your hardware. The best settings should be exchange on this wiki. For a laptop the following might be appropriate:

  export CFLAGS="-mtune=pentium-m"
  export CXXFLAGS=$CFLAGS

It was stated before that this settings will only influence the credits assigned to your machines, unless you also recompile the module performing the computation which is a separate download for which alioth does not yet feature Debian packages. Sadly, while the above apparently works when starting the configure directly, say with

  CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS ./configure --enable-server --enable-client

this information is not forwarded in the current debian/rules. Suggestions?