IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Julia est le lauréat du prix de la DARPA pour créer un framework
Devant permettre de multiplier par 1000 la vitesse de la simulation électronique

Le , par Bill Fassinou

53PARTAGES

6  0 
En à peine 10 ans d'existence, le langage de programmation Julia a su se faire une place de choix parmi les meilleurs langages utilisés pour le calcul scientifique et le calcul haute performance (HPC). Le langage a connu une augmentation significative de sa communauté au cours de ces dernières années et rien qu'en 2020, il a enregistré une augmentation de 87 % de ses téléchargements. Julia s'illustre de nouveau, car la DARPA vient d'octroyer un financement à Julia Computing pour apporter plus de performances, notamment en matière de vitesse, dans le domaine de la simulation de circuits électroniques. La vitesse devrait être multipliée par 1000.

Accélérer la simulation de circuit électronique à l'aide de l'IA et du ML

Il y a quelques jours, Julia Computing a reçu un financement de l'agence américaine DARPA (US Defense Advanced Research Projects Agency). Ce financement a été accordé pour accélérer la simulation de modèles de circuits analogiques et mixtes en utilisant des techniques d'apprentissage automatique (ML) et d'intelligence artificielle (IA) de pointe. En effet, la DARPA a lancé l'année dernière le programme Ditto. Selon les explications de l'agence fédérale, ce programme vise à explorer les nouvelles solutions d'IA de troisième génération dans le cadre de la simulation de systèmes microélectroniques.



La DARPA a déclaré que cet effort vise à développer un framework logiciel automatisé capable de prendre en compte la conception d'un système microélectronique, de former des modèles de substitution efficaces des composants du sous-système et de simuler ces conceptions 1000 fois plus vite tout en maintenant des niveaux de précision acceptables. En réponse à ce commentaire, Keno Fischer, cofondateur et CTO de Julia Computing, a mis en avant les qualités reconnues à Julia, permettant ainsi à son entreprise de décrocher le prix. Julia Computing est une société fondée en 2015 par l'ensemble des créateurs de Julia. Elle fournit des solutions d'entreprise évolutives via sa plateforme JuliaHub.

« Les performances de Julia et ses capacités de programmation différentiable nous donnent un avantage unique dans la création de nouveaux outils de modélisation et de simulation », a-t-il déclaré. « En utilisant des architectures de substitution récemment développées, telles que notre architecture CTESN (Continuous Time Echo State Network), nous avons déjà pu démontrer une accélération 100 fois supérieure en employant ces techniques dans des simulations multiphysiques et nous sommes ravis d'apporter cette technologie à l'espace de simulation électronique », a-t-il ajouté.

En outre, il est important de préciser qu'un récent domaine d'intérêt de Julia Computing a été la création d'une suite d'outils de modélisation et de simulation modernes renforcés par le ML, tels que le framework Pumas pour la simulation pharmaceutique. Toutefois, Julia Computing ne sera pas la seule société à travailler sur ce projet. Elle s'associe à QuEra Computing, une start-up spécialisée dans l'informatique quantique basée sur les atomes neutres. Elle est située à Boston, près de l'université Harvard. QuEra est fondée sur les recherches pionnières menées par les scientifiques Mikhail Lukin, Vladan Vuletic et Markus Greiner à Harvard et au MIT.

La mission de QuEra est de construire les ordinateurs quantiques les plus évolutifs à ce jour afin de résoudre des problèmes utiles, mais traditionnellement difficiles à résoudre, pour des applications commerciales pertinentes dans les domaines de l'optimisation, de la simulation, de la science des matériaux, etc.

Julia, un langage d'avenir ? Python, C/C++ et R doivent-ils le craindre ?

Avec une courbe de croissance rarement rencontrée chez un jeune langage de programmation, Julia est désormais l'un des langages de privilégiés pour la science des données, l'intelligence artificielle et les applications de modélisation et de simulation. Selon des sources proches de Julia Computing, les conceptions sophistiquées de l'entreprise repoussent les limites des outils de simulation traditionnels, ce qui rend d'autant plus cruciale une accélération significative des performances de simulation. Julia Computing a l'intention de mettre ces capacités à la disposition de la grande industrie dans un avenir proche.

À la manière de Rust pour la conception d'applications modernes et qui font une bonne utilisation de la mémoire, Julia est de plus en adopté dans la communauté, en particulier par la communauté scientifique. Sur 2020, il a enregistré une augmentation de 87 % de ses téléchargements. En comparaison à l’année 2019, c’est un gap haussier de 10 points de pourcentage. Alors, parviendra-t-il à remplacer C/C++ et Python dans la filière de la programmation et du calcul scientifique ? Pour l'instant, ces trois derniers continuent d'être largement utilisés et Python commence à rencontrer un grand succès dans l'enseignement, au détriment de Pascal.

