Calcul participatif

Protocole de fonctionnement de l'intergiciel Xgrid (2008)

Le calcul participatif est un type de calcul distribué dans lequel une personne fait don de ressources inutilisées de son ordinateur à un projet axé sur la recherche[1].

L'idée fondamentale sous-jacente est qu'un ordinateur de bureau moderne est suffisamment puissant pour effectuer des milliards d'opérations par seconde, mais pour la plupart des utilisateurs, seulement 10 à 15 % de sa capacité est utilisée. Les utilisations typiques telles que le traitement de texte de base ou la navigation sur le Web laissent l'ordinateur quasiment inactif la plupart du temps.

La pratique du calcul volontaire, qui remonte au milieu des années 1990, met à disposition de chercheurs une puissance de traitement substantielle à un coût minime.

En règle générale, un programme s'exécutant sur l'ordinateur d'un volontaire contacte périodiquement une application de recherche pour demander des travaux et rapporter les résultats. Un système middleware peut également servir d'intermédiaire – comme, par exemple, l'application BOINC.

Le premier projet informatique bénévole fut le Great Internet Mersenne Prime Search, lancé en janvier 1996[2]. Il fut suivi en 1997 par distributed.net.

En 1997 et 1998, plusieurs projets de recherche universitaires ont développé des systèmes basés sur Java pour l'informatique bénévole; les exemples incluent Bayanihan[3], Popcorn[4] Superweb[5] et Charlotte[6].

Le terme volunteer computing a été proposé par Luis FG Sarmenta, le développeur de Bayanihan. Il est également adapté aux efforts mondiaux en matière de responsabilité sociale ou de responsabilité sociale des entreprises, comme indiqué dans la revue Harvard Business Review[7] ou utilisé dans le forum Responsible IT[8].

En 1999, les projets SETI@home et Folding@home sont lancés. Ces projets ont été largement médiatisés et chacun a attiré plusieurs centaines de milliers de bénévoles.

Le tournant des années 2000 vit une explosion des créations de projet autour du calcul distribué :

Peu de temps après, SETI@home et ClimatePrediction.net commencèrent à utiliser BOINC.

De nouveaux projets basés sur la plateforme furent créés au cours des années 2000, notamment Rosetta@home, Einstein@home et AQUA@home.

En 2007, IBM World Community Grid est passé de la plate-forme United Devices à BOINC.

Exemple de données traitées par le projet TheSkyNet-POGS: trois images différentes de la même galaxie sont montrées, à des longueurs d'onde ultraviolette, optique et infrarouge, prises respectivement par les télescopes GALEX, Pan-STARRS1 et WISE. L'image à droite montre ensuite le processus utilisé par le logiciel de calcul pour déterminer différentes caractéristiques de la galaxie en question en utilisant les trois images dans un processus appelé ajustement de la distribution d'énergie spectrale (SED).

Le projet TheSkyNet est un projet défunt, arrêté en 2018, qui avait pour but de définir des caractéristiques galactiques, tirées d'observations de télescopes spatiaux.

Intergiciel

[modifier | modifier le code]
Logo de BOINC depuis juillet 2007

Le logiciel client des premiers projets informatiques participatifs consistait en un programme unique qui combinait le calcul scientifique et l'infrastructure informatique distribuée. Cette architecture monolithique était inflexible. Par exemple, il était difficile de déployer de nouvelles versions d'applications.

Plus récemment, l'informatique bénévole s'est déplacée vers des systèmes intergiciels qui fournissent une infrastructure informatique distribuée indépendante du calcul scientifique. Les exemples comprennent :

La plupart de ces systèmes ont la même structure de base : un programme client s'exécute sur l'ordinateur du volontaire. Il contacte périodiquement les serveurs exploités par le projet via Internet, demandant des travaux et rapportant les résultats des travaux terminés. Ce modèle "pull" est nécessaire car de nombreux ordinateurs volontaires se trouvent derrière des pare-feu qui n'autorisent pas les connexions entrantes. Le système garde une trace des « crédits » de chaque utilisateur, une mesure numérique de la quantité de travail que l'ordinateur d'un utilisateur a effectué pour le projet.

