Les données dans les nuages

ill-cloud1

Il est intéressant de remarquer que la gestion de données dans un système de gestion de base de données (SGBD) n’a cessé de se compliquer. On pourra suivre cette évolution sur la figure ci-dessus. Considérons par exemple une application Toque qui utilise les données sur des recommandations de restaurants. Au départ, les données (les recommandations) et l’application (le code de Toque) sont sur le même ordinateur (architecture mono-machine). Dans les années 70-80, on est passé à une architecture client-serveur. On a placé le serveur (le SGBD et ses données) sur une machine dédiée, dotée des ressources adaptées, et les clients (les applications qui accèdent à ces données) sur d’autres, souvent des postes (les fameux micro-ordinateurs) remplaçant les terminaux passifs. Cette architecture a encore évolué à partir des années 90 par l’ajout d’un troisième niveau (« 3-tier ») en séparant la couche applicative et l’interface utilisateur.

Les raisons principales de cette complexité croissante tiennent essentiellement à l’augmentation des ressources nécessaires pour chaque composant :

  • Les serveurs de données sont confrontés à des volumes de données sans cesse croissants, et doivent communiquer avec un nombre d’applications clientes elles-mêmes en constante progression. On parlait en Mégaoctets dans les années 80, en Téraoctets de nos jours, soit une croissance de l’ordre d’un million. Un serveur de données dans une grande entreprise doit satisfaire des milliers de requêtes simultanées. Ces tendances (et quelques autres, comme la sécurité) ont dicté l’affectation de ressources de calcul importantes aux SGBD.
  • Les applications elles-mêmes ont grossi et se sont complexifiées. Notre application Toque, initialement écrite en Fortran et effectuant quelques opérations simples, est devenue une plate-forme Java complexe, utilisant des bibliothèques extérieures, fournissant des services Web, mettant en jeu un paramétrage lourd. L’installation et la maintenance d’une telle plate-forme sur les postes clients sont devenues des tâches très complexes : on préfère ne laisser au poste client qu’une couche logicielle mince dédiée à l’interface utilisateur.

Nous sommes en 2015, l’application Toque est devenue une référence avec une base de données ambitionnant de couvrir tous les restaurants du monde, des logiciels internes d’analyse et de recommandation gourmands en ressources, une interface sur le Web et des applications mobiles. De plus, le nombre d’utilisateurs de l’application varie assez fortement dans le temps, avec un pic de fréquentation le samedi en fin d’après-midi. Les dirigeants se posent la question : comment faire face à l’augmentation des ressources matérielles nécessaires, à leur maintenance, à leur renouvellement, tout en ne surdimensionnant pas leur système. Le cloud offre une solution.

Le cloud computing, ou l’informatique en nuage, est l’exploitation de la puissance de calcul ou de stockage de serveurs informatiques distants par l’intermédiaire d’un réseau, généralement l’internet. Ces serveurs sont loués à la demande, le plus souvent par tranche d’utilisation selon des critères techniques (puissance, bande passante, etc.) mais également au forfait. Il s’agit donc d’une délocalisation de l’infrastructure informatique. [A partir de Wikipédia, Cloud computing, 2015]

cloud

Dans le cas de la gestion de données, on va déporter le SGBD et l’application dans le cloud, c’est-à-dire dans des fermes de serveurs connectées à l’Internet (figure ci-dessus). Les données passent sur des machines, dont la localisation quelque part dans le monde n’a a priori pas d’importance, et idem pour les applications. Ce qui a permis de le faire c’est :

  • l’augmentation des vitesses et capacité des réseaux informatiques, et
  • la disponibilité d’immenses ressources interconnectées de calcul et de stockage – les fermes de serveurs – dotées de la technologie permettant de les découper en machines virtuelles, configurables à la demande, pour optimiser leur temps d’utilisation.

(De nombreuses questions, en particulier juridiques, apparaissent lors de l’utilisation du cloud. En effet, comme les données sont localisées dans plusieurs pays, quelles lois s’appliquent alors ? Par exemple, les lois  sur la gestion des données personnelles diffèrent entre l’Europe et les Etats-Unis.)

On sait maintenant faire fonctionner des fermes de serveur avec des millions de processeurs, des PétaOctets (1 PO = 1 000 TO) de données. On peut construire, temporairement, à la demande, une infrastructure virtuelle pour exécuter à faible coût  de très gros traitements, sans avoir à effectuer d’investissement lourd. Cette flexibilité permet également de répondre à un problème de charge variable au cours du temps.

