Dites-nous en plus sur votre projet

Nous vous proposerons une formule adaptée à vos besoins, ainsi qu’une estimation de devis.
Laissez-vous guider

Pourquoi choisir Aneo pour votre projet ?

Aneo est une agence conseil en transformation qui vous accompagne tout au long de la vie de vos projets sur des problématiques de :

Le +  d’Aneo : le conseil sans frontière !

Notre richesse, c’est de vous proposer des équipes pluridisciplinaires, chaque membre avec une approche, une expérience et une sensibilité différente : coach agile, formateur soft skills, Data Scientist designer, Architecte etc. On mise sur la complémentarité des disciplines pour vous apporter la meilleure réponse !

Pourquoi choisir Aneo  pour votre projet ? - Aneo

Aneo, une organisation à part entière !

Depuis 2015, Aneo est une organisation plate à gouvernance plate. Aplatir la hiérarchie, supprimer les silos, instaurer des bonus collectifs, ce nouveau modèle d’organisation avec comme objectif: apporter plus de valeur  à l’entreprise, aux collaborateurs et aux clients.

Le + d’Aneo : l’inattendu !

La sérendipité, c’est « le don de faire par hasard des découvertes fructueuses ». Chez Aneo, nous croyons fermement que les meilleures solutions sont parfois les plus inattendues. Ne rien s’interdire, expérimenter, oser s’entourer de profils atypiques et avoir une obsession : apporter la juste valeur.

Aneo, une organisation à part entière !  - Aneo

Qui êtes-vous ?

Vous êtes pour

Votre secteur

1 seul choix possible
Assurance & Protection sociale
Banque et Finance
Industrie & Services
Santé

Vos besoins

Plusieurs choix possibles
IT & Digital
Transformation des Organisations
Stratégie Business
Pilotage de projets

Détails

Des précisions à ajouter sur votre projet ? (facultatif)
C'est noté !
Nous avons pris en compte les spécificités de votre projet.
Nos équipes vous contacteront sous 48h pour en discuter plus amplement.
Votre prénom *
Votre nom *
Votre adresse email pro *
Votre numéro de téléphone *
Bien reçu !
Nos équipes vous contacteront sous peu
pour discuter de votre projet.

Le calcul intensif (HPC) ou la plus ancienne niche du secteur informatique

Tout domaine technique démarre avec des équipes composées de personnes multi-expertes et très pointues. Les premiers constructeurs automobiles étaient à la fois mécaniciens, chimistes, pilotes, électriciens, etc. Dans l’informatique, c’est pareil.

 

Les premiers ordinateurs ont été conçus dans les années 40-50 par des chercheurs dans le cadre de projets militaires pour calculer des trajectoires balistiques. À cette époque, ces chercheurs sont à la fois physiciens, mathématiciens, électroniciens, logiciens… Ils conçoivent en même temps le problème physique, la formulation mathématique à résoudre et la machine capable de résoudre ce problème. On ne parle pas alors de logiciel : les premiers superordinateurs comme ENIAC sont conçus pour résoudre un problème et un seul. En effet, les ressources de calcul sont très limitées : n’oublions pas que le calculateur utilisé pour préparer les missions Apollo était moins puissant que la calculatrice d’un collégien d’aujourd’hui ! Tous les moyens sont donc mis en œuvre pour permettre d’exploiter au mieux ces ressources. Ainsi, certaines hypothèses physiques peuvent-elles avoir leur traduction directe dans l’architecture des composants de calcul utilisés. Pour passer à un autre problème, il faut alors changer l’architecture de la machine : la « recabler », voire la démonter et la remonter autrement… Ce qui pouvait prendre plusieurs jours.

Heureusement, les scientifiques ne repartent pas de zéro à chaque fois : certains composants, nécessaires à tous les calculs scientifiques, ont fini par se standardiser. Ainsi, la façon de représenter les nombres s’est-elle standardisée afin de permettre de réutiliser des conceptions existantes lors des mises à niveau de matériel. Ainsi, standard de fait depuis plusieurs années la représentation des nombres flottants (les « float » et les « double ») tel que nous la connaissons a été normalisée en 1985 et a été étendue en 2008. Dans un second temps, les unités de calcul elles-mêmes ont été standardisées. Par exemple, en 1967, IBM produit le co-processeur IBM System/360 Model 91, un des premiers accélérateurs de calcul flottant (Floating Point Unit ou FPU).

