Seti-boinc on PowerPC Linux.


version française


1. Introduction.

2. Subscribing to the seti@home project.

3. Downloading, compiling and parameters settings of the software.

   3.1 Description.

   3.2 Downloading.

   3.3 Compiling boinc.

   3.4 Compiling seti_boinc.

   3.5 Installation and parameters settings.

   3.6 Optimization for G3, G4 and G5.

4. References.


1. Introduction.

The seti@home project is changing (march 2005) to a new distribution mode of WU, and so, new software is needed in order to participate, but there are no binaries for the PowerPC Linux plateform.

However the sources of the software are available for download and the licence is LGPL. In this document I will explain how to download software sources, how to compile them and how to parametrize them in order to be able to use the software on PowerPC Linux.

This document is based on "How to compile Optimized BOINC client for Linux" et "How To Compile Optimized SETI client for BOINC on Linux". It was written for Macintosh running Yellow Dog Linux 3.0 (g++ version (GCC) 3.2.2 20030217 (Yellow Dog Linux 3.0 3.2.2-2a))

2. Subscribing to the seti@home project.

First of all, you must have subscribed to the seti@home project. Go to seti@home-boinc where the subscribtion procedure is explained. If you are a former seti@home user, you must activate your new account which was created from your old account.

3. Downloading, compiling and parameters settings of the software.

3.1 Description.

Seti-boinc consist of two principal software :

The will be thus two software to compile.

3.2 Downloading.

Boinc is downloadable at this URL :

http://boinc.berkeley.edu/source/archive/ for "stables" versions and this :

http://boinc.berkeley.edu/source/nightly/ for CVS versions.

Seti_boinc is downloadable here :

http://setiweb.ssl.berkeley.edu/sah/seti_source/nightly/

Download a tarball (.tar.gz) rather than a zip (.zip), and a boinc_public-cvs file rather than a boinc-cvs one.

Explanations for compilation are based on CVS version of March 25, 2005.

3.3 Compiling boinc.

In the directory where you have downloaded, unzip and untar the file boinc_public-cvs-2005-02-25.tar.gz with the following command :

tar xvzf boinc_public-cvs-2005-02-25.tar.gz

then go to the newly created directory :

cd boinc_public

Verify the values of the CFLAGS and CXXFLAGS environment variables :

echo $CFLAGS
echo $CXXFLAGS

Give them "neutral" values, for example :

export CFLAGS="-O2 -pipe"
export CXXFLAGS=$CFLAGS

You can choose to optimize the compilation for your Macintosh. To do this, just read "3.6 Optimizations for G3, G4 et G5". Then, configure, compile and install :

./configure --disable-server
make clean
make
sudo make install

During excution of the configure script, you may obtain the following message :

================================================================================
WARNING: openGL/GLU/glut not found.

The GL, GLU and glut libraries are required in order to build the graphical parts
of the BOINC application API library.

==> only building non-graphical parts of the BOINC API Library for now.

NOTE: on MacOS X/Darwin you might consider running configure withe the option
'./configure --with-apple-opengl-framework'
in order to use the Mac-native openGL framework

================================================================================

It is not quite significant, you can ignore this warning. You may obtain another warning relating to wxWidget that you can also ignore.

3.4 Compiling seti_boinc.

The compilation of Seti_boinc starts with a new compilation of boinc with other parameters to obtain libraries needed by seti_boinc. To do that, remove the boinc_public directory previously created and, again, unzip and untar the file boinc_public-cvs-2005-03-25.tar.gz, then rename the directory boinc_public in boinc, this is compulsory. Then goto the boinc directory and compile boinc again :

export MYSQL_CONFIG=true
export CFLAGS="-O2 -pipe"
export CXXFLAGS=$CFLAGS
./configure
make -k

You may get some errors during compile time, especially if MySQL environment is not present, but you will obtain the librairies needed by seti_boinc.

Now, we can compile seti_boinc.

In the directory where you have downloaded, unzip and untar the file seti_boinc-cvs-2005-03-25.tar.gz with the following :

tar xvzf seti_boinc-cvs-2005-02-25.tar.gz