Les systèmes informatiques volontaires doivent faire face à plusieurs problèmes impliquant des ordinateurs volontaires : leur hétérogénéité, leur taux de désabonnement (la tendance des ordinateurs individuels à rejoindre et à quitter le réseau au fil du temps), leur disponibilité sporadique et la nécessité de ne pas interférer avec leurs performances lors d'une utilisation régulière.

De plus, les systèmes informatiques volontaires doivent faire face à des problèmes liés à l'exactitude :

  • Les volontaires sont légalement irresponsables et essentiellement anonymes.
  • Certains ordinateurs volontaires (en particulier ceux qui sont overclockés) fonctionnent parfois mal et renvoient des résultats incorrects.
  • Certains volontaires renvoient intentionnellement des résultats incorrects ou réclament un crédit excessif pour les résultats.

Une approche courante de ces problèmes est l'informatique répliquée, dans laquelle chaque travail est effectué sur au moins deux ordinateurs. Les résultats (et le crédit correspondant) ne sont acceptés que s'ils concordent suffisamment.

Inconvénients pour les participants

[modifier | modifier le code]
  • Augmentation de la consommation d'énergie : un processeur consomme généralement plus d'électricité lorsqu'il est actif que lorsqu'il est inactif. De plus, le désir de participer peut amener le volontaire à laisser le PC allumé pendant la nuit ou à désactiver les fonctions d'économie d'énergie comme la suspension. De plus, si l'ordinateur ne peut pas se refroidir correctement, la charge supplémentaire sur le processeur du volontaire peut entraîner une surchauffe.
  • Diminution des performances du PC : si l'application de calcul bénévole s'exécute alors que l'ordinateur est en cours d'utilisation, cela peut avoir un impact sur les performances du PC. Cela est dû à une utilisation accrue du processeur, du cache du processeur, du stockage local et de la connexion réseau. Si la RAM est une limitation, il peut en résulter une augmentation des échecs du cache disque et/ou une augmentation de la pagination. Les applications informatiques volontaires s'exécutent généralement avec une priorité de planification CPU inférieure, ce qui permet d'atténuer les conflits d'ordres du CPU[10].

Ces effets peuvent être perceptibles ou non, et même s'ils le sont, le volontaire peut choisir de continuer à participer. Cependant, l'augmentation de la consommation d'énergie peut être corrigée dans une certaine mesure en définissant les préférences pour limiter le pourcentage du processeur utilisé par le client, qui est disponible dans certains logiciels clients.

Avantages pour les chercheurs

[modifier | modifier le code]

Le calcul volontaire peut fournir aux chercheurs une puissance de calcul qu'il n'est pas possible d'obtenir autrement. Par exemple, Folding@home a été classé parmi les systèmes informatiques les plus rapides au monde.

Avec un intérêt accru et une participation bénévole au projet à la suite de la pandémie de COVID-19[11], le système a atteint une vitesse d'environ 1,22 exaflops fin mars 2020 et a atteint 2,43 exaflops le 12 avril 2020[12], ce qui en fait le premier système informatique « exaflopique » au monde.

Le calcul volontaire est souvent moins cher que d'autres formes de calcul distribué, et généralement à un coût nul pour le chercheur final.

Bien qu'il existe des problèmes tels que le manque de responsabilité juridique et de confiance entre participants et chercheurs lors de la mise en œuvre des projets, le calcul bénévole est d'une importance cruciale, en particulier pour les projets dont le financement est limité[13].