Cette standardisation du matériel s’est accompagné de l’émergence d’approches plus haut niveau pour décrire les problèmes à résoudre. Parmi les exemples notables, citons l’exemple de FORmula TRANslator, plus connu sous le nom FORTRAN, dont la première version a été publiée en 1954 et qui sera officiellement standardisé pour la première en 1966 par l’ANSI. Lisp, un langage ayant marqué le monde de la recherche en intelligence artificielle date également de cette période puisque la première version date de 1958. Ces standardisations sont l’occasion de spécialiser les rôles dans les équipes et permettent in fine de créer de nouveaux champs disciplinaires : certaines personnes conçoivent le matériel de calcul tandis que d’autres implémentent les logiciels utilisant ce matériel. Le lien étant fait par des logiciels spécialisés appelés compilateurs ou interpréteurs. Bien sûr, pour écrire ces compilateurs, il convient de connaître aussi bien le langage de programmation que l’architecture matérielle. Néanmoins, il n’est plus nécessaire de connaître la physique des problèmes à résoudre, ni les mathématiques associées et de l’autre côté il n’est plus nécessaire de connaître la physique des semi-conducteurs permettant de concevoir les processeurs. Les théories des langages, des graphes ou de l’information, l’intelligence artificielle ou encore l’optimisation combinatoire sont autant de domaines scientifiques qui ont beaucoup progressé pendant les années 1970-1980 grâce à ces efforts de standardisation.

Les années 1980 sont également le témoin de la démocratisation de l’outil informatique dans les centres de recherches et les entreprises les plus avancées. Cette démocratisation permet l’émergence de formations aux métiers de l’informatique : l’informatique n’est plus le pré carré des scientifiques. C’est le socle commun d’une véritable industrie impactant le cinéma (les première images de synthèses datent de 1978 dans Star Wars), les jeux qui deviennent vidéos, les services bancaires, les communications, etc. Il est alors naturel que poussée par les enjeux économiques et sociétaux, une partie de la communauté s’investisse pour proposer des outils et des méthodes permettant à la fois un apprentissage plus facile, une productivité plus élevée et une maintenance moins coûteuse. MatLab a été créé en 1984 dans le but de faciliter l’apprentissage et la mise en œuvre de logiciels mathématique : l’objectif était que des étudiants puissent l’utiliser et être opérationnels suffisamment rapidement pour l’utiliser dans le cadre de cours de mathématiques. Initié au début des années 1990, Java est un très bon exemple de langage et d’environnement tourné vers la productivité (simple d’accès car impératif, orienté objet, managé, fortement typé). C#, apparu quelques années plus tard s’inscrit dans la même dynamique.

Ces évolutions vers plus de facilité dans le développement ont naturellement un coût. En effet, ces abstractions ont un impact non négligeable sur les performances. Grâce à l’augmentation de la puissance de calcul des processeurs, cet inconvénient est progressivement devenu négligeable devant les gains en temps de développement et de maintenance. Aujourd’hui, rares sont les applications pour lesquelles un réel effort d’optimisation est nécessaire. De fait, la plupart des applications aujourd’hui utilisées pourraient consommer au moins deux fois moins de puissance de calcul ; l’effort d’optimisation n’en vaut simplement pas la peine puisque les ordinateurs (ou téléphones) sont suffisamment puissants pour permettre l’exécution de logiciels non optimisés. Pour que l’effort d’optimisation soit justifié, il faut que le coût de l’optimisation soit inférieur au coût du temps perdu. Ainsi, consacrer du temps à optimiser le code d’un jeu comme le solitaire est-il totalement absurde : la valeur des quelques millisecondes qui pourraient être gagnées ici ou là est rigoureusement nulle. A l’inverse, investir du temps dans l’optimisation des performances d’un logiciel de rendu d’images 3D est totalement justifié dans le domaine des films d’animation. En effet, le coût matériel de rendu d’un film est très élevé et les gains induisent un retour sur investissement assez rapide.

Pour optimiser les performances des logiciels, les approches les plus poussées nécessitent de travailler à la fois la modélisation, les algorithmes et l’implémentation en prenant en compte les caractéristiques de l’architecture matérielle employée. Autrement dit, elles impliquent de revenir au moins partiellement sur les abstractions qui ont été introduites au cours des dernières décennies. Les bibliothèques de calcul parmi les plus performantes à ce jour comme la bibliothèque d’algèbre linéaire GOTO BLAS sont d’ailleurs écrites en langage assembleur, le langage de plus bas niveau possible.

