BOINC

Berkeley Open Infrastructure for Network Computing est à la fois une infrastructure de calcul distribué (ou calcul en réseau) et un Logiciel Libre qui permet de mettre la puissance de son ordinateur personnel à disposition de projets scientifiques, en fait, de « prêter » son processeur en tout ou partie.

Pour ce premier essai, je vais m'orienter vers SETI@Home car il est peut-être le projet le plus populaire (donc surement bien documenté) mais surtout le fondateur de BOINC. Il sera possible d'adhérer à d'autres projets par la suite.

La manip consiste d'abord à installer BOINC qui se compose d'une part de boinc core client, le logiciel qui communique avec les projets et d'autre part du logiciel de gestion boinc manager. Normalement, on installe les deux en même temps sur la même machine mais dans le cas de mon Projetx, je vais tenter d'installer le core client sur le T500 et le manager sur le C50-A.

Ceci fait, je vais ouvrir un compte à SETI@home grâce au manager et de ce fait lier mon core client à ce projet.

L'installation du gestionnaire boinc-manager n'est pas obligatoire, surtout si on le lie à un seul projet. On peut très bien gérer un projet directement depuis le compte ouvert sur son site internet, le boinc-manager apporte cependant plus de souplesse dans la gestion de plusieurs projets et/ou machines.

À prendre en considération

Installer BOINC sur une machine dédiée à ce projet suppose ou implique de la faire fonctionner 24h. Il faut donc prendre en considération le coût énergétique d'une telle opération.

On peut toutefois limiter le fonctionnement de BOINC (certains jours de la semaine et/ou certaines heures) et/ou suivant le contexte, suspendre les calculs si on utilise activement l'ordinateur pour d'autres tâches. On peut aussi limiter l'utilisation de la bande passante.

Installation de boinc core client sur le T500

  1. sudo apt-get update && sudo apt-get install boinc-client
  2. Redemarrer ou démarrer le client avec sudo service boinc-client start.
  3. ps aux | grep boinc pour vérifier que le daemon est en fonction (je n'ai pas de boinc-deamon indiqué mais une ligne boinc client). Je considère donc que c'est OK.
  4. Ajouter 192.168.1.5 dans le fichier /var/lib/boinc-client/remote_hosts.cfg afin d'autoriser le manager sur le C50-A à se connecter au client.
  5. Ouvrir le port 31416 : sudo ufw allow from 192.168.1.5 to any port 31416 proto tcp. Ce port est utilisé pour la communication entre le client et le manager.

Un mot de passe par défaut est parfois présent dans le fichier /var/lib/boinc-client/gui_rpc_auth.cfg mais cela semble dépendre des plateformes. Sur Debian ce fichier est vierge, ce qui veut dire que la connexion du manager au client se fera sans mot de passe (sauf à le configurer).

Le répertoire boinc-client contient les fichiers de configuration ainsi que les fichiers journaux (log), ex. stdoutdae.txt.

Installation de boinc manager sur le C50-A

  1. sudo apt install boinc-manager (sous Linux Mint Mate, le lanceur est placé dans le menu « Outils Système »).
  2. Ouvrir le menu avancé.
    1. Sélectionner un ordinateur...
    2. Entrer 192.168.1.30 dans le champ « Hôte » ; laisser vierge le champ « Mot de passe » (voir chapitre précédent) puis « Valider ».
    3. Lier un projet au client boinc en sélectionnant Ajouter un projet.
    4. SETI@home (url : http://setiathome.berkeley.edu/)
    5. Renseigner un courriel et choisir un mot de passe.

Quelques configurations sont accessibles depuis le fichier caché .BOINC Manager situé dans /home/{$USER}. Il permet par exemple de supprimer des noms d'hôtes du menu déroulant « Sélectionner un ordinateur ». En ligne de commande, il faut faire nano .BOINC\ Manager.

Problèmes rencontrés

Le gestionnaire (manager) ne s'ouvre pas.

L'icône « BOINC Manager » est bien présente dans le menu « Outils système » mais le gestionnaire refuse de s'ouvrir, sans même un message d'erreur.

Si j'ajoute le lanceur sur le tableau de bord et tente de le démarrer depuis ce raccourci, il donne alors le message :
Le changement de répertoire /var/lib/boinc-client a échoué (Aucun fichier ou dossier de ce type).

Deux solutions sont possibles.

Surchauffe critique du T500

kernel:[62037.980487] thermal thermal_zone1: critical temperature reached(100 C),shutting down

Je démonte le T500 pour vérifier la présence de poussière. L'ordinateur est propre. J'en profite tout de même pour donner quelques coups d'air comprimé.

Installation de lm-sensors, un paquet qui permet d'afficher la température des différents composants de la machine, notamment celle du microprocesseur.

sudo apt-get install lm-sensors sensors-applet

sensors pour une « photographie » des températures ou watch -n 1 -d sensors pour un rafraîchissement toutes les secondes.

Températures notées sans boinc client en service : 38°C pour temp1 et 35°C pour temp2, ventilateur environ 2630 RPM (3 mesures dans une fourchette de 4h par une température ambiante de 28°C).

BOINC remis en service, c'est effectivement l'heure des œufs au plat puisqu'il utilise par défaut le maximum des ressources disponibles, ce qui amène rapidement à une surchauffe critique du processeur.

	temp1:        +98.0°C  (crit = +127.0°C)
	temp2:        +93.0°C  (crit = +100.0°C)

	thinkpad-isa-0000
	Adapter: ISA adapter
	fan1:        3416 RPM
	temp1:        +98.0°C
	temp2:        +41.0°C
	temp3:        +38.0°C
	temp4:            N/A
	temp5:        +50.0°C
	temp6:            N/A
	temp7:        +27.0°C
	temp8:            N/A
	temp9:        +41.0°C
	temp10:       +46.0°C
	temp11:       +61.0°C
	temp12:           N/A
	temp13:           N/A
	temp14:           N/A
	temp15:           N/A
	temp16:           N/A

	coretemp-isa-0000
	Adapter: ISA adapter
	Core 0:       +93.0°C  (high = +105.0°C, crit = +105.0°C)
	Core 1:       +91.0°C  (high = +105.0°C, crit = +105.0°C)

La solution est de diminuer les ressources CPU allouées. Pour cela, il faut aller dans les options avancées de Boinc Manager et jouer sur un ou deux des paramètres ci-dessous.

Permettre à BOINC d'utiliser que 50 % du processeur : dans ce cas, s'agissant d'un processeur 2 cœurs, il en utilisera qu'un seul.

Restreindre dans le temps l'accès au processeur : c'est le champ « Utiliser au plus N % du temps processeur » (Use at most N % CPU time). Par exemple, si on entre 75 %, BOINC va utiliser le processeur 3 secondes puis faire une pose de 1 seconde.

Résultat après avoir diminué à 75 % « le temps de CPU » concédé pour les calculs, le T500 s'éteint encore après environ 30 minutes ; bien que les températures relevées soient bien plus basses et relativement éloignées des températures critiques.

	temp1:        +78.0°C  (crit = +127.0°C)
	temp2:        +60.0°C  (crit = +100.0°C)

	thinkpad-isa-0000
	Adapter: ISA adapter
	fan1:        2965 RPM
	temp1:        +78.0°C
	temp2:        +40.0°C
	temp3:        +37.0°C
	temp4:            N/A
	temp5:        +50.0°C
	temp6:            N/A
	temp7:        +32.0°C
	temp8:            N/A
	temp9:        +39.0°C
	temp10:       +44.0°C
	temp11:       +56.0°C
	temp12:           N/A
	temp13:           N/A
	temp14:           N/A
	temp15:           N/A
	temp16:           N/A

	coretemp-isa-0000
	Adapter: ISA adapter
	Core 0:       +61.0°C  (high = +105.0°C, crit = +105.0°C)
	Core 1:       +60.0°C  (high = +105.0°C, crit = +105.0°C)

Je vais donc diminuer drastiquement le paramètre « Utiliser au plus N% du temps processeur » en lui donnant une valeur de 25,00 (utiliser au plus 25 % du temps CPU).

Dans ce cas de figure, BOINC devrait donc calculer durant une seconde et faire une pose de trois secondes.

	CPU_0:        +45.0°C  (crit = +127.0°C)
	CPU_1:        +41.0°C  (crit = +100.0°C)

	thinkpad-isa-0000
	Adapter: ISA adapter
	FAN:         2607 RPM
	CPU:          +45.0°C 
	WLAN:         +37.0°C
	HDD?:         +36.0°C
	BAT1:             N/A
	BAT2:             N/A
	RAM:          +39.0°C
	VGA:          +41.0°C
	WWAN:         +43.0°C

	coretemp-isa-0000
	Adapter: ISA adapter
	Core 0:       +41.0°C  (high = +105.0°C, crit = +105.0°C)
	Core 1:       +39.0°C  (high = +105.0°C, crit = +105.0°C)

Pour remplacer les labels génériques de type « tempN° ». Créer en sudo le fichier sensors dans /etc/sensors.d et copier ce qui est indiqué dans le wiki Thinkpad.

Les températures sont maintenant proches du fonctionnement sans charge. Le T500 ne s'éteint plus. Évidemment, cela allonge de façon importante le temps de calcul des unités de travail, je passe d'une estimation d'environ 2h à plus de 4h par unité. Il serait peut-être souhaitable d'augmenter un peu le temps CPU alloué (prochain essai à 50 %) ou de trouver un moyen de refroidir le T500.

Consommation d'energie

Powerstat mesure (entre autres) la puissance utilisée par un ordinateur portable. Les mesures (en watt) se font uniquement si la machine est déconnectée du secteur, donc sur batterie.

Ne pas oublier d'aller dans les préférences de calcul du gestionnaire BOINC et cocher la case autorisant le calcul « Lorsque l'ordinateur est sur batterie ».

sudo apt install powerstat

On le lance simplement avec la commande powerstat. Par défaut, le programme attend 180 secondes avant de débuter ses mesures ; puis prend dix échantillons à dix secondes d'intervalle. On peut changer ce comportement, par exemple soixante mesures, chacune espacée de quinze secondes et démarrage immédiat de l'échantillonnage :

powerstat 15 60 -d 0

Voici le résumé d'une série de mesures effectuée aléatoirement sur une période de trois jours. Configuration « de routine », c'est-à-dire avec écran en veille et Apache2 désactivé.

En watt. Minimum & Maximum atteind. Moyenne calculée sur 12 mesures.
Min. Max. Moyenne
12,24 19,47 16,63

Pour information, avec l'écran du T500 « allumé » : Min. 20w / Max. 26,06w / Moyenne 22.95 watts. On constate l'importance de laisser l'écran en veille, voir carrément de l'enlever !.

J'ai profité de ces tests pour vérifier la longévité de la batterie : 2 heures pile avant que la DEL brille orange, c'est-à-dire qu'il ne reste plus que 20 % de la capacité batterie. J'estime donc que dans ce contexte le T500 peut tenir 2h30 avant de sombrer en hibernation.

Je parviens donc aux résultats ci-dessous, basés sur la puissance moyenne mesurée.

Énergie consommée à 25 % de CPU.
1 heure 1 jour 1 an
16,63 wh 399,12 wh 145,68 kWh

Comparer powerstat et un wattmètre

Afin de vérifier la véracité des mesures de powerstat, je me suis équipé d'un wattmètre-o-rama qui possède aussi une fonction énergiemètre en kWh.

Cet appareil, neuf, m'a coûté la modique somme de 15 dollars. Il ne faut donc pas espérer des mesures d'une grande fiabilité, mais voici ce que donne la mesure de consommation d'énergie :

470 wh sur une période de 24 heures, soit 171,55 kWh par an.

J'ai réalisé deux périodes de mesures, une sans batterie, l'autre avec batterie ; avec à chaque fois le même résultat.

Soit une consommation d'énergie supérieure de 17 % à celle mesurée grâce à powerstat. En l'état actuel (un seul projet BOINC, 25 % de CPU), cette différence n'est pas un problème en soit compte tenu du niveau très faible de consommation. Elle sera en revanche moins négligeable si on veut ajouter des projets BOINC ou augmenter la vitesse de calcul sur un ordinateur plus puissant et mieux refroidi (ou plusieurs ordinateurs !).


Mise en place du FTPInstallation de CUPS et SANE