Aider la recherche contre le coronavirus avec son Raspberry Pi : notre dossier

Matthieu Legouge
Par Matthieu Legouge, Spécialiste Image.
Publié le 12 mai 2020 à 18h18
Rosetta@Home

Saviez-vous qu'il est possible d'aider la recherche médicale depuis chez vous, à l'aide d'un simple Raspberry Pi ?

Avec l'épidémie de coronavirus que nous traversons maintenant depuis de longues semaines, la recherche médicale est une fois de plus sous le feu des projecteurs. Inutile de dire que la découverte de traitements ou d'un vaccin contre le COVID-19 constitue le principal espoir pour s'extirper de cette crise, la sortie du confinement étant loin d'être un simple retour à la normale.

Il y a peu, nous vous avons invité à rejoindre l'équipe Clubic dans l'aventure Rosetta@Home et nous remercions chaudement les membres déjà actifs qui se sont ralliés au projet ainsi que ceux qui ont franchi le pas pour la première fois. Grâce à ce projet, nous contribuons à faire avancer la recherche grâce à la puissance de calcul inutilisée de nos machines, via la technique du calcul distribué.

Rosetta@Home fait partie, avec Folding@Home, des programmes qui ont décidé d'unir leurs forces contre le SARS-CoV-2. Sans entrer dans les détails scientifiques, ces deux projets s'intéressent aux protéines et à leur structure avec pour objectif d'aider à mieux comprendre certaines pathologies et concevoir des traitements.

Rosetta@Home supporte désormais les processeurs ARM

D'un point de vue technique, il existe quelques différences entre les deux projets. R @ h n'a pas recours à votre GPU, mais seulement au processeur. D'un autre côté, ce projet fonctionne désormais sur une grande variété d'appareils, y compris sur nos Raspberry Pi, mais aussi sur les NVIDIA Jetson Nano, Intel NUC, Microsoft Surface et ainsi de suite. Hormis cela, R @ h tourne également en passant via BOINC Manager, une interface claire et épurée permettant de gérer et d'adhérer à plusieurs projets simultanément.

Les seuls prérequis sont finalement d'utiliser un système 64 bits et de disposer au minimum de 1 Go de RAM. Et comme nous avons une petite faiblesse pour la framboise, nous vous proposons ici de découvrir comment la mettre à contribution, avec pas moins de 3 méthodes différentes. Évidemment, nous vous indiquerons comment venir lutter contre le COVID-19 sous les couleurs de l'équipe Clubic.

Dans un premier temps nous regarderons comment participer via BOINC sous Ubuntu, une solution qui s'avère pertinente uniquement pour le Raspberry Pi 4, puis nous nous intéresserons ensuite au projet Fold For Covid.