Une ferme de serveurs, c’est d’abord une masse considérable de matériel informatique, des baies de processeurs, des baies de stockage, des réseaux informatiques, des réseaux de télécoms, un système électrique fournissant une puissance considérable, un système de climatisation consommant une part importante de cette électricité… C’est aussi un support pour les données de notre application Toque, avec des problématiques comme la gestion de  millions d’utilisateurs et de restaurants, les milliards de recommandations et de commentaires avec un très grand nombre de machines. Par exemple, avec un nombre massif de machines, et de disques, des pannes arrivent statistiquement souvent. Un des défis techniques est le maintien opérationnel du système en dépit de la fréquence d’incidents plus ou moins graves. Un autre est la gestion de la climatisation : comment arriver à maintenir à faible coût les machines à une température raisonnable alors qu’elles dissipent une énergie considérable  et qu’il peut faire chaud en dehors du centre. Des efforts importants sont consacrés à la baisse du « coût écologique » de tels centres.

Alors, doit-on recourir au Cloud pour nos données et nos applications ? Pesons le pour et le contre :

  • Pour : l’absence d’investissement dans une infrastructure matérielle coûteuse, d’obsolescence rapide, dont la qualité de service (disponibilité, efficacité) est techniquement difficile à garantir.
  • Pour : la délégation de la gestion des problématiques informatiques « bas niveau » (matériel, systèmes) à des compétences extérieures, afin de mieux pouvoir se concentrer sur son cœur de métier.
  • Contre : le prix à payer est une dépendance accrue vis-à-vis des sociétés de service, et une certaine incertitude sur la sécurité des données confiées à une entité externe.

Recourir au cloud, pour une entreprise, c’est donc choisir une forme de spécialisation économique, avec les avantages et inconvénients connus et discutés depuis longtemps.

Pour conclure, observons qu’à une échelle plus modeste, le cloud c’est aussi la possibilité pour une PME, un individu, de disposer d’un serveur à très faible coût (quelques Euros par mois), connecté sur le Web, hébergeant un site web, un blog ou des applications plus ambitieuses. C’est la démocratisation de l’accès au Web en tant qu’acteur.

Serge Abiteboul, Benjamin Nguyen, Philippe Rigaux

Note : Ce texte est tiré en partie du Mooc, Bases de données relationnelles : Comprendre pour maîtriser, réalisé par Inria pour la plateforme FUN par les trois auteurs de cet article.

L’homme nu… N’importe quoi !

Suivant la suggestion d’un ami, j’ai lu l’essai « L’homme nu. La dictature invisible du numérique » de  Marc Dugain et Christophe Labbé (journaliste au point) qui vient de paraître chez Plon. La référence à Orwell est lourde. Le livre nous raconte (lourdement) comment l’humanité court à sa perte, rien de moins.

(Youtube)
(Youtube)

Première surprise, Big data prend un nouveau sens. Les Big datas, ce sont maintenant les grandes entreprises du Web, Google et consorts. Ce mot, fort laid, qui a pourtant une définition précise, est aussi utilisé pour tout et n’importe quoi, alors pourquoi pas. Ça tombe bien d’ailleurs, le livre va les accuser de tout et n’importe quoi.

La thèse centrale du livre, c’est une conspiration secrète entre ces grandes entreprises (désolé je n’arrive pas à utiliser le terme Big datas) et les services secrets américains. En partant de faits exacts comme les « back doors » installées sur des serveurs de certaines de ces entreprises pour réaliser une surveillance de masse, le livre déduit le complot.

Oui, des lois, comme le Patriot Act aux Etats-Unis et la Loi de Renseignement en France, sont des menaces pour les démocraties. Nous faisons partie des gens qui se battent contre elles. Mais il ne faut pas dire n’importe quoi. Les grandes entreprises du Web ne les encouragent pas. Au contraire ! Leurs employés, leurs directions, sont probablement beaucoup plus contre ces lois que la citoyenne ou le citoyen moyen. Ne serait-ce que parce que c’est mauvais pour leur business. Et puis, parce qu’ils en comprennent le sens contrairement, par exemple, à cette énorme majorité de députés qui ont voté en France la Loi de Renseignement.

