Ou comment participer à la science depuis l’arrière du canapé…

Le projet

J’avais déjà parlé de BOINC dans un précédent article (TLDR : ça permet de prêter une partie de la puissance de votre ordinateur pour faire des calculs pour des recherches scientifiques). Je l’avais fait tourner en local pendant le confinement, et suite à des formatages, déménagements, et changements de PC successifs, je n’ai jamais remis ça en route. Or maintenant que je prends le temps de remettre mes doigts dans mon serveur autohébergé, que ce petit serveur derrière le canapé ne consomme pas tant d’électricité que ça, et qu’il est toujours allumé… On va en profiter pour participer à la science !

Installation et mise en route

Container Docker

J’utilise Docker sur mon serveur pour gérer mes différents services, et je vais donc utiliser le container Docker officiel pour me faire ma petite stack sur mesure que je vais déployer via Portainer.

Et comme je suis sympa, je vous le mets ci-dessous ! J’utilise le container proposé par Linuxserver.io qui est multiplateforme et donc compatible avec l’architecture ARM64 de mon Helios64, contrairement au container officiel de BOINC.

version: "3.7"

services:
  boinc:
    image: lscr.io/linuxserver/boinc:latest
    container_name: boinc
    restart: unless-stopped
    environment:
      - PUID=1000 # UID Linux (à adapter si besoin)
      - PGID=1000 # GID Linux (à adapter si besoin)
      - TZ=Europe/Paris
      - CUSTOM_USER=OursBlanc # User pour la WebUI
      - PASSWORD=${BOINC_PASSWORD} # Password pour la WebUI

    volumes:
      - /data/boinc:/config

    ports:
      - 31416:31416 # Pour BOINC Manager
      - 8280:8080   # Pour l'interface web (http)
      - 8281:8181   # Pour l'interface web (https)

    security_opt:
      - seccomp:unconfined # Requis pour certaines applis GUI dans le conteneur 

    deploy:
      resources:
        limits:
          cpus: '1.0' # Limite max : 1 cœur CPU
          memory: 1g  # Limite max : 1 Go de RAM
        reservations:
          cpus: '0.25' # Réservation : 0.25 cœur CPU
          memory: 256m # Réservation : 256 Mo de RAM

Et on se crée le fichier .env qui va bien pour le ${BOINC_PASSWORD}. On met bien évidemment un mot de passe robuste comme d’hab.

BOINC_PASSWORD=monsupermotdepasse

Ici, j’ai décidé d’attribuer 1 Go de RAM max, et un cœur max pour mon Helios64 qui dispose de 6 cœurs et de 4 Go de RAM.

Premier lancement

On rentre donc l’IP locale de notre serveur avec le port qui va bien (exemple avec une IP bidon : 192.168.1.1:8280)

Et on devrait avoir ça :

Screenshot de la WebUI de Boinc

On peut alors choisir sur quel projet on veut travailler. Attention à sélectionner un projet compatible avec votre architecture ! Chez moi c’est du ARM64 et il faut vérifier qu’il y a l’icône ARM dans les « Supported systems ». Et vu que c’est écrit en tout petit, on peut aussi voir la liste ici et vous pouvez vous aider à choisir avec cette page qui référence tous les papiers scientifiques écrits avec les données récoltées pour chaque projet.

J’ai choisi personnellement la World Community Grid qui travaille sur des sujets divers et variés (santé, climat, agriculture, pandémies, etc…)

Voici les sujets du moment pour info :

Les projets actuels de la WCG

Il suffit ensuite de suivre le wizard (conditions d’utilisation, compte utilisateur à renseigner / à créer, etc…). J’ai personnellement eu des petits soucis à l’étape de login. Il faut en effet créer votre compte sur le site de World Community Grid AVANT d’essayer de se logguer, sinon ça fera tout planter…

Et une fois que c’est fait, y’a plus qu’à attendre…

Petit problème

Bon, j’ai attendu mais il ne se passait pas grand-chose alors j’ai jeté un œil dans les logs et…

2025-04-18T19:04:31.199553422Z 18-Apr-2025 21:04:31 [World Community Grid] Requesting new tasks for CPU
2025-04-18T19:04:33.224832527Z 18-Apr-2025 21:04:33 [World Community Grid] Scheduler request completed: got 0 new tasks
2025-04-18T19:04:33.224899029Z 18-Apr-2025 21:04:33 [World Community Grid] No tasks sent
2025-04-18T19:04:33.224910696Z 18-Apr-2025 21:04:33 [World Community Grid] No tasks are available for Africa Rainfall Project
2025-04-18T19:04:33.224921489Z 18-Apr-2025 21:04:33 [World Community Grid] No tasks are available for Mapping Cancer Markers
2025-04-18T19:04:33.224931989Z 18-Apr-2025 21:04:33 [World Community Grid] No tasks are available for OpenPandemics - COVID 19
2025-04-18T19:04:33.224942198Z 18-Apr-2025 21:04:33 [World Community Grid] No tasks are available for OpenPandemics - COVID-19 - GPU
2025-04-18T19:04:33.224952406Z 18-Apr-2025 21:04:33 [World Community Grid] Tasks for NVIDIA GPU are available, but your preferences are set to not accept them
2025-04-18T19:04:33.224963198Z 18-Apr-2025 21:04:33 [World Community Grid] Tasks for AMD/ATI GPU are available, but your preferences are set to not accept them
2025-04-18T19:04:33.224973699Z 18-Apr-2025 21:04:33 [World Community Grid] Tasks for Intel GPU are available, but your preferences are set to not accept them

En fait, bien que WCG accepte les architectures ARM comme la mienne, il n’y a pas toujours des tâches disponibles pour ce type de machine, et donc pour le moment je suis broucouille, comme on dit dans le Bouchonnois…

Petite solution

J’ai donc ajouté un autre projet SIDock@Home qui a pour but de rechercher des médicaments pour des maladies comme le COVID ou Ebola, et Asteroids@Home qui s’occupe, lui, de calculer la trajectoire des astéroïdes.

Comme ça, BOINC basculera entre WCG, SIDock et Asteroids@Home selon les tâches à effectuer… Pas mal hein ?

 

Y’a plus qu’a attendre que ca mouline… Et n’oubliez pas que la science peut tout ! Salukes !