Parmi les raisons de bâtir un projet de calcul participatif :

  • Puisqu'il y a plus d'un milliard de PC dans le monde, le calcul volontaire peut fournir plus de puissance de calcul aux chercheurs, qui n'ont pas les compétences requises en matière de puissance de calcul, sur tout type de sujet ; telles que les recherches académiques (universitaires) ou scientifiques. De plus, les progrès de la technologie permettront aux produits de consommation tels que les PC et les consoles de jeux de progresser plus rapidement que tout autre produit spécialisé, ce qui augmentera par conséquent le nombre de PC et la puissance de calcul dans le monde.[réf. nécessaire]
  • Les supercalculateurs dotés d'une puissance de calcul énorme sont extrêmement coûteux et ne sont disponibles que pour certaines applications uniquement si elles peuvent se le permettre. Alors que le calcul bénévole n'est pas quelque chose qui s'achète, son pouvoir découle du soutien public. Un projet de recherche dont les sources et le financement sont limités peut obtenir une énorme puissance de calcul en attirant l'attention du public[14].
  • En faisant du bénévolat et en fournissant un soutien et une puissance de calcul aux recherches sur des sujets divers, les citoyens sont encouragés à s'intéresser aux sciences et ont ainsi une voix dans l'avancement des sciences, en apportant ou non un soutien à ces recherches[15].

Références

[modifier | modifier le code]
  1. « VolunteerComputing – BOINC », boinc.Berkeley.edu (consulté le )
  2. « GIMPS History », Mersenne.org, Great Internet Mersenne Primes Search (consulté le )
  3. Sarmenta, L.F.G., Worldwide Computing and Its Applications — WWCA'98: Second International Conference Tsukuba, Japan, March 4–5, 1998 Proceedings, vol. 1368, Springer Berlin Heidelberg, coll. « Lecture Notes in Computer Science », , 444–461 p. (ISBN 978-3-540-64216-9, DOI 10.1007/3-540-64216-1_67, CiteSeerx 10.1.1.37.6643), « Bayanihan: Web-Based Volunteer Computing Using Java » (ISBN 978-3-540-64216-9)(ISBN 978-3-540-69704-6)
  4. O Regev et Noam Nisan « The POPCORN market—an online market for computational resources » () (DOI 10.1145/288994.289027, lire en ligne)
    « (ibid.) », dans Proceedings of the first international conference on Information and computation economies (in Charleston, South Carolina), ACM Press (ISBN 1-58113-076-7), p. 148–157
  5. A.D. Alexandrov, M. Ibel, K.E. Schauser et K.E. Scheiman « SuperWeb: Research issues in Java-Based Global Computing » ()
    « (ibid.) », dans Proceedings of the Workshop on Java for High performance Scientific and Engineering Computing Simulation and Modelling, New York, Syracuse University
  6. A. Baratloo, M. Karaul, Z. Kedem et P. Wyckoff « Charlotte: Metacomputing on the Web » () (lire en ligne)
    « (ibid.) », dans Proceedings of the 9th International Conference on Parallel and Distributed Computing Systems
  7. Michael Porter et Mark Kramer, « (en) The Link Between Competitive Advantage and Corporate Social Responsibility » [archive du ], Harvard Business Review (consulté le )
  8. « ResponsI.TK », Responsible IT forum
  9. https://www.pourlascience.fr/sd/science-societe/science-participative-au-cern-il-ne-saposagit-pas-pour-nous-de-faire-une-bonne-action-9195.php
  10. Geoff Gasior, « (en) Measuring Folding@Home's performance impact », (consulté le )
  11. News 12 Long Island 2020: "Since the start of the COVID-19 pandemic, Folding@home has seen a significant surge in downloads, a clear indication that people around the world are concerned about doing their part to help researchers find a remedy to this virus," said Dr. Sina Rabbany, dean of the DeMatteis School."
  12. Pande lab, « (en) Client Statistics by OS » [archive du ], Archive.is (consulté le )
  13. Nov, Anderson et Arazy, « (en) Volunteer computing: a model of the factors determining contribution to community-based scientific research », Proceedings of the 19th international conference on World wide web, Raleigh, North Carolina, USA, Association for Computing Machinery, wWW '10,‎ , p. 741–750 (ISBN 978-1-60558-799-8, DOI 10.1145/1772690.1772766, lire en ligne)
  14. (en) « The Power of a Volunteer Computer Network - DZone Performance », dzone.com (consulté le )
  15. « VolunteerComputing – BOINC », boinc.Berkeley.edu (consulté le )(en) "VolunteerComputing – BOINC". boinc.Berkeley.edu. Retrieved November 18, 2017.

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]