• Feite Kraay, Author |
8 minutes de lecture

Vers le début des années 1990, je bricolais avec un ordinateur personnel que j’avais depuis un certain temps. Je ne me souviens pas exactement pourquoi, peut-être le démontais-je pour récupérer des pièces. Toutefois, je me suis retrouvé avec deux puces mémoires de 500 kilo-octets chacune dont je n’avais plus besoin. Je me souviens qu’un de mes collègues, constatant que cette puce était compatible avec son ordinateur personnel, m’a acheté ce mégaoctet pour la somme de 1 000 $. Réfléchissons un instant : si ce prix était encore valable aujourd’hui, mon ordinateur portable doté de 16 gigaoctets de mémoire vaudrait plus de 16 millions de dollars.

À cette époque, des problèmes spécifiques mais éphémères de la chaîne d’approvisionnement avaient entraîné une augmentation temporaire du prix de la mémoire. Le prix de la mémoire et du matériel informatique en général est par ailleurs en forte baisse depuis des décennies. Les mégaoctets de mémoire peuvent désormais être achetés pour quelques cents et le matériel informatique universel est devenu un produit de base. Je pense que cela a eu une incidence importante sur notre approche de la conception et de l’architecture de logiciels, ainsi que sur le déploiement et la gestion des systèmes à grande échelle.

Je ne serai pas nostalgique d’un passé utopique inexistant, mais il y a quelques décennies, lorsque le matériel était assez coûteux, l’efficacité et la vitesse d’exécution étaient les principales préoccupations en matière de développement logiciel. Le fait d’enlever quelques octets de nos structures de données était récompensé, et les étudiants de premier cycle suivaient des cours obligatoires sur la conception de compilateurs afin de comprendre les nuances de l’élaboration d’un logiciel pour une exécution rapide. Le compromis entre les deux était un code flou, non seulement difficile à comprendre pour tout autre programmeur, mais aussi compliqué à préserver ou à améliorer. Il n’était pas non plus facile à assimiler pour un utilisateur normal; cependant, il fonctionnait rapidement. La recherche d’un code efficace a eu d’autres conséquences inattendues, dont une assez importante sur laquelle je reviendrai plus loin dans ce billet.

Maintenant que le coût et la disponibilité du matériel ne sont plus un obstacle, l’architecture logicielle a pu se concentrer sur les facteurs humains, comme l’interface utilisateur intuitive, la convivialité et les fonctionnalités plus avancées. Nous avons approfondi notre utilisation des ordinateurs et des logiciels et les avons intégrés dans nos voitures, nos maisons et nos appareils électroménagers, ainsi que dans la quasi-totalité de nos processus commerciaux et industriels. Et nous les avons tous reliés entre eux par de vastes réseaux publics et privés et par des centres de données. Cela a entraîné une énorme démocratisation de la technologie et, sans doute, une meilleure qualité de vie. Bien sûr, nous ne sommes pas encore dans l’utopie, bien au contraire. Il reste encore beaucoup à faire, notamment en ce qui concerne la répartition équitable de l’accessibilité dans les pays sous-développés et dans d’autres populations marginalisées. Mais il est raisonnable d’affirmer que notre situation s’est nettement améliorée.

Cacher la poussière sous le tapis
Il existe cependant un problème flagrant qui n’a pas été suffisamment pris en compte : l’incidence environnementale liée à tous ces calculs. Le matériel bon marché et abondant a ses inconvénients, en particulier sa consommation d’énergie et l’empreinte carbone qui en résulte. Nous avons déjà vu certaines de ces statistiques : l’énergie nécessaire au fonctionnement d’une seule plateforme d’IA générative pourrait alimenter une ville d’environ 67 500 habitants, et on estime que les cryptomonnaies consomment entre 0,4 % et 0,9 % de l’ensemble du réseau électrique mondial.

En outre, les opérations infonuagiques et les centres de données publics et privés consomment des quantités importantes d’énergie tout en rejetant beaucoup de chaleur dans l’environnement en raison du refroidissement de tous ces processeurs et appareils de stockage de données. En parlant de données, les « données cachées », une idée fascinante sur laquelle j’ai récemment lu beaucoup de choses, contribuent également de manière importante à l’empreinte carbone.

Malgré leur nom obscur, les données cachées font simplement référence à des données qui ne sont pas ou plus utilisables pour l’usage auquel elles étaient destinées. Il peut s’agir de données incomplètes, inexactes ou fausses, mais souvent aussi de données anciennes ou périmées qu’il n’est pas forcément nécessaire de conserver et dont la valeur diminue avec le temps. Parmi les exemples de données cachées, on peut citer les données météorologiques datant de plusieurs dizaines d’années, les vieux dossiers médicaux ou les données saisies ou stockées aléatoirement, peut-être avec des formats de dates différents qui rendent l’analyse difficile ou avec des lacunes liées à la collecte au fil du temps ou dans une zone géographique, qui en limitent l’utilité.

