Compte-rendu de l'atelier sur le calcul volontaire pour l'AfriquePoint de vue d'un programmateur/volontaire 23 juillet 2007 L'atelier auprès d'AIMS sur le Calcul Distribué a eu lieu du 16 au 22 juillet à l'Institut Africain de Sciences Mathématiques (African Institute for Mathematical Sciences) à Muizenberg en Afrique du Sud (une banlieue de la ville du Cap). Quelques 35 étudiants ont été sélectionnés parmi les 200 candidatures qui ont été envoyées. Ils sont venus pour apprendre à se servir de la technologie BOINC, un logiciel libre pour le calcul distribué, afin d'en faire bénéficier des projets africains. (Même si pour cet atelier les participants sont nommés "étudiants", chez eux ils sont des diplômés, des chercheurs voire même des professeurs). L'atelier a été financé par le projet Africa@home, dont le but est de promouvoir le calcul distribué et les logiciels libres en Afrique. Cet atelier correspondait également très bien aux objectifs de nos hôtes à AIMS. Pendant l'année universitaire, AIMS a en effet dispensé des cours de troisième cycle pendant neuf mois, attirant des étudiants du continent entier. A propos de BOINCBOINC est l'acronyme de l'Infrastructure Libre de Berkeley pour le Réseau Informatique. Le logiciel a été développé par l'Université de Californie de Berkeley. Il offre un cadre pour les applications informatiques qui nécessitent un grand nombre d'opérations de calcul distribué à travers plusieurs processeurs. Il fonctionne en divisant les données en petits morceaux discrets, ce qui permet ensuite de les télécharger depuis un serveur BOINC. Ce qui différencie la technologie BOINC d'un calcul distribué plus "traditionnel", c'est le lieu où le calcul est effectué. Des volontaires peuvent s'inscrire pour participer aux projets BOINC qui les intéressent et ainsi mettre les cycles de veille de leurs ordinateurs au service du fonctionnement des applications BOINC. Une fois qu'un volontaire s'est inscrit à un projet BOINC et qu'il a installé le logiciel d'utilisateur ou "client" de BOINC sur son ordinateur, le logiciel communique avec le serveur du projet BOINC et lui demande une "unité de travail" qu'il téléchargera et exécutera. Alors l'unité de travail donne ses résultats au serveur et demande une autre unité de travail. Tout ceci se passe essentiellement au niveau de l'ordinateur du volontaire, même si le "client" de BOINC peut afficher des informations de statuts différents. Le serveur BOINC s'occupe des problèmes tels que la communication avec les ordinateurs clients, la programmation du travail, la validité des résultats (en envoyant la même unité de travail à différents clients et en comparant les résultats). Il gère également la production de statistiques et l'attribution des très prisés crédits de volontariat, en fonctions des heures de mise à disposition par les volontaires de leurs ordinateurs. Le serveur fonctionne avec le système Linux. Le logiciel existe pour les versions Linux, Windows, Mac OS X et Solaris. Pour créer une application BOINC, un scientifique commencera systématiquement avec un algorithme de calcul intensif et naturellement parallèle. Il l'inscrira ensuite dans un langage informatique puis effectuera les modifications nécessaires pour qu'il fonctionne dans l'environnement BOINC. Ces modifications correspondent à l'ajout de demandes de procédures à la bibliothèque BOINC pour démarrer, arrêter, effectuer des contrôles intermédiaires et indiquer au volontaire la progression en pourcentage. Les récentes applications commerciales ont été écrites en FORTRAN, C ou C++, mais des progrès constants sont apportés pour encourager l'utilisation de langages clairs comme Java et Python. Même si le serveur BOINC offre un cadre standard pour les tâches génériques des serveurs telles que la programmation du travail et la communication avec l'utilisateur, un code pour l'administration d'applications spécifiques doit également être rédigé pour le serveur BOINC. Cela comprend le contrôle de résultats (validation), le résumé de ces résultats (prise en compte) et une éventuelle modification des données entrées pour les futures unités de travail en fonction des résultats des unités de travail effectuées (production). Africa@homeAfrica@home est un partenariat très vaste utilisant la technologie BOINC. Ce partenariat inclut le CERN, l'Université de Genève, ICVolontaires, l'Organisation Mondiale de la Santé, l'AIMS, plusieurs autres institutions universitaires africaines, l'Institut Tropical Suisse, et Informaticiens sans frontières (ISF), avec le soutien du Réseau Universitaire International de Genève. L'AtelierLa matière à couvrir par l'atelier était très vaste. Sur les cinq jours de cours, nous avons mené chacune des activités suivantes: installation de Ubuntu Linux, installation d'un client BOINC et mise en relation avec un projet déjà existant, installation d'un serveur BOINC, installation d'une application naissante de BOINC et installation d'un programme de contribution inscrit dans une "fenêtre" qui lui permet de fonctionner dans l'environnement BOINC. Le matin nous suivions des cours théoriques. L'après-midi, nous nous rendions dans une salle informatique pour la pratique et les soirées étaient libres. La salle informatique était ouverte en permanence pour les personnes désirant poursuivre leur entraînement. Un rêve pour les programmateurs... ou bien une malédiction? En salle informatique, chaque groupe était composé de trois étudiants. Chaque étudiant avait son propre poste de travail en tant que machine cliente et chaque groupe avait un ordinateur en plus où le serveur BOINC devait être installé. Cinq jours n'ont pas suffit à étudier tous les sujets en profondeur, mais cela nous a servi d'introduction à tous les éléments d'un projet BOINC. Cet atelier nous a donné une bonne idée de ce que nous devrons approfondir par nous-même de retour chez nous. Impressions d'un participantJ'ai été initalement invité à l'atelier par ICVolontaires afin d'assister les professeurs. Je suis informaticien avec expérience de Linux, mais je connaissais pas BOINC. Vue la formation et la spécialisation des étudiants, allant des mathématiques à la physique en passant par l'épidémiologie, il n'était pas sûr qu'ils connaissaient tous Linux. J'étais donc celui qui pouvait répondre aux questions sur Linux, libérant ainsi les professeurs pour les questions spécifiques à BOINC. Finalement, les étudiants en connaissaient suffisamment et les professeurs étaient assez doués, si bien qu'ils ont surmonté seuls la plupart des questions et j'ai pu n'être qu'un étudiant comme eux pendant la semaine. Cependant, un groupe d'étudiants qui ne connaissaient pas Linux m'ont permis de me rendre utile lorsqu'ils m'ont demandé quelle manipulation permettait de renommer un fichier. ;-) AIMS nous a fourni un environnement idéal: salle de classe, salle informatique, cafétéria, salle des professeurs et dortoirs. Les journées étaient bien remplies, ne laissant que peu de temps libre pour profiter de la plage de Muizenberg en ces jours d'hiver plutôt beaux et chauds pour la saison. (Quelques professeurs et organisateurs ont cependant réussi à s'éclipser quelques soirs pour se retrouver dans un pub local et améliorer leurs coups au billard). A présent, chacun est rentré chez soi et a retrouvé son propre travail et avec un peu de chance certains trouveront le temps dans leurs programmes chargés d'en apprendre davantage sur BOINC. Peut-être même lanceront-ils un nouveau projet en utilisant cette technologie. C'était un réel plaisir - à la fois sur le plan intellectuel et sur le plan social - de passer cette semaine avec des étudiants, des professeurs et des organisateurs si différents, d'Afrique et d'ailleurs. Pour plus d'informations, voir le Bulletin en ligne de l'atelier. Publié: 2010-1-05 Mis à jour: 2010-1-07 | ||