En plus de cette thèse discutable, le livre se livre à une mise en accusation systématique de toutes les transformations du numérique. C’est un plaidoyer sans nuance. J’avais déjà entendu à la radio Alain Finkelfraut s’essayer à démolir ces technologies. C’était de l’amateurisme car elles ne l’intéressent que peu finalement. Par contre, Marc Dugain et Christophe Labbé ont eux pris le temps d’étudier « La pieuvre », un mot qu’ils aiment utiliser.

Toutes les craintes, tous les fantasmes y passent. Ils ont fait une recherche exhaustive sur le Web et ils recensent tout. Le totalitarisme est dans les gênes de la moindre application de ces nouvelles technologies. Par exemple, elles facilitent l’accès à toutes les textes et toutes les connaissances. Dans cette « totalité », il y a du totalitarisme. Toujours plus de liberté avec le sens des mots ?

Prenons juste un exemple, un des plus triviaux. Ma montre qui compte mes pas. Je me suis habitué à elle. Quand même, grâce à elle, je marche beaucoup plus ; elle a peut-être plus fait pour ma santé que personne et je lui en suis reconnaissant. « L’homme nu » m’a appris qu’au contraire, elle ne faisait que servir les compagnies d’assurance. Suis-je con !

Sombrer dans cette espèce de délire anti-technologique, doublé d’une théorie du complot,  n’offrirait d’autre solution que  de se réfugier dans un lieu, loin d’Internet, et de l’électricité, s’il en existe encore. Bien sûr, une disruption pareille de notre monde ne se fait pas sans risques considérables, sans dégâts. Bien sûr, il ne s’agit pas d’adopter ces nouvelles technologies aveuglément, en technophiles béats. Mais, avec les algorithmes, avec l’informatique, avec le numérique, l’homme n’est pas nu. Il a des outils fantastiques à sa disposition. C’est à lui de décider de son avenir.

Serge Abiteboul

Voir aussi : Interview de Marc Dugain et de Christophe Labbé, dans l’émission « On n’est pas couché » de France 2.

WeTube : un YouTube écolo ?

Après YouTube voici WeTube, un outil de partage de vidéos qui se veut plus écolo que ses concurrents affichés : YouTube, l’omniprésente plateforme de Google, et Vimeo, plus connu des professionnels. Le point fort de WeTube ? C’est du « streaming en P2P ». Du … quoi ? Oui, bon, d’accord, ça fait deux termes à expliquer.

Un exemple de streaming: cliquer sur ce lien et http://fish.schou.me vous offre … ok ça relaxe, vous pouvez reprendre la lecture. ©SchouFishCam

Le streaming. Le terme vient du mot anglais « stream », le « courant », le « flux ». Pour voir un film sur internet, on peut soit télécharger tout le contenu avant de le visualiser, soit le regarder en stream. Dans ce deuxième cas, le film est envoyé depuis un serveur qui le possède en flux continu vers un client qui le reçoit et l’affiche à l’écran du spectateur (télévision, téléphone, tablette, etc.). Une grande différence avec le téléchargement, c’est que le client reçoit des morceaux de film et ne les conserve que le temps de leur visualisation, et cela en continu. La vitesse de transmission est de fait plus ou moins alignée sur la vitesse de visualisation pour qu’il n’y ait pas besoin de stocker de grands bouts du film. C’est de cette manière que la plupart des vidéos sont regardées sur internet.

Schéma d’une architecture pair à pair comparée à une architecture centralisée. ©fr.wikipedia.org

Le P2P. C’est l’abréviation de peer-to-peer en anglais ou pair-à-pair en français (d’égal-à-égal). Le grand principe du P2P est la mise en commun et le partage de ressources. Dans une architecture de machines en P2P, toutes les machines sont traitées sur le même rang ; il n’y a pas de « maitresse », pas d’« ouvrière ». Chaque machine est appelée un pair, c’est un nœud du réseau en pair-a-pair. Un pair (le client) propose une tâche particulière. D’autres pairs (les serveurs) se partagent cette tâche. Dans un réseau pair-à-pair, chaque machine est à la fois un serveur et un client.

