Java ? C++ ? Python ? C ? Assembleur ?
Version imprimable
Java ? C++ ? Python ? C ? Assembleur ?
Quelques éléments :
- A priori, C semble être le langage le plus efficace.
- Java et Python sont moins rapides, mais plus faciles à programmer et à maintenir.
- Notre langage étant objet, il peut être compliqué de le coder en C car il faudra ré-inventer les structures
- R est en partie codé en C. Choisir C permettrait de ré-utiliser du code provenant de R (mais le souhaite-t-on vraiment ?)
Pour le C++ :
* compatiblité avec le C (utilisation des libs C, dont R)
* possibilité de faire du langage haut niveau sans coût à l'exécution
Vous devriez peut être contacter Joel Falcou (labo de recherche en info, univ paris sud), qui travaille pas mal sur la méta programmation en C++ et le parallélisme
EDIT : en fait, je viens de réaliser que l'un des membres de votre équipe (Pierre Courtieu) a bossé cette année au LRI, il connait peut être Joel Falcou.
Je suis moi-même un ancien du LRI. J'ai contacté Marie Claude Gaudel et Daniel Etiemble (architectures parallèles) pour leur présenter le projet. Affaire à suivre.
Joel Falcou est visiblement un super expert en parallélisme et en calcul hautes performances. Je viens de le rencontrer aujourd'hui, tout me laisse penser que son aide peut nous être extrêmement précieuse. Et surtout, il dispose déjà de tellement d'outils que le projet va peut être aller bien plus vite que prévu.
OK, je suis un peu dithyrambique... Mais sa présentation était vraiment impressionnante.
Comme l'a signalé notre (anonyme) visiteur Caramogar, il travaille en C qu'il inclut dans du C++ (mais il fait surtout du C). Personnellement, j'étais plutôt favorable a Python. Mais traduire du R++ en Python pour le retraduire en C/C++ semble être un peu une usine à gaz...
Donc, a ma propre surprise, je penche maintenant plutôt pour le C/C++
En parlant de Joel, ça me fait penser à une chose : il travaille églament sur un "compilateur" permettant de transformer du code MatLab vers du C++ (pour les performances). Ca pourrait être une approche pour R++ ?
Cela permettrait de bénéficer des performances du C++ (en particulier le fait d'optimiser certaines parties du code à la compilation sans surcoût à l'exécution).