Contribuer à la recherche contre la COVID-19 avec son Mac
Saviez vous qu'il était possible de contribuer à la recherche contre le COVID-19, ou à la recherche en général, avec votre Mac ? Et bien oui !
Cette possibilité passe par Folding@Home (FAH), un projet de recherche médicale, imaginé par des membres de l'université de Stanford, en Californie. Le principe est simple. En lançant l'application sur votre Mac, il devient une toute petite partie du plus grand supercalculateur au monde. Les calculs sont segmentés en unités de travail (WU : work unit), et distribuées à l'ensemble des clients connectés. Une fois le calcul d'une WU terminé, votre Mac envoie les résultats et demande une nouvelle unité. Les unités de calcul ne sont pas très grandes, elles ne prennent que quelques heures à compléter. Il est donc possible d'y participer un peu, beaucoup, passionnément, à la folie (, pas du tout).
Créé en 2000, je me souviens avoir à l'époque, participer avec mon vénérable G4 Cube. La puissance des machines ayant massivement évoluée, il est bien plus facile d'y participer, aujourd'hui.
Vous pouvez installer folding@home, en passant par son site ou via Homebrew (paquet folding-at-home).
FAH est composé de plusieurs morceaux :
- le client FAH à proprement parlé, qui est l'application de calcul,
- le contrôleur, qui permet de gérer le client,
- le visualiseur, qui permet de voir de manière plus jolie la progression du calcul de l'unité en cours
FAH proposer aussi d'accéder au client depuis un navigateur web. Bien plus agréable à l'oeil, elle permet de suivre la progression du calcul sans avoir à ouvrir les applications plutôt moches qui sont fournies avec le client. Cependant, les réglages sont moins nombreux, et le contrôleur reste nécessaire pour effectuer une configuration plus poussée.
Configuration
Pour débuter le calcul de votre première unité, lancer FAHControl. Vous pourriez cliquer sur Fold directement pour commencer. Mais peut être qu'un peu de tuning avant, ne serait pas une mauvaise idée. Cliquez sur configurer en haut à gauche.
Nous n'allons pas regarder tous les onglets, mais seulement ceux qui nous permettent de commencer. Allez sur "Identity".
Dans Name, vous pouvez indiquer votre nom ou pseudo. En effet, vos calculs seront attribués à des comptes, et permettent de montrer des statistiques sur les meilleurs contributeurs. Et même si l'on ne recevra pas une médaille, cela permet de montrer que l'on a participé à tel ou tel projet de recherche.
En option, dans Team number, vous pouvez indiquer le numéro d'une équipe que vous souhaitez rejoindre. Par exemple, vous pouvez rejoindre la toute petite équipe skymac.org en insérant le numéro 133692. Vous pouvez aussi créer votre propre équipe en vous rendant sur le site de Folding@Home. Ou encore, laisser ce champ vide et participer à la recherche dans la titanesque équipe des anonymes.
Le deuxième onglet qui va nous intéresser est "Slots".
Vous devriez avoir un Folding slot nommé cpu, et peut être un second nommé gpu. Sélectionnez sur le slot cpu, puis cliquez sur Edit.
La fenêtre peut faire peur, mais vous allez voir qu'elle est finalement très simple. Elle est découpée en 3 morceaux. La première section CPU, doit être sélectionnée, via le bouton radion situé à gauche. Le seconde section GPU ne l'est pas, mais permet de transformer un slot CPU en GPU et vice-versa. Une fonctionnalité qui n'est pas forcément utile. Et enfin la dernière section permet aux utilisateurs avancés d'ajouter des paramètres supplémentaires.
Mais revenons à notre section CPU. La valeur par défaut est à -1. Cela veut dire que le client pourra utiliser tous les cœurs de processeur disponibles s'il le souhaite. Vous pouvez changer cette valeur pour limiter le nombre de cœeurs utilisés. Cela permet de contribuer à la recherche sans pour autant faire chauffer son Mac de trop, ou le transformer en chauffage d'appoint, comme c'était le cas avec le G4 Cube, il y a pratiquement 20 ans.
Plus précisément, il faut indiquer le nombre de threads qu'offrent les processeurs. Certains Mac disposent de processeurs avec de l'hyper-threading, ils disposeront de deux threads logiques par cœeurs physiques. Ce sera le cas pour les Mac équipés de Xeons, ainsi que certains processeurs Core i7 et Core i9. Pour connaître le nombre de threads de son Mac, ouvrez un terminal et tapez
sysctl -n hw.ncpu
Indiquez la valeur qui semble optimale pour vous, et votre Mac, puis valider avec le bouton OK.
Concernant le GPU, mauvaise nouvelle pour nous, utilisateurs Mac, il semblerait que cette fonctionnalité ne soit pas active sur Mac. Les créateurs de l'application se sont résolus à ne pas perdre de temps avec cette fonctionnalité à cause des choix d'Apple. Tout simplement, le calcul passant par la carte graphique utilise OpenCL. Et Apple équipe la majorité de ses Mac avec des GPU Intel intégrés, sur lesquels OpenCL n'est pas disponible. Le parc de Mac disposant d'une vraie carte graphique n'étant pas assez étendu, ils ont fait l'impasse. Mais peut être que cela reviendra un jour.
C'est d'ailleurs bien dommage car les cartes graphiques disposent d'une puissance de calcul bien supérieure à celles de nos processeurs, notamment dans ces domaines.
Mais pourquoi dont l'option reste-t-elle disponible sur Mac, si elle ne fonctionne pas ?
Simplement, car à partir du contrôleur il est aussi possible de gérer les clients venant d'autres machines, y compris des machines Windows ou Linux, sur lesquelles, le travail sur GPU fonctionne.
Vous pouvez donc retirer le slot GPU ou le garder dans l'espoir qu'une mise à jour vienne l'activer.
Dernier onglet qui va nous intéresser pour commencer : Advanced.
La première section va vous permettre de choisir quelle cause vous souhaitez aider. Vous pouvez laisser l'application choisir avec "Any", ou marquer votre préférence. Attention, il s'agit d'une préférence, ce qui veut que si aucune Work Unit n'est disponible dans votre cause, l'application ira piocher dans l'une des autres. Enfin un dernier choix "High Priority" permet d'indiquer que l'on souhaite aider la cause nécessitant le plus de calculs à l'instant T.
Dans la section Folding Core Priority, et Checkpoint frequency, laissez les valeurs par défaut.
Enfin, vous pouvez indiquer, dans la dernière section, que le calcul s'arrête automatiquement lorsque votre Mac est alimenté par la batterie (ou l'onduleur).
Cliquez sur Save pour valider l'ensemble de vos réglages. Et retournons sur l'interface principale.
Note : vous pouvez changer vos réglages pendant qu'une WU est en cours de calcul, cette dernière sera automatiquement mise en pause, puis relancée avec vos nouveaux réglages.
Lancement des calculs
A gauche se trouvent les clients que votre contrôleur gère. De base vous devriez avoir une ligne nommée "local", il s'agit du client installé sur votre Mac.
A droite, se trouve les différents éléments de gestion pour le client sélectionné. L'onglet status est le plus important. En haut, vous contrôlez le fonctionnement du client. Avec Fold, le calcul commence ou est repris. Avec Pause, vous arrêtez temporairement le calcul, vous pourrez le reprendre plus tard. Attention, si vous attendez trop longtemps avant de le reprendre, vous recommencerez peut être une nouvelle unité, car la précédente aura été donnée à quelqu'un autre. Enfin, et c'est une fonctionnalité que j'affectionne. Avec finish, il est possible d'indiquer à FAH de terminer le calcul en cours, puis de ne pas en reprendre une autre ensuite.
A côté, se trouve la réglette du Folding Power. Vous pouvez choisir la priorité du client FAH par rapport à vos autres processus. En laissant sur Light, le client FAH ne prendra que l'espace CPU restant, tandis que sur Full, il partagera la puissance pour faire ses calculs, réduisant les performances de vos autres applications.
En dessous, vous pouvez voir les slots en activité à gauche, et le détail du slot sélectionné à droite. Vous pouvez y voir la progression, le temps restant estimé, ainsi que le projet sur lequel votre Mac travail.
A qui vont les résultats ?
Créé par une université Américaine, les projets sont principalement portés par des équipes du même pays. Cependant, il y a de nombreux partenariats entre universités ou laboratoires, afin que tout le monde puisse profiter de la puissance offerte par ce super-calculateur.
Sur le détail de l'unité de travail, le projet est cliquable pour en voir les statistiques sur le site de Folding@Home, tout comme votre pseudo et l'équipe. Ainsi, je peux voir que le projet sur lequel mon Mac travaille aujourd'hui traite du COVID-19 pour une équipe suédoise.