Une des applications P2P les plus populaires est le partage de fichiers, avec des protocoles comme BitTorrent. Pour ce qui est de la diffusion de films en P2P, comme dans le cas de WeTube, un internaute va recevoir des films directement d’autres internautes et en fournir lui-même à d’autres internautes. Tout le monde donne et reçoit sans en avoir nécessairement conscience. Plus précisément, un internaute va visualiser un film en streaming, et plutôt que de se débarrasser des bouts de films déjà vus, sa machine va les conserver pendant quelques temps dans une zone de stockage, « un cache ». Cette machine pourra donc à son tour envoyer ces morceaux de films à d’autres internautes qui voudront le regarder en streaming. Les machines des internautes ne sont plus simplement des clients, elles sont devenues les nœuds d’un réseau en pair-à-pair.

C’est très efficace. Regardons ce qui se passe si un film est très populaire. Dans une architecture « client-serveur » classique, le pauvre serveur qui a hérité de ce film sature et le service se dégrade car un trop grand nombre d’internautes cherchent à regarder le même film presque en même temps. En P2P, plus le fichier est populaire, plus il est disponible sur de nombreux nœuds du réseau. La charge de travail de fournir ce film est partagée entre tous les pairs qui l’ont ! De plus, dans l’architecture client-serveur, le film doit typiquement parcourir un long chemin entre le serveur et le client. En P2P, il est probable qu’au moment où vous demandez ce film, un nœud « proche (sur le réseau) » puisse vous le procurer. Le film parcourra ainsi une plus petite distance. Si plusieurs nœuds proches de vous disposent du fichier, vous pourrez même en télécharger une partie chez chacun. C’est la puissance du parallélisme en action ; c’est techniquement très efficace.

C’est plus écolo qu’une architecture classique, comme nous l’explique Julien Tournier, co-fondateur de la startup WeTube :

  1. Moins de machines sont nécessaires et on économise donc des ressources (terres rares notamment) qui sont nécessaires à leur fabrication.
  2. On économise la climatisation des data centers (ces grandes salles hébergeant les serveurs). Or la climatisation est une partie très importante de leur consommation d’énergie.
  3. On économise en consommation d’électricité pour les communications, du fait de la proximité des nœuds du réseau qui procureront le film.

Les économies qu’avancent WeTube sont conséquentes : environ 40% d’économie d’électricité pour visionner un film. Nous ne garantissons pas ce chiffre. WeTube non plus d’ailleurs, qui aimerait valider ou pas ce chiffre une étude d’impact environnemental. Mais, selon un rapport de Cisco, en 2019, 80% du trafic mondial sur internet sera de la vidéo, principalement tiré par les services OTT (*). C’est donc vraiment un domaine où les économies sont potentiellement massives. En tous cas, bien plus importantes que celles engendrées si vous limitez vos recherches sur le web ou si vous évitez d’utiliser des fichiers attachés trop lourds dans vos courriels (ce que nous vous encourageons à faire de toute façon).

Économie collaborative. Pour WeTube, le streaming en P2P n’est qu’un début. La startup rêve d’un internet plus collaboratif dans l’esprit de Tim Berners Lee, avant que les GAFAM (Google Apple Facebook Amazon Microsoft) ne prennent toute la place. Le cœur du sujet, c’est de rendre à chacun ses données personnelles. Pour WeTube, il faut sortir ses données personnelles des data centers pour regagner le contrôle de sa vie privée. Mais pour les mettre où ? Un système P2P encore, cette fois un système de gestion de données en P2P. Votre ordinateur (vous le possédez, vous le louez, etc.) est un des nœuds du réseau. Nous sommes clairement très proches des Pims (Système de gestion des informations personnelles) dont nous avons déjà parlé avec une autre startup, Cozy Cloud. Les deux start-ups sont « amies » et évoluent un peu dans le même écosystème.

Le stockage d’information personnelle avec Lola @wetube
Le stockage d’information personnelle avec Lola @wetube

Mais recentrons-nous un peu sur la technique. Pour imaginer à quoi pourrait servir le système de WeTube, imaginons que vous avez mis des données sur votre Pims. Et si votre Pims n’est pas disponible temporairement, si son disque casse et perd toutes vos données ? Et bien c’est là que vous serez content d’être aussi dans un système P2P. Vos données sont répliquées sur les machines d’autres pairs – en contrepartie vous gardez des bouts des leurs.

