Compte-rendu de l'atelier sur le calcul volontaire pour l'Afrique

Point de vue d'un programmateur/volontaire
Participants de l'atelier
Participants de l'atelier
By Jim Rudolf, version française Sophie Colesse
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 BOINC

BOINC 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@home

Africa@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'Atelier

La 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 participant

J'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.

©1998-2019 ICVolunteers|conception + programmation mcart group|Mis √† jour: 2019-01-28 10:52 GMT|Notre politique|