Toutefois, il faut préciser que Julia est de plus en plus mis sur la balance avec Python. Le premier rejoint le second sur le plan de la simplicité. Cela dit, Julia a été pensé dès le début pour offrir des performances de loin supérieures à celles de Python. Sur cet axe, le langage est comparé avec C/C++ et au langage Rust de Mozilla. La toute première tâche dans tout processus d’analyse de données consiste à lire des données. Cela doit être fait avec célérité et efficacité afin de pouvoir se consacrer à la tâche de traitement des données. À ce stade, Julia semble avoir de meilleures performances que Python.

Par exemple, dans de nombreux secteurs et domaines, le format de fichier CSV est le format le plus utilisé pour le stockage et le partage des données tabulaires. Le chargement rapide et robuste des CSV est crucial, et il doit être bien adapté à une grande variété de tailles, de types et de formes de fichiers. Une étude parue au quatrième trimestre de l’année précédente illustre le fait que Julia est capable de lire les fichiers CSV dix à vingt fois plus vite que les langages Python et R. Attention toutefois, atteindre ces cimes peut requérir que l’utilisateur du langage possède l’expertise nécessaire pour effectuer des optimisations.

Un autre point qui mérite aussi d'être souligné est que Python est le second langage d'une bonne partie des développeurs Julia. L'on peut alors se poser plusieurs questions. Utilisent-ils les deux langages de façon complémentaire pour tirer le meilleur des deux mondes ? Peut-être que, sans Julia, Python disposerait d'un lecteur de fichiers CSV aussi efficace que celui de Julia ? Ou alors les fonctionnalités de métaprogrammation et de combinaison de bibliothèques ? En tout cas, depuis 2009, bon nombre de langages se sont développés et ont pu attirer plus d'utilisateurs que Julia, avec une communauté plus grande : Swift, Go, Kotlin, Rust, par exemple.

Dans le même temps, l'on ne sait pas comment Python, ou les autres langages avec lesquels Julia pourrait être en concurrence vont évoluer dans les prochaines années. Il serait donc précipité de dire que Julia, Python ou R dominera le domaine du calcul scientifique. En outre, les utilisateurs actuels de Julia précisent que peu de facteurs techniques les empêchent d'utiliser Julia autant qu'ils le voudraient. Ils sont plutôt limités par leur organisation, le peu de collègues qui ont entendu parler du langage, mais aussi par les ressources d'apprentissage disponibles.

Source : Julia Computing

Et vous ?

Quel est votre avis sur le sujet ?
Utilisez-vous Julia ? Quels sont les avantages que vous en tirez ?
Pensez-vous que Julia va réussir à s'imposer comme langage de choix pour le calcul scientifique ?

Voir aussi

Le langage de programmation Julia ne cesse de gagner en adoption au sein de la communauté scientifique : hausse de 87 % des téléchargements sur 2020 en raison de son rapport simplicité-performance

Julia, un langage d'avenir ? Quand certains l'estiment mal adapté à l'écriture de grandes bases de code, d'autres l'adoptent pour faciliter le développement et l'optimisation du code

Le langage de programmation Julia serait capable de lire les fichiers CSV dix à vingt fois plus vite que Python et R, selon une étude

Les raisons de l'adoption accélérée du langage Julia : un langage polyvalent, mais plus scientifique, supporte l'introspection et la métaprogrammation, selon Lee Phillips

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 12/03/2021 à 13:37
Citation Envoyé par smarties Voir le message
Pour Python, le langage est polyvalent, on peut faire des calucul scientifique, scripts, du web, ... de tout quoi et il est facile à utiliser. De plus il est beaucoup utilisé pour du ML donc je pense qu'il ne va pas être détrôné si facilement.
Pour tout ceux qui défendent Python, Python est très bien implémenté mais il a un gros défaut : sa lenteur.

Julia a la simplicité de Python avec la rapidité en plus.
Il a cependant encore l'inconvénient d'avoir encore moins de librairies que Python, mais il évolue vite et permet un binding facile de Python.