Dans la série (que nous vous conseillons) de HBO, « Silicon Valley », Gavin Belson, un PDG d’une société informatique répète souvent : « Nous voulons construire un monde meilleur. » Bien sûr, cette insistance dans la série est ironique. Comme Gavin Belson, WeTube veut construire un monde meilleur. Nous ne savons pas s’ils vont réussir, si leur start-up deviendra grande. Mais c’était sympa de passer un moment avec eux.

Serge Abiteboul, Marie Jung

(*) Services OTT (Wikipédia) : Un service par contournement (en anglais over-the-top service ou OTT) est un service de livraison d’audio, de vidéo et d’autres médias sur Internet sans la participation d’un opérateur de réseau traditionnel (comme une compagnie de câble, de téléphone ou de satellite) dans le contrôle ou la distribution du contenu. Le fournisseur d’accès Internet distribuant le contenu peut être au courant du contenu des paquets IP circulant sur son réseau, mais n’est pas responsable, ni en mesure de contrôler, l’affichage des contenus, le respect des droits d’auteur, et / ou la redistribution du contenu.

Voyage dans le temps avec l’histoire illustrée de l’informatique

La plupart des gens ne comprennent rien à l’informatique – une lacune de l’enseignement français dont Binaire s’est largement fait l’écho. Ils ignorent encore plus son histoire. Ils ne savent rien des algorithmes que les babyloniens et les grecs manipulaient pourtant déjà. De son histoire passionnante, ils connaissent peut-être Turing mais rien de la progression qui a permis de passer du métier à tisser de Jacquard, à la machine Enigma de Turing, à un ordinateur moderne ou un smartphone.

@ EDP Sciences
@ EDP Sciences

Un livre va essayer de corriger cela : l’histoire illustrée de l’informatique d’Emmanuel Lazard et Pierre Mounier-Kuhn chez EDP Sciences (avec une préface de Gérard Berry du Collège de France).

XXXXX
Emmanuel Lazard et Pierre Mounier Kuhn, aux Deux Magots, Crédit photo de EL et PMK
Steve-Jobs-e-Steve-Wozniak de Fabio Bini
Steve-Jobs-Steve-Wozniak de Fabio Bini courtesy Apple Computer, Inc

Le livre, une plongée dans l’histoire de l’informatique depuis ses débuts, est bien documenté, extrêmement bien illustré. D’ailleurs je conseille pour commencer, de feuilleter le livre en admirant les illustrations ; il vous propose une belle balade dans le passé. Au détour des pages, les moins jeunes pourront s’offrir un peu de nostalgie avec le Minitel, ou le premier Mac.

Vous pouvez ensuite reprendre le livre en vous arrêtant au gré de votre humeur pour parcourir des articles.  Ne zappez pas le premier chapitre sur l’antiquité du calcul, tout à fait passionnant. Ensuite, les machines ont la part belle. La présentation des mini-ordinateurs et de la micro-informatique est très fouillée. Avec le parti pris chronologique,  on peut suivre suivre les progrès des machines, saisir un parfum de Loi de Moore. On peut regretter que les algorithmes et les logiciels, moins faciles à illustrer, doivent se contenter de la portion congrue. Ils seraient plus à leur aise dans une présentation thématique ? Mais ce serait un autre livre, une autre histoire de l’informatique qu’il faudrait écrire.

L’histoire continue, et avec l’informatique, elle va très vite. Pensez que le moteur de recherche de Google a été lancé dans les années 1990, le réseau social Facebook dans les années 2000, et l’entreprise de transport Uber dans les années 2010. C’est bien pour ça qu’il est essentiel d’avoir des historiens qui regardent dans le rétroviseur. C’est pour cela que je vous conseille l’Histoire illustrée de l’informatique

Serge Abiteboul.

Voir aussi le site de edpssciences

La Différentiation Algorithmique ou un éloge de la paresse.

Exemple Differencation automatique Atlantique
Influence annuelle de la température sur la circulation océanique autour du 29eme parallèle. Calculer les variations liées à ce modèle est un défi, dont on va parler ici. ©Consortium NEMO / CNRS

La Différentiation Algorithmique est une technique informatique destinée au monde du calcul scientifique.  La … quoi ? Et bien restez avec nous quelques lignes, Laurent Hascoet, va soulever le capot d’un outil méconnu des sciences et techniques informatiques, qui change pourtant complètement l’ingénierie.
Sylvie Boldo.

 

