Seti-boinc sur Linux PowerPC.


english version


1. Introduction.

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.


1. Introduction.

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))

2. Enregistrement en tant que participant au projet seti@home.

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.

3. Téléchargement, compilation et paramétrage des logiciels.

3.1 Description sommaire.

Seti-boinc, comme son nom l'indique, est constitué de deux logiciels principaux :

Il y aura donc deux logiciels à compiler.

3.2 Téléchargements.

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.

3.3 Compilation de boinc.

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.

3.4 Compilation de seti_boinc.

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.

3.5 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!

3.6 Optimisations pour G3, G4 et G5.

3.6.1 Optimisations pour G3.

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.

3.6.2 Optimisations pour G4.

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.

3.6.3 Optimisations pour G5.

Conseils d'optimisation pour G5 bienvenus.

4.0 Références.

Auteur.

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