BOINC

BOINC is a framework for managing distributed computing projects. Here are short instructions to get up and running on FreeBSD.

Installation

Installing BOINC

Get up-to-date ports tree! Then install boinc-client:

cd /usr/ports/net/boinc-client
make install clean

You will be offered to build optional graphical management utility called BOINC Manager.

Installing projects

Seven projects are natively available for FreeBSD.

Leiden Classical just works, no installation necessary. The science apps are sent by server on demand. You need to have libglut port installed.

Travelling Salesman Problem is another project that just works. No ports neccesary, project sends static binary.

Genetic Life another.

For the following four - SETI at home, Einstein at home, SIMAP (out of work often, check the homepage) and Milkyway, install the respective ports:

cd /usr/ports/astro/boinc-setiathome-enhanced
make install clean
cd /usr/ports/astro/boinc-einsteinathome
make install clean
cd /usr/ports/biology/boinc-simap
make install clean
cd /usr/ports/astro/boinc-milkyway
make install clean

Constellation have a manual installation for FreeBSD 7 and up.

World Community Grid will send Linux app to FreeBSD client. Make sure you have Linux emulation enabled and linux_base-fc4 port installed before attaching.

Most other Linux science apps runs on FreeBSD under Linux emulation. You may want to enable ALT option in the boinc-client port.

Be sure you have elf fallback sysctl set!

kern.elf32.fallback_brand=3

Alternatively, you can download Linux app, brandelf it to Linux type, write a app_info.xml file for it and place it to the right place under /var/db/boinc.

Customizing installation

You can define three variables to alter the behaviour of the ports. Please, define them for both the client and the project ports. Best is to put them into /etc/make.conf.

BOINC_HOME=/var/db/boinc

If you have less than 100 MB of space in /var, set this variable to some place with more space.

BOINC_USER=boinc
BOINC_GROUP=nobody

Set user and group for the client to run under. Rarely needed.

Configuration

Account

You need an account in the BOINC project. The account consists of email address and password. The BOINC accounts are shared across the projects, so you only have to register once. If you use the graphical BOINC Manager, the account creation is done as part of attaching to the project (see below). If you decide to go command-line, visit create account form and register.

Start up client

Add following to the /etc/rc.conf to enable BOINC client:

boinc_enable="YES"

Then start BOINC client with

/usr/local/etc/rc.d/boinc* start

Controlling client

The client generates a random password on first startup and saves it to /var/db/boinc/gui_rpc_auth.cfg. You will need this password to control the client. Easiest way is to change file permissions on that file to allow you reading, and then start controlling utility from /var/db/boinc. Graphical controlling utility is called boinc_gui, start it like this:

cd /var/db/boinc
boinc_gui

Command line utility is called boinc_cmd, try:

cd /var/db/boinc
boinc_cmd --get_host_info

It does not ship with a man page but an equivalent is available on the project wiki.

Attach a project

Once you have client running, you have to instruct it to participate in a project.

Project URL for Setiathome is setiathome.berkeley.edu, for Einstein at home it's einstein.phys.uwm.edu.

Using graphical BOINC Manager

Choose Attach from the menu. Enter project URL, your BOINC account email and password. If you don't have an account, it will be created for you.

Using command line

First, you have to obtain a project key for your BOINC account and given project.

boinc_cmd --lookup_account <project URL> <email> <password>

Then attach the project by running:

boinc_cmd --project_attach <project URL> <account key>

w00t!

Now you're running. Consider joining FreeBSD team. :)

Please mail all the problems you encounter, and also a success stories, to Pav Lucistnik <pav@FreeBSD.org>.