Oh oh j’ai de belles équations. Prenons une personne spécialiste du calcul scientifique, qui vient de choisir avec soin les équations mathématiques qui modélisent précisément le système qu’elle étudie, puis d’écrire un programme (l’algorithme) qui résout ces équations. Elle est fière d’elle-même, et elle a bien raison, car à l’issue de cet énorme travail, elle a une description quantitative de ce qu’elle doit étudier, développer ou améliorer.
Elle dispose en fait d’un simulateur, c’est à dire d’une boîte munie d’un grand nombre de petits leviers (des paramètres) qui, pour chaque réglage des leviers, calcule l’état résultant du système étudié.

Exemple Differencation automatique SonicBoom
Gradient (voir texte) calculé avec le logiciel Tapenade, du bang sonique au sol par rapport à la forme de l’avion. Le calcul montre que pour réduire le bang, il faut tirer la « peau » vers l’extérieur par endroit (zone rouges) et l’enfoncer ailleurs (zones bleues). © Dassault aviation / INRIA

Euh : Par exemple ? Eh bien, par exemple, pour étudier les performances d’un bateau, d’un avion ou d’un moteur à partir de leur géométrie, ce simulateur est bien plus rapide et plus économique que de construire réellement l’objet puis de le tester. Autre exemple : la simulation de l’évolution de l’atmosphère et de l’océan à partir de leur état actuel, pour dans cinq jours ou pour dans cent ans.

Toujours plus ! Ce simulateur est tellement commode que le spécialiste veut maintenant aller plus loin, et chercher le réglage des leviers qui produit le meilleur état possible, ou en tout cas le plus proche d’un état cible prédéfini.La meilleure forme d’avion, par exemple, ou ce qu’il faudrait faire au niveau planétaire pour infléchir le réchauffement climatique.
Problème difficile car les leviers sont nombreux, ils ont des tas de positions possibles, et les essayer toutes prendrait un temps colossal.

La dérivée ou différentielle ? C’est le calcul de la variation locale d’une fonction (ici la droite bleue donne la direction de variation de la courbe rouge); cela permet de savoir par exemple dans quel direction trouver le minimum de cette fonction. ©wikimedia.org

Le retour des maths. Heureusement en calcul scientifique la plupart des problèmes sont « différentiables ». Cela veut dire qu’il existe une opération mathématique (la différentiation) qui donne, à partir des équations, de nouvelles équations pour les « tendances » du système (on dit aussi son gradient).
Pas à pas, en suivant ce gradient et en le recalculant à chaque pas, on avance sur la ligne de plus grande pente jusqu’à atteindre un optimum (local).
Grâce à ce gradient tout est plus rapide, puisqu’il dit dans quel sens bouger chaque levier pour se rapprocher de l’état cible. On peut atteindre la position optimale des leviers en quelques pas seulement. Les domaines d’application sont immenses : ingénierie, aéronautique, climatologie, biologie ou même économie.

Exemple Differencation automatique Sbend1

Exemple Differencation automatique Sbend3 Écoulement perturbé par son passage dans un tuyau coudé. On calcule automatiquement le gradient (voir texte) de la perte de pression sur la paroi du tuyau, avec le logiciel Tapenade. ©Queen Mary University of London

Tout ça c’est bien joli, mais … ! Notre spécialiste vient de travailler des mois à choisir ses équations puis à écrire le programme qui les résout, pour découvrir maintenant qu’il faut écrire les équations différentiées pour le gradient puis écrire le nouveau programme qui les résout. Écrire les équations du gradient, passe encore, mais le programme pour les résoudre sera drôlement dur à écrire. Ce gradient est une chose plutôt abstraite et on pourra moins s’aider de son intuition. Et si on se trompe (et on se trompe toujours au moins une fois), comment aller chercher le bug dans tout ce fatras de calculs ?
Avouez qu’il y a de quoi hésiter un peu!

Pourrait-on être plus astucieux ?  C’est là qu’intervient la Différentiation Algorithmique. Après tout, l’algorithme du simulateur lui-même est « presque » équivalent aux équations mathématiques qu’il résout (pour ceux qui veulent le détail: la grosse différence est qu’il « discrétise » en échantillonant l’espace et le temps; tout ça cause de légères approximations, et on peut vivre avec). Bref, les équations mathématiques et l’algorithme informatique sont presques interchangeables.
Certes l’algorithme est bien moins élégant, moins concis, mais il aboutit au même résultat à l’issue d’une longue chaîne de milliards d’opérations élémentaires (additions, multiplications, divisions…). Et comme on sait écrire le gradient d’une telle chaîne de fonctions élémentaires, il suffit d’appliquer mécaniquement la recette. Souvenez-vous. C’était au lycée, on parlait de la dérivée de «f rond g». On peut donc transformer directement l’algorithme du simulateur en un nouvel algorithme qui calcule son gradient. C’est la Différentiation Algorithmique (DA).