then go to the new directory (it's possible that the name of the new directory is not excatly seti_boinc, but its name starts with seti_boinc) with :

cd seti_boinc

Verify the values of the CFLAGS and CXXFLAGS environment variables :

echo $CFLAGS
echo $CXXFLAGS

Give them "neutral" values, for example :

export CFLAGS="-O2 -pipe"
export CXXFLAGS=$CFLAGS

You can choose to optimize the compilation for your Macintosh. To do this, just read "3.6 Optimizations for G3, G4 et G5". Then, configure and compile :

./configure --disable-server
make clean
make -k

During configure step, you may see a warnig related to the glut library. You can ignore it. The compilation does not produce errors.

When compilation is finished, there are the following runnable file in the client directory :

-rwxrwxr-x 711291 27/03/2005 16:48:18 seti_boinc
-rwxrwxr-x 711291 27/03/2005 16:48:18 setiathome-4.7.powerpc-unknown-linux-gnu.debug
-rwxrwxr-x 638072 27/03/2005 16:48:19 setiathome-4.7.powerpc-unknown-linux-gnu

Keep them there, don't install them but see the following : installation and parameter setting.

3.5 Installation and parameter setting.

We will create a new working directory for boinc's projects. This directory can be anywhere on your hard-disk, but I advise you to create this directory into your $HOME directory :

cd
mkdir boinc
cd boinc

Now, we will initialize boinc's working environment. Just run boinc_client (c.f. 3.3) :

boinc_client

Boinc will ask you the project URL and your account key. You received these data by mail when you registered to seti@home (c.f. § 2). Then boinc will take measurements of performance of your system. When these tests are finished, stop boinc by typing ctrl-C : the working environment is partially initialized.

We will continue initialization by hand.

In the directory ~/boinc/projects/setiathome.berkeley.edu created by boinc_client, create the file app_info.xml which will store the following :

<app_info>
<app>
<name>setiathome</name>
</app>
<file_info>
<name>setiathome-4.7.powerpc-unknown-linux-gnu</name>
<executable/>
</file_info>
<app_version>
<app_name>setiathome</app_name>
<version_num>470</version_num>
<file_ref>
<file_name>setiathome-4.7.powerpc-unknown-linux-gnu</file_name>
<main_program/>
</file_ref>
</app_version>
</app_info>

You must adapt the setiathome's version number.

Then, copy setiathome-4.7.powerpc-unknown-linux-gnu you have obtain at § 3.4 in this directory :

cp /path_to_seti_boinc/client/setiathome-4.7.powerpc-unknown-linux-gnu ~/boinc/projects/setiathome.berkeley.edu/.

Check that the file can be run. Make it runnable if needed :

chmod 755 setiathome-4.7.powerpc-unknown-linux-gnu

There is still another little thing to be made by hand. In the past, the seti@home's server of WU (Working Unit) has been unavailable during a couple of days several times. So I advise you to take sufficient work for several days. To do that, you just to change a value in the file ~/boinc/global_prefs.xml. I ask boinc to get for 6 days of work :

<work_buf_min_days>6</work_buf_min_days>

It is useless to ask for more than 15 days of work because each WU must be processed in a maximum of 15 days.

The working environnement is now initialized and you can run, from the directory ~/boinc, boinc_client again. This time, boinc will get somme Wu and process them.

3.6 Optimizations for G3, G4 and G5.

3.6.1 Optimizations for G3.

An optimization simple is possible by asking gcc to compile specifically for the G3 micro-processor. Give to the CFLAGS environment variable the value "-mcpu=750" in addition to the others values, before running the script configure of boinc and seti_boinc :

export CFLAGS="-O2 -mcpu=750 -pipe"
export CXXFLAGS=$CFLAGS

The computation time of a WU will last some microseconds less ;o).

Other tricks for optimizing are welcome.

3.6.2 Optimizations for G4.

Optimization suggested by Matt Anton :

Give to the CFLAGS et CXXFLAGS the following values, before running the script configure of boinc and seti-boinc :

export CFLAGS="-fast -maltivec -mcpu=7450"
export CXXFLAGS=$CFLAGS

Please note that the -fast option implies the -O3 option.

Other tricks for optimizing on G4 processors are welcome.

3.6.3 Optimizations for G5.

Tricks for optimizing on G5 processors are welcome.

4.0 References.

Auteur.

Etienne Herlent.

Translation into english by Etienne Herlent.

 

Dernière mise à jour le 1/4/05.

les fichiers en téléchargement sont à ftp://ftp.linux-france.org/pub/macintosh/

 

Retour à GNU Linux sur Macintosh