Fold For Covid est un projet porté par Balena, à l'origine de la prise en charge de Rosetta@Home par les appareils ARM. Nous verrons comment rejoindre le projet très simplement à l'aide d'une image prête à l'emploi, mais aussi comment avoir un contrôle plus poussé via balenaCloud, un service gratuit (jusqu'à 10 appareils) que nous vous avons récemment présenté lors de notre tutoriel sur balenaSound

1. Rosetta@Home via BOINC sous Ubuntu (Pi 4)

Raspbian étant un système 32 bits, il n'est malheureusement pas recommandé de tenter d'y installer BOINC. Finalement, pour faire tourner BOINC sur la framboise, il vous faudra au minimum un Raspberry Pi 4 avec 2 Go de RAM, 4 Go étant préférable. Nous avons bien tenté de faire fonctionner Ubuntu sur un Pi 3 B +, mais celui-ci est bien trop gourmand pour ce modèle, l'environnement de bureau peine à se lancer. Nous n'avons cependant pas essayé avec Ubuntu Mate et d'autres distributions Linux (Manjaro, Debian, etc.) moins gourmandes qu'Ubuntu, n'hésitez donc pas à nous faire profiter de vos retours d'expérience.

  • La marche à suivre est relativement simple, il va sans dire que vous devez avoir déployé la dernière version d'Ubuntu Server sur votre Raspberry Pi, peu importe l'environnement de bureau que vous choisirez.

  • À télécharger :
    Ubuntu Server for ARM

  • Assurez-vous ensuite que la mise en veille automatique est désactivée, en vous rendant dans "Power > Suspend & Power Button" et en paramétrant "Automatic Suspend" sur "Off".

  • Ubuntu - Automatic Suspend

  • Installez le paquet BOINC en entrant la commande suivante : sudo apt-get install boinc

  • Le reste est similaire à ce que l'on retrouve sous Windows : lancez BOINC Manager, choisissez le projet Rosetta@Home et terminer la configuration en suivant les informations à l'écran. Un compte est nécessaire pour accéder au projet, si vous n'en avez pas déjà un, créez-le. Une fois terminé, une fenêtre web devrait se lancer pour compléter votre inscription au projet, c'est ici que vous pourrez rejoindre l'équipe Clubic, en recherchant via l'onglet « Communauté » ou en vous rendant directement sur la fiche de l'équipe.

    2. Rosetta@Home via le projet Fold For Covid

    La grande force du projet Fold For Covid réside dans le principe de fonctionnement de balenaOS qui repose sur l'utilisation de conteneurs Docker afin de déployer simplement des projets IoT. Il ne s'agit finalement de rien d'autre qu'un système Linux embarquant le strict nécessaire pour exécuter Docker, un logiciel libre de conteneurisation qui reçoit la faveur de bien des développeurs pour sa flexibilité.

    L'un des objectifs de Balena est de rendre ses solutions simples et rapides à exécuter, en d'autres mots accessibles à toutes et tous. C'est naturellement le cas du projet Fold For Covid puisqu'il suffit de récupérer une image correspondant à votre matériel pour ensuite la déployer et commencer le travail ! Tout est parfaitement expliqué sur le site web du projet, mais nous allons rapidement résumer les étapes histoire de le démontrer aux plus frileux.

  • Rendez-vous sur le site web Fold For Covid puis sélectionner votre matériel dans la section « Get Started ».

  • Une large variété d'appareils est compatible ! Nous nous intéressons ici au Raspberry Pi 3 B puisque nous en avons deux à disposition, mais le projet est adapté à de nombreuses singleboards comme le Pi 4, la Coral Dev Board, la Nitrogen8M Mini, certaines SBC de chez Nvidia et ainsi de suite.

  • Dans un premier temps, il est nécessaire d'indiquer votre préférence pour la connexion à internet de votre board : Ethernet seulement ou Ethernet / Wi-Fi. Si vous souhaitez avoir recours au Wi-Fi, vous devrez entrez votre SSID et son mot de passe : votre clé Wi-Fi. L'image téléchargée sera ainsi personnalisée avec ces informations, afin que tout fonctionne dès que vous allumerez votre machine.

  • Téléchargez l'image ainsi créée puis flashez-la sur votre carte SD, à l'aide de balenaEtcher par exemple.

  • À télécharger :
    balenaEtcher pour Windows



  • Ne vous reste plus qu'à insérer la carteSD dans le Pi, puis de le démarrer. Vous rejoindrez automatiquement l'équipe Fold For Covid et des taches devraient vite vous être attribuées.


  • FoldForCovid - local.JPG

    Si vous connectez votre Pi à un écran, vous apercevrez une interface qui reprend les grandes lignes de BOINC et fournissant l'essentiel des informations. Il est possible d'y naviguer à l'aide d'un clavier afin, par exemple, de suspendre les opérations, de les trier, voir vos statistiques, etc.

    L'interface est également disponible via une adresse web, accessible dès lors que votre ordinateur et votre Pi sont connectés au même réseau. Suffit pour cela de taper foldforcovid.local dans la barre d'adresse afin de la retrouver. C'est également ici que vous pouvez rejoindre l'équipe Clubic.

    Comment rejoindre l'équipe Clubic avec Fold For Covid ?

  • Pour cela il est nécessaire de vous connecter, ou de créer un compte, sur le site de Rosetta@Home. Rejoignez l'équipe via sa fiche, puis liez votre appareil à votre compte à l'aide de votre clé de compte.


  • Rosetta@Home - clé de compte.JPG

  • Vos clés se trouvent dans la section « Votre compte », comme le montre la capture d'écran ci-dessus. Copier la clé de compte (la première) puis coller là dans l'interface foldforcovid.local après avoir cliqué sur « Change Account Key ». Validez l'opération afin que votre appareil commence à se battre à nos côtés !


  • Rosetta@Home - change account key

    3. Fold For Covid avec BalenaCloud

    Nous allons maintenant voir une alternative beaucoup plus complète pour déployer le projet sur nos appareils. Elle porte notamment l'intérêt de nous ouvrir l'accès à de plus amples paramétrages et d'autoriser le déploiement rapide de conteneurs sur un maximum de 10 appareils (avec l'accès gratuit).

    En outre, cela permet aussi d'installer le projet sur un appareil qui contient déjà une installation d'un service de Balena, ce qui est peut-être votre cas si vous avez suivi notre tutoriel pour transformer vos vielles enceintes en enceintes Bluetooth / AirPlay / Spotify Connect. L'installation de ces deux projets sur un seul et même appareil est pertinente selon votre utilisation de balenaSound : Fold For Covid nécessite l'intégralité des ressources matérielles de votre Pi, il sera donc nécessaire de suspendre ses opérations pour utiliser balenaSound.

    La marche à suivre est similaire de celle que nous avons présentée avec balenaSound, pour cette raison nous n'allons pas détailler chaque étape, mais plutôt vous redirigez vers ce tutoriel. Pour résumer, il vous faut :

  • Disposer d'un compte balenaCloud

  • Créer le projet sur le dashboard, en sélectionnant bien votre type d'appareil et d'application. S'il s'agit d'un Pi 3, faites bien attention à sélectionner Raspberry Pi 3 (using 64bit OS)

  • Ajouter un appareil à votre projet en renseignant les informations nécessaires, vous pourrez ainsi télécharger l'image de l'OS

  • balenaOS

  • Flasher votre carteSD avec cette image, insérez-la dans le Pi puis démarrez-le. Il devrait apparaître dans le tableau de bord après quelques minutes

  • Maintenant que nous avons balenaOS sur notre Pi et un compte balenaCloud, il nous reste à déployer Fold For Covid depuis notre ordinateur à l'aide de balena CLI tools.

  • Installer balena CLI tools sur votre ordinateur

  • Ouvrez une invite de commande, puis entrez balena login afin de vous connecter au dashboard

  • balena login.jpg

  • Téléchargez le projet Fold For Covid depuis GitHub puis entrez la commande balenaPush suivie du nom de votre appareil. Notons que pour lancer la commande le fichier doit être décompressé et il est nécessaire de se trouver dans le répertoire où il est situé. Encore une fois, tout est expliqué en détail avec notre tutoriel balenaSound.

  • Une fois l'installation terminée, le projet devrait se lancer et donner du travail à votre Pi !

    Pour ceux qui souhaitent tenter l'expérience en installant deux projets sur leur Pi, l'équipe de Balena explique en détail la méthode de fonctionnement dans un billet de blog. N'hésitez pas à nous faire savoir si cela fonctionne correctement !

    Comment rejoindre l'équipe Clubic via balenaCloud ?

    La méthode est similaire à celle déjà présentée plus haut. Sur le tableau de bord réunissant vos projets et appareils, rendez-vous dans la section environnement variables.

    balenaCloud_add variable

    Créez une variable nommée ACCOUNT_KEY et entrez votre clé de compte dans la case « Value ». C'est aussi simple que cela ! Votre Raspberry Pi fait désormais partie de la flotte d'appareils offrant généreusement leurs Cores à la science.

    Remarques additionnelles

    Les opérations confiées par Rosetta@Home sont la plupart du temps longues et complexes, celles qui vous seront attribuées dépendent donc de la puissance de votre matériel. À ce titre, il est possible que vous n'observiez pas votre Pi se mettre au travail immédiatement après l'avoir démarré.

    Si votre modèle dispose seulement de 1 Go de RAM (ce qui vaut donc pour le Pi 3 B + et pour le Pi 4 B 1 Go) l'interface boincui va certainement vous afficher ce message : “Rosetta needs 1716.61 MB RAM but only 966.82 MB is available for use”.

    Cela ne veut pas pour autant dire que Rosetta@Home ne donnera pas de travail à votre Pi, juste qu'il va falloir se montrer patient en laissant votre machine allumée. Dans mon cas, mon Pi 3 B + a reçu des tâches environ 30 minutes après son démarrage. Par la suite, j'ai reçu trois autres tâches et depuis mon Pi ne s'est pas arrêté de travailler. Enfin, pensez à la chaleur générée par le Pi ! Un boitier bien aéré, une ventilation et/ou un dissipateur thermique ne seront pas un luxe.
    Matthieu Legouge
    Par Matthieu Legouge
    Spécialiste Image

    Pigiste pour Clubic depuis 2018, j’ai d’abord pris la plume pour parler d’actualités, avant de me spécialiser peu à peu sur les catégories PC & Gaming, notamment les écrans et périphériques, ainsi que l’image et le son, plus particulièrement tout ce qui touche au Home Cinema : les téléviseurs, vidéoprojecteurs et barres de son.

    Commentaires (0)
    Rejoignez la communauté Clubic
    Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.
    Commentaires (7)
    blackdoor

    Ca n’irait pas plus vite de faire les calculs à la main plutôt qu’avec un Raspberry pi ?
    Au moins ça permettra de vous garder bien au chaud à la maison.

    kyosho62

    Pourquoi le Raspberry pi tu le met dehors ?

    kroman

    Il y a des OS 64bit de dispo pour le RPi 3. Mais est-ce qu’il ne surchauffe pas trop pour cette utilisation, sans ventilateur ? (carte nue, sans boîtier)

    Cmoi

    Ce genre de calcul « domestique » existe depuis plus de 20 ans…Mais est-ce vraiment utile à la recherche? Ou une goutte d’eau dans la mer? Y a-t-il des calculs qui ont abouti sur du concret?

    Niils

    Ben oui avec Seti@HOME vous m’avez trouvé :slight_smile:

    Matthieu_Legouge

    Exemple d’étude à laquelle Rosetta@Home contribue https://science.sciencemag.org/content/370/6515/426 :wink:

    Cmoi

    Merci pour la vidéo. Mais concrètement, ce genre de calcul par des ordinateurs particuliers a débouché sur des traitements? Parce que cela fait plus de 20 ans que ce genre de calculs existent.

    Abonnez-vous à notre newsletter !

    Recevez un résumé quotidien de l'actu technologique.

    Désinscrivez-vous via le lien de désinscription présent sur nos newsletters ou écrivez à : [email protected]. en savoir plus sur le traitement de données personnelles