grace-hopper
De même que Grace Hopper a bouleversé l’informatique en permettant de coder les programmes non pas en binaire mais avec des instructions lisibles par des humains, un compilateur se chargeant de la traduction, la DA permet de traduire automatiquement un programme informatique en un autre. © Vassal College

Et c’est là que l’informatique vient à la rescousse. On y est presque. Si l’algorithme du simulateur est court, on peut écrire à la main l’algorithme de son gradient. Il faut cependant être rigoureux et systématique car c’est une transformation lourde, en particulier parce que le gradient se calcule « en marche arrière » de l’algorithme du simulateur.
Mais le code du simulateur se mesure plutôt en milliers de lignes et il est quasiment impossible de le transformer  sans se tromper. Voie sans issue ? Non, parce qu’une grande force de l’informatique est qu’on peut écrire des programmes qui travaillent sur presque tout, y compris d’autres programmes. Un peu comme les compilateurs qui transforment un code informatique en langage machine.
Puisque la DA est complètement mécanique, laissons le travail à l’ordinateur. L’outil de DA va analyser l’algorithme source et produire l’algorithme gradient, en quelques secondes pour un code de plusieurs milliers de lignes. Cerise sur le gâteau l’outil de DA, tout comme un compilateur, emploie des analyses sophistiquées pour optimiser le gradient, pour le rendre plus rapide et moins gourmand en mémoire.

Tapenade www-tapenade.inria.fr un système de DA …©TROPICS-Inria

Du laboratoire de recherche au monde industriel. Depuis plusieurs années, une équipe d’Inria étudie la DA et développe Tapenade, un outil de DA. Même si cet outil sert surtout à tester les nouvelles méthodes pour rester en pointe dans la recherche, il a aussi un joli succès auprès d’utilisateurs industriels qui ont acquis une licence pour l’utiliser dans leur chaîne de développement. On y retrouve l’aéronautique avec Dassault Aviation, Rolls-Royce ou Boeing, la chimie avec BASF ou Cargill, le pétrole avec Total ou Exxon-Mobil, mais aussi quelques banques et institutions financières. Parallèlement, de nombreux centres académiques l’utilisent gratuitement pour leurs recherches, et un serveur web permet de l’utiliser directement sans installation.

Laurent Hascoet.

IoT : un propos sans blabla…

La SIF (Société Informatique de France) a organisé une journée scientifique le 23 mars sur l’IoT (Internet des Objets – Internet of Things, en anglais), accueillie par le Secrétariat d’état au numérique dans les locaux de l’Hôtel des ministres à Bercy. Cette journée a réuni 110 personnes.

Crédit photo : Pierre Metivier
Crédit photo : @PierreMetivier

Au delà du blabla habituel sur les sujets à la mode, la journée de la SIF a proposé des présentations scientifiques et techniques de très haut niveau, sur les défis informatiques de l’Internet des objets avec aussi des présentations sur les enjeux en terme de design des objets et de leurs applications ainsi que sur les problèmes posés pour le respect de la vie privée.

En effet, l’IoT introduit de nouveaux défis scientifiques. Dans beaucoup de cas, il ne s’agit pas de plaquer des techniques connues mais bien de repenser, de concevoir et d’inventer des éléments scientifiques et techniques qui vont résoudre des questions nouvelles apportées par cette prolifération de très nombreux petits objets connectés.

En savoir plus ?  Binaire et le Labo des savoirs en ont profité pour réaliser une troisième émission qui a pour thème l’internet des objets.

Retrouvez l’émission sur ce lien, et écoutez les intervenants de cette journée comme si vous y étiez !   Vous pouvez aussi consulter les présentations des intervenants sur le site de la journée.

Les coordinateurs de ces journées de la SIF :
Pierre Paradinas (CNAM) et Jérôme Durand-Lose (LIFO)

Retrouver les autres Podcasts Binaire/Labo des savoirs :