Parfois, la réglementation exige la conservation de données cachées (par exemple, les dossiers médicaux ou les documents financiers), mais dans de nombreux cas, ces données peuvent et doivent être corrigées, consolidées ou même supprimées. Les analystes d’une grande société données ont estimé que jusqu’à 50 % des données des entreprises peuvent être considérées comme cachées. L’incidence environnementale de toutes ces données cachées a été évaluée à 6,4 millions de tonnes de CO2 émises chaque année dans l’atmosphère.

Alors, que faire de l’empreinte carbone associée à notre profil technologique en constante évolution? Il existe différentes solutions en fonction de la partie du problème à laquelle on s’intéresse. Si on additionne toutes ces solutions, il est possible de changer les choses.

Un octet à la fois
Prenons pour commencer la conception de centres de données. Les centres de données peuvent être construits ou réaménagés de manière à réduire leur empreinte carbone de plusieurs façons. La chaleur résiduelle pourrait, par exemple, être réutilisée pour chauffer des bureaux ou alimenter des serres locales. Il existe de nombreuses normes en matière de construction écologique et d’exploitation de sites, et tous les acteurs, que ce soient les gouvernements ou les consommateurs, pourraient récompenser les centres de données qui privilégient l’utilisation de l’énergie solaire, éolienne ou d’autres sources d’énergie durables.

D’autres mesures peuvent être prises au sein du centre de données. Une partie du problème réside dans la quantité de matériel, et donc dans la quantité d’énergie nécessaire pour prendre en charge de nombreux clients ayant des charges de travail informatiques différentes. Ces charges de travail ne sont jamais stables, elles fluctuent, avec des sommets et des creux qui se produisent à différents moments. De nombreux efforts sont déployés pour déterminer comment équilibrer les charges de travail. Si les sommets et les creux se produisent à des moments différents, l’utilisation peut être moyennée pour obtenir un niveau de consommation total inférieur. Bien entendu, il faut également minimiser le risque que trop de sommets se produisent en même temps et surchargent l’infrastructure, ou au moins maintenir une capacité de réserve pour de telles situations. (Cela me semble être un problème d’optimisation fascinant. Peut-être pouvons-nous le résoudre avec des techniques quantiques?)

La présence et l’utilisation des données cachées peuvent également être optimisées. Tout d’abord, les sociétés peuvent et doivent examiner attentivement leurs données et déterminer s’il est nécessaire de les conserver. S’il est possible d’en éliminer, c’est encore mieux. Ensuite, il faut classer les données en fonction du type de conservation et des exigences en matière d’extraction. Les données plus anciennes susceptibles d’être utilisées moins souvent pourraient être stockées sur des bandes ou d’autres supports plutôt que sur des lecteurs de disques qui sont toujours allumés et qui permettent une récupération instantanée.

Enfin, il faut réintroduire la notion d’efficacité dans la conception et le développement des logiciels. Les orateurs des conférences technologiques auxquelles j’ai assisté dans la dernière année ont commencé à aborder ce thème, en encourageant les développeurs à coder à nouveau du point de vue de la rareté des ressources. Il s’agit là d’un équilibre délicat, et je n’insinue certainement pas que les programmeurs ont délibérément entraîné du gaspillage dans la manière dont ils conçoivent et écrivent le code. Mais le matériel informatique bon marché, abondant et puissant a facilité un compromis entre l’efficacité du code et la fonctionnalité et la maintenabilité. Si les préoccupations environnementales nous obligent à repenser ce compromis, nous pourrions arriver au meilleur des deux mondes : un code propre, si on veut, à plus d’un égard.

Exposition complète
Évidemment, la première fois que j’ai entendu un conférencier aborder le sujet de l’efficacité du code, c’était en novembre 2022, et j’ai immédiatement pensé : « Qu’est-ce qui pourrait bien aller de travers? » Jusque dans les années 1980 et même, sans doute, jusque dans les années 1990, une technique de programmation courante pour économiser quelques octets de mémoire consistait à utiliser deux chiffres pour le champ de l’année dans toutes les structures de données ayant trait aux dates. Il était facile d’effectuer des calculs de dates en supposant que toutes les années se situaient dans les années 1900 et que tous ces logiciels seraient remplacés bien avant la fin du siècle. Le résultat, bien sûr, a été le problème du passage à l’an 2000, un exemple coûteux, risqué et finalement fastidieux de la loi des conséquences imprévues. Personne n’a délibérément causé ce problème, les gens de l’époque n’ont simplement pas réfléchi à tous les scénarios possibles. Cette fois-ci, et tout comme pour l’optimisation de la charge de travail, soyons prudents dans notre approche et posons quelques questions supplémentaires.

Construction durable, optimisation de la charge de travail, rationalisation des données et efficacité du code : seuls ces éléments n’ont peut-être pas beaucoup de poids; mais ensemble, ils joueront un rôle important pour aider le secteur des technologies de l’information à faire le ménage dans nos habitudes. La planète nous en remerciera.

Publication multilingue

Cette publication est aussi offerte dans les langues suivantes :

Tenez-vous au courant de sujets qui vous intéressent.

Inscrivez-vous aujourd’hui pour avoir accès à du contenu personnalisé en fonction de vos intérêts.