Aujourd’hui, de plus en plus d’applications nécessitent ce haut niveau de performances (physique, météo, exploration pétrolière, simulations de crash-tests, calcul financiers, chimie moléculaire, pharmaceutique, cosmétique, cinéma, jeux-vidéo, etc.) et de plus en plus d’efforts sont fournis afin d’obtenir des outils offrants à la fois un haut niveau d’abstraction et un niveau de performance élevé. Ainsi les évolutions récentes apportés au langages C++ ont-elles été conçues pour permettre de concilier performances et haut niveau d’abstraction. Cette tendance s’étend par ailleurs aux langages qui n’ont pas été conçus au départ pour fournir un haut niveau de performances. Par exemple, en 2015, Microsoft a étendu le langage C# pour permettre au développeur d’exploiter les unités vectorielles des processeurs.

Pour répondre à ces besoins, de plus en plus d’outils optimisent leur fonctionnement en fonction du matériel. Par exemple, dans le domaine de l’algèbre linéaire, les bibliothèques C++ Eigen et NT² permettent de se rapprocher fortement du langage mathématique tout en prenant en charge les optimisation bas niveau. Le Machine Learning est un autre exemple de domaine et est peut-être celui qui permettra de sensibiliser le plus de personnes à ces différents enjeux. En effet, les enjeux y sont tels que les géants du web ont tous développé leurs outils optimisés et le proposent tous à la communauté (TensorFlow de Google ou Cognitive Toolkit de Microsoft en sont des exemples). Ces outils répondent à la fois aux besoins de performances et aux besoins de facilité de maintenabilité des applications. Ainsi permettent-ils aux Data Scientists de se concentrer sur leur métier en se souciant moins des enjeux de performances.

Cette approche consistant à concevoir les outils spécifiques à un domaine applicatif conciliant et les enjeux de performances et les enjeux de simplicité d’utilisation fait partie des valeurs ajoutée d’ANEO. Par exemple, ce type d’outil permet à des quants d’utiliser efficacement des architectures matérielles aussi diverses que le x86 (multithreadé et vectorisé), le GPU et le Xeon Phi à partir d’un même code source métier. Elle permet à des numériciens d’exprimer leur problème d’algèbre linéaire et de cibler efficacement le x86 ou le GPU.

Nous expérimentons actuellement la généralisation de ces approches aux architectures distribuées à travers deux projets :

  • Un projet visant à permettre aux utilisateurs de composer dynamiquement des flux de traitement d’image et de machine learning en ciblant à la fois CPU x86 et GPU
  • Un projet visant à concevoir un code de propagation d’ondes sismiques sur architecture distribuée à base de CPU x86, ARM ou Power8

Nous vous en parlerons dans de prochaines publications qui leurs seront consacrées. Nous vous parlerons également très prochainement du FPGA et de son intérêt pour faire du calcul.

Crédit : Wilfried KIRSCHENMANN

Ça peut aussi vous intéresser
Webinar : Comment adapter sa gestion de projet à l’agilité ?

Webinar : Comment adapter sa gestion de projet à l’agilité ?

Aneo et CentraleSupélec Exed vous présentent le webinar : Comment adapter sa gestion de projet à l’agilité ? Les organisations du travail qui s’inspirent du Manifeste Agile sont aujourd’hui très à la mode dans le pilotage des projets, donnant naissance à une nouvelle catégorie d’acteurs de…
19 février 2020
Dîner Mauricette du 11 mars 2020 : Impact de la loi PACTE … pour le collaborateur ?

Dîner Mauricette du 11 mars 2020 : Impact de la loi PACTE … pour le collaborateur ?

Vous êtes Directeur/rice des Ressources Humaines ou Directeur/rice Général(e) ? Mauricette, la marque formation d’Aneo, vous invite à son dîner le mardi 11 mars 2020 à 19h !   Vous vous interrogez sur comment embarquer vos collaborateurs autour de notions de gouvernance ouverte, de raisons d’être, d’entreprises à mission ? La…
17 février 2020
Cercle des DSI – Piloter par la valeur : une nécessité pour mieux maîtriser vos portefeuilles de projet ?

Cercle des DSI – Piloter par la valeur : une nécessité pour mieux maîtriser vos portefeuilles de projet ?

Depuis 7 ans, le Cercle ANEO des DSI est un cercle intimiste d’échanges entre décideurs IT de tous secteurs. L’esprit qui anime ce cercle est de débattre librement, en petit comité (~25 personnes) de thèmes stratégiques ou innovants dans un cadre décontracté et un esprit amical.Le cercle se…
17 février 2020
Vous avez un projet de transformation
digitale pour votre entreprise ?