Pour moi Julia est l'avenir de Python mais il mettra sans doute plus de 10 ans à le dépasser.
1  0 
Avatar de
https://www.developpez.com
Le 12/03/2021 à 17:56
Citation Envoyé par Jeff_67 Voir le message
Pumas, framework payant
Encore heureux. C'est un "framework pour la simulation pharmaceutique". Je pense que les entreprises pharameutiques ont les moyens de payer leurs logiciels spécialisés
1  0 
Avatar de
https://www.developpez.com
Le 13/03/2021 à 13:28
Citation Envoyé par eric44000 Voir le message
Pour ce qui est de le vitesse, Julia se vante de lire un fichier CSV (format texte) 10 fois plus vite. C'est bien. Utiliser des fichiers binaires (NetCDF, GRIB...) serait beaucoup mieux !
C'est bien pour cela qu'il y a des packages prévus pour.
https://github.com/JuliaGeo/NetCDF.jl
https://github.com/weech/GRIB.jl
1  0 
Avatar de
https://www.developpez.com
Le 12/03/2021 à 12:54
Pumas, framework payant alors que la plupart des lib Julia sont gratuites. C'est d'avoir accès à des bibliothèques scientifiques gratuites qui fait l'intérêt du langage.
0  0 
Avatar de
https://www.developpez.com
Le 12/03/2021 à 13:43
Citation Envoyé par abriotde Voir le message
Pour tout ceux qui défendent Python, Python est très bien implémenté mais il a un gros défaut : sa lenteur.

Julia à la simplicité de Python avec la rapidité en plus.
Il a cependant encore l'inconvénient d'avoir encore moins de librairies que Python, mais il évolue vite et permet un binding facile de Python.

Pour moi Julia est l'avenir de Python mais il mettra sans doute plus de 10 ans à le dépasser.
C'est un peu plus compliqué que ça. Python fait appel à des backends compilés en C/C++/Fortran/etc... très performants.

Pour les codes simples, Python est généralement plus performant que Julia puisqu'il s'épargne l'étape de compilation.

Plus généralement, Julia devient intéressant par rapport à Python pour les codes dont le coût à la compilation est moindre par rapport au coût à l'exécution. Ça n'est pas le cas de tous les calculs scientifiques, loin de là.
0  0 
Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 12/03/2021 à 14:03
Citation Envoyé par Jeff_67 Voir le message
C'est un peu plus compliqué que ça. Python fait appel à des backends compilés en C/C++/Fortran/etc... très performants.

Pour les codes simples, Python est généralement plus performant que Julia puisqu'il s'épargne l'étape de compilation.

Plus généralement, Julia devient intéressant par rapport à Python pour les codes dont le coût à la compilation est moindre par rapport au coût à l'exécution. Ça n'est pas le cas de tous les calculs scientifiques, loin de là.
Mais la dernière version de Julia améliore ce point (avec LLVM je crois)
0  0 
Avatar de defZero
Membre extrêmement actif https://www.developpez.com
Le 14/03/2021 à 22:40
Pas vraiment non, le coût de la compilation en Julia est très élevé à cause de l'héritage et de l'inférence de type qui font que chaque fonction est compilée n fois selon les différents types que peuvent prendre les arguments en entrée.
@Jeff_67
... ou du multi-dispatch dynamique plutôt, non ?
0  0 
Avatar de
https://www.developpez.com
Le 15/03/2021 à 9:24
Citation Envoyé par Jeff_67 Voir le message
le coût de la compilation en Julia est très élevé à cause de l'héritage
Il y a de l'héritage en Julia ?

Citation Envoyé par Jeff_67 Voir le message
et de l'inférence de type qui font que chaque fonction est compilée n fois selon les différents types que peuvent prendre les arguments en entrée.
Je ne connais le code source du compilateur Julia mais ça m'étonnerait qu'il compile explicitement pour tous les types concrets. C'est justement l'intérêt des types polymorphics par rapport aux generics, si j'ai bien compris.
0  0 
Avatar de smarties
Expert confirmé https://www.developpez.com
Le 12/03/2021 à 10:22
Je fais du Delphi en entreprise donc du Pascal et je ne suis pas fan, trop verbeux, une documentation pas terrible à mon goût
Pour Python, le langage est polyvalent, on peut faire des calucul scientifique, scripts, du web, ... de tout quoi et il est facile à utiliser. De plus il est beaucoup utilisé pour du ML donc je pense qu'il ne va pas être détrôné si facilement
Pour Julia, je n'ai pas essayé.
0  1 
Avatar de
https://www.developpez.com
Le 12/03/2021 à 16:45
Citation Envoyé par abriotde Voir le message
Mais la dernière version de Julia améliore ce point (avec LLVM je crois)
Pas vraiment non, le coût de la compilation en Julia est très élevé à cause de l'héritage et de l'inférence de type qui font que chaque fonction est compilée n fois selon les différents types que peuvent prendre les arguments en entrée.
0  1