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.
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))
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.
Seti-boinc consist of two principal software :
The will be thus two software to compile.
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.
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.
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.
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.
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.
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.
Tricks for optimizing on G5 processors are welcome.
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/