Point of View
Un point de vue d’enseignant
Michel RAYNAL
Entre Bill Gates, le Web et Netscape d’un coté, Alan Turing, les limites du calcul et la thèse de Church de l’autre, qu’est et où se situe l’informatique ? Un monde technique où priment la vitesse et la quasi instantanéité ou bien un monde de la pérennité ? Tout enseignant-chercheur est interpellé par cette question tant dans sa façon de définir son enseignement et de le faire “passer” auprès des étudiants que dans la thématique et la problématique de son activité de recherche.
Née de préocupations concrètes (que l’on en voit l’origine dans les procédés de calcul inscrits sur les tablettes babyloniennes, la machine de Pascal ou la deuxième guerre mondiale) l’informatique est pour moi, enseignant-chercheur du supérieur, avant tout une science : la science des algorithmes et des machines capables de les interpréter. Elle se caractérise par une démarche essentiellement constructive. Décidabilité, recherche de solutions optimales, définition et construction de machines (au sens large, c’est-à-dire comprenant systèmes et langages) en constituent ainsi le coeur. C’est en ce sens que l’informatique ne peut être ni réduite, ni confondue avec les avancées technologiques (par ailleurs remarquables) qui l’alimentent et qu’elle alimente. Toutefois cette perception de notre discipline (que d’aucuns pourraient qualifier de trop “académique”, voire de “passéiste” !), ne doit pas être dissociée du monde des applications dont elle est issue : ce monde lui conf`ere une dimension technique qu’il serait à son tour réducteur de ramener à un recueil de recettes. Il est par ailleurs important de noter que cette dualité science/technique de notre discipline façonne la perception que nous avons des algorithmes et des machines qui s’avèrent être importants à uninstant donné .
Ainsi ma philosophie d’enseignant a toujours consisté à donner aux étudiants cette double perception de l’informatique en faisant en sorte qu’ils perçoivent le monde de la pérennité comme un des pré-requis indispensables pour mener à bien leurs futures réalisations. J’utilise souvent avec eux l’image suivante: “Vous avez une culture scientifique (en l’occurrence physique) qui vous permet de ne pas être mystifié lorsque quelqu’un prétend avoir inventé un moteur avec un rendement de 100% : votre connaissance des principes
de la thermodynamique vous autorise à ne pas le croire. Il en va de même en informatique : la différence entre un hacker et vous passe par la connaissance d’un certain nombre de résultats qui vous permettront de distinguer ce qui est dans le domaine du réalisable de ce qui ne l’est pas, et, pour ce qui est faisable, par l’apprentissage des rzsultats (concepts, techniques et mzthodes) qui vous permettront de rzsoudre vos problèmes. Le but de l’enseignement réside précisément là. Dans un contexte d’études supérieures, le savoir-faire est important, mais le savoir ne se réduit pas au savoir-faire”. Le but de l’enseignement est de faire la part de chacun et de les enseigner tous deux en conséquence”. C’est cet état d’esprit qui a présidé à l’écriture de mes ouvrages : assimiler les principaux résultats de recherche dans un domaine (à savoir les algorithmes pour les systèmes répartis) afin d’en faire passer l’essentiel auprès des étudiants.
C’est-à-dire une “aventure intellectuelle” pour reprendre les termes de Jean-Marc Levy Leblond dans La pierre de touche (Gallimard, collection Folio Essais, 369 pages, 1996). Sans vouloir rentrer dans un débat épistémologique sur la nature de l’informatique, je citerai trois ouvrages qui m’ont marqué dans ma vision de cette discipline: Les machines à penser de J. Arsac (Seuil, coll. Science ouverte, 1987, 255p.), La science et les sciences, de G.-G. Granger (Que-sais-je? 2710, 1993) et Une histoire des techniques de B. Jacomy (Points-Science, Seuil, 1990, 356 p.).
Aujourd’hui, le monde des applications est fortement caractérisé par la dimension monde de la vitesse et de l’instantanéité de l’informatique. Il suffit pour s’en convaincre de regarder les appels d’offres financés par la communauté européenne.
Distributed algorithms: a personal view
Michel RAYNAL
Informatics can be defined as the meeting point between mathematics and technology. Roughly speaking, its two components, computer science and computer engineering, can be seen as complementary facets: computer science is to understand, computer engineering is to build. Said in another way, we are concerned with a science of abstraction, namely, creating the right model for a problem and devising the appropriate mechanizable techniques to solve it.This is particularly true in (fault-tolerant/dynamic/large-scale/etc.) distributed computing where finding models that are realistic while remaining abstract enough to be tractable, was, is and still remains a real challenge.
Distributed computing was born in the late seventies when people started taking into account the intrinsic characteristics of physically distributed systems. The field then emerged as a specialized research area distinct from networks, operating systems and parallelism. Its birth certificate is usually considered as the publication in 1978 of Lamport’s most celebrated paper “Time, clocks and the ordering of events in a distributed system” (that paper was awarded the Dijkstra Prize in 2000). Since then, several high level journals and (mainly ACM and IEEE) conferences are devoted to distributed computing.
Distributed computing arises when one has to solve a problem in terms of entities (usually called processes, agents, sensors, peers, actors, processors, nodes, etc.) such that each entity has only a partial knowledge of the many parameters involved the problem that has to be solved. While parallelism and real-time can be characterized by the words efficiency and on time computing, respectively, distributed computing can be characterized by the word uncertainty. This uncertainty is created by asynchrony, failures, unstable behaviors, non-monotonicity, system dynamism, mobility, low computing capability, scalability requirements, etc.
Mastering one form or another of uncertainty is pervasive in all distributed computing problems. Finally, as the aim of a theory is to codify knowledge in order it can be transmitted (to students, engineers, practitioners, etc), research in distributed computing theory is fundamental. When something works we must know why it works, and when something does not work ... we must know why it does not work.