2. Enregistrement en tant que participant au projet seti@home.
3. Téléchargement, compilation et paramétrage des logiciels.
3.1 Description sommaire.
3.2 Téléchargements.
3.3 Compilation de boinc.
3.4 Compilation de seti_boinc.
3.5 Installation et paramétrage.
3.6 Optimisation pour G3, G4 et G5.
4. Références.
Le projet seti@home est en cours (mars 2005) de migration vers un nouveau mode de distribution des données et, comme ça arrive trop souvent, la plate-forme Linux PowerPC est oubliée (il n'y a pas de binaires téléchargeables pour cette plate-forme).
Cependant les sources des logiciels nécessaires sont disponibles en téléchargement et sous LGPL. Dans ce document je vais expliquer où télécharger les sources des logiciels, comment les compiler et les paramétrer afin de pouvoir les utiliser sur Linux PowerPC.
Ce document est inspiré des guides "How to compile Optimized BOINC client for Linux" et "How To Compile Optimized SETI client for BOINC on Linux". Il a été rédigé pour un Macintosh faisant tourner Yellow Dog Linux 3.0 (g++ version (GCC) 3.2.2 20030217 (Yellow Dog Linux 3.0 3.2.2-2a))
Avant toute chose, il faut s'être enregistré comme participant au projet seti@home. Je vous renvoie donc au site seti@home-boinc où la procédure est expliquée. Si vous êtes un ancien participant au projet, vous devez activer votre nouveau compte seti@home qui a été créé à partir de votre ancien compte.
Seti-boinc, comme son nom l'indique, est constitué de deux logiciels principaux :
Il y aura donc deux logiciels à compiler.
Le logiciel boinc est téléchargeable à cette URL :
http://boinc.berkeley.edu/source/archive/ pour les versions dites stables et celle là :
http://boinc.berkeley.edu/source/nightly/ pour les versions CVS.
Le logiciel seti_boinc est téléchargeable à cette URL:
http://setiweb.ssl.berkeley.edu/sah/seti_source/nightly/
Préférez une archive tarball (.tar.gz) à zip (.zip), et d'autre part, une archive boinc_public-cvs à une archive boinc-cvs.
Les explications de compilation sont basées sur les versions CVS du 25 mars 2005.
Dans le répertoire de téléchargement, décompactez l'archive boinc_public-cvs-2005-02-25.tar.gz par la commande suivante :
tar xvzf boinc_public-cvs-2005-02-25.tar.gz
puis allez dans le répertoire nouvellement créé par :
cd boinc_public
Vérifiez les valeurs des variables d'environnement CFLAGS et CXXFLAGS :
echo $CFLAGS
echo $CXXFLAGS
Donnez leur des valeurs "neutres", par exemple :
export CFLAGS="-O2 -pipe"
export CXXFLAGS=$CFLAGS
Vous pouvez aussi choisir d'optimiser l'exécutable pour votre Macintosh. Lisez à ce propos le § "3.6 Optimisations pour G3, G4 et G5".Puis, configurez l'environnement de compilation, compilez et installez :
./configure --disable-server
make clean
make
sudo make install
Pendant l'exécution du script configure
, vous pouvez obtenir
le message suivant :
================================================================================
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
================================================================================
Ce n'est pas bien important, vous pouvez ignorer cet avertissement. Vous en aurez probablement un autre concernant wxWidget que vous pourrez également ignorer.
La compilation de seti_boinc commence par une nouvelle
compilation de boinc avec d'autres paramètres pour obtenir
des bibliothèques nécessaires à seti_boinc. Pour cela
supprimez le répertoire boinc_public
créé précédemment et
décompactez à nouveau l'archive boinc_public-cvs-2005-03-25.tar.gz, puis
renommez le répertoire
boinc_public
en
boinc
, ceci est
impératif. Puis placez vous dans le répertoire boinc
et
compilez à nouveau boinc :
export MYSQL_CONFIG=true
export CFLAGS="-O2 -pipe"
export CXXFLAGS=$CFLAGS
./configure
make -k
Vous obtiendrez probablement quelques erreurs pendant la compilation, surtout si l'environnement de MySQL n'est pas présent ou pas paramétré, mais vous obtiendrez les bibliothèques nécessaires à seti_boinc.
Maintenant que les bibliothèques nécessaires à seti_boinc sont compilées, nous pouvons passer à la compilation de seti_boinc.
Dans le répertoire de téléchargement, décompactez l'archive seti_boinc-cvs-2005-03-25.tar.gz par la commande suivante :
tar xvzf seti_boinc-cvs-2005-02-25.tar.gz
puis allez dans le répertoire nouvellement créé (il est possible que ce
répertoire ne s'appelle pas exactement seti_boinc
mais son nom
commence comme ça) par :
cd seti_boinc
Vérifiez les valeurs des variables d'environnement CFLAGS et CXXFLAGS :
echo $CFLAGS
echo $CXXFLAGS
Donnez leur des valeurs "neutres", par exemple :
export CFLAGS="-O2 -pipe"
export CXXFLAGS=$CFLAGS
Vous pouvez aussi choisir d'optimiser l'exécutable pour votre Macintosh. Lisez à ce propos le § "3.6 Optimisations pour G3, G4 et G5". Puis, configurez l'environnement de compilation et compilez :
./configure --disable-server
make clean
make -k
Pendant l'exécution du script configure
, vous pouvez obtenir
un avertissement concernant la bibliothèque glut que vous pouvez ignorer. La
compilation doit s'effectuer sans aucune erreur.
Quand la compilation est terminée, vous obtenez dans le répertoire
client
les exécutables suivants :
-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
Gardez-les au chaud, ne les installez pas, mais voyez plutôt le paragraphe suivant : installation et paramétrage.
Nous allons tout d'abord créer un répertoire de travail pour les projets
gérés par boinc. Ce répertoire peut a priori se trouver
n'importe où sur votre disque dur à la condition que vous ayez des droits
d'accès suffisants pour la lecture, l'écriture et l'exécution. Je vous
conseille de créer tout simplement un répertoire boinc
dans
votre répertoire $HOME
:
cd
mkdir boinc
cd boinc
Nous allons maintenant initialiser l'environnement de travail de boinc en lançant boinc_client, l'exécutable obtenu au § 3.3 :
boinc_client
Boinc va vous demander l'URL du projet auquel vous
participez ainsi que votre identifiant. Vous avez reçu ces données par mail
quand vous vous êtes enregistrés à seti-boinc (c.f. § 2).
Puis boinc va effectuer des mesures de performance de votre
système. Quand ces tests sont terminés, arrêtez boinc par
ctrl-C
: l'environnement de travail est partiellement
initialisé.
Nous allons continuer l'initialisation à la main.
Dans le répertoire ~/boinc/projects/setiathome.berkeley.edu
créé par boinc_client, créez le fichier
app_info.xml
qui contiendra les informations suivantes :
<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>
Si vous avez obtenu lors du téléchargement une autre version de setiathome, adaptez le numéro de version.
Ensuite, copiez l'exécutable
setiathome-4.7.powerpc-unknown-linux-gnu
obtenu au § 3.4 dans ce
même répertoire :
cp /chemin_vers_seti_boinc/client/setiathome-4.7.powerpc-unknown-linux-gnu ~/boinc/projects/setiathome.berkeley.edu/.
Vérifiez que le fichier est exécutable, au besoin, rendez-le exécutable par :
chmod 755 setiathome-4.7.powerpc-unknown-linux-gnu
Encore une petite chose à faire à la mimine. Par le passé, le serveur de
WU (WU = working units/unités de travail) de seti@home a pu être indisponible
plusieurs jours de suite, aussi je vous conseille de stocker de quoi
travailler pendant plusieurs jours dans votre disque dur. Pour cela, il
suffit de changer une valeur dans le fichier
~/boinc/global_prefs.xml
. J'en prends pour environ 6 jours de
temps elapse (ou délai) :
<work_buf_min_days>6</work_buf_min_days>
6 jours pour le Macintosh qui se tue à la tâche 7j/7 et 24h/24. Pour mes autres machines qui ne fonctionnent pas 24h/24, j'adapte cette durée (en gros et à la louche, j'indique 4 jours).
Il est inutile de prendre de quoi travailler plus de 15 jours étant donné que chaque WU possède un délai maximum dans lequel elle doit être traitée (ce délai est d'environ 2 semaines, il est affecté lorsque la WU est téléchargée). Au delà de ce délai, vous ne serez pas crédités pour votre travail (ou plutôt celui de votre Macintosh) et les WU auront été affectées à un autre participant à seti@home.
L'environnement de travail est maintenant initialisé, vous pouvez démarrer
à nouveau, depuis le répertoire ~/boinc, boinc_client
qui va
cette fois-ci télécharger de quoi travailler et faire travailler
seti_boinc.
Si vous êtes un nouveau participant à seti@home, rejoignez donc une équipe et pourquoi pas celle-ci.
Bonne traque à tous!
Une optimisation simple est possible en demandant à gcc de compiler
spécifiquement pour ce µP. Pour cela, affectez
"-mcpu=750
" à CFLAGS
en plus des
autres options et avant le lancement des scripts
configure
de boinc et
seti_boinc :
export CFLAGS="-O2 -mcpu=750 -pipe"
export CXXFLAGS=$CFLAGS
Vous allez ainsi gagner quelques pouillèmes de chouilla de micro-seconde par WU ;o).
D'autres conseils d'optimisation pour processeur G3 sont les bienvenus.
Optimisation proposée par Matt Anton :
Affecter les variables d'environnement CFLAGS et CXXFLAGS comme suit, avant de lancer les scripts configure de boinc et seti-boinc :
export CFLAGS="-fast -maltivec -mcpu=7450"
export CFXXLAGS=$CFLAGS
Notez que l'option -fast
implique l'option
-O3
.
D'autres conseils d'optimisation pour G4 bienvenus sont les bienvenus.
Conseils d'optimisation pour G5 bienvenus.
Dernière mise à jour le 1/4/05.
les fichiers en téléchargement sont à ftp://ftp.linux-france.org/pub/macintosh/