Il est en quelle année et est-ce qu'il a des notions de compilation? S'il est du même calibre que son père ça pourrait être trippant ;-).
Dans la lignée de la compilation JIT persistente, on pourrait tenter de déterminer des métriques dynamiques et statiques pour caractériser le comportement de programmes afin de leur assigner une "classe" d'application. Je suggère de travailler avec JavaScript ;-).
On pourrait établir des classes d'applications sur base de nos intuitions (numériques, symboliques, etc.) et valider ou invalider empiriquement que nos intuitions sont valides et prédictibles à partir de certaines métriques. Ça va nous prendre un ensemble d'entraînement et un ensemble de validation distinct, on pourrait utiliser des benchmarks différents ou des traces d'exécution différentes sur les mêmes benchmarks. On pourrait simplifier le problème en ayant un nombre fini et préétabli de classes. Une deuxième simplification est d'écrire les fonctions de prédictions à la main. Une troisième simplification est de ne pas tenter d'exploiter ces classes pour la performance (tout de suite). On se limiterait à déterminer empiriquement la proportion de programmes qui sont classés "correctement" comparé à l'intuition d'un chercheur qui devrait classer manuellement l'application. Si nos classes d'applications sont suffisamment proches de ce qui est communément admis, on ne devrait pas avoir à se justifier trop trop.
On gagne si une majorité forte de benchmarks sont classés correctement.
Les zones d'incertitudes et de contributions potentielles me semblent être les suivantes: 1. Quels sont les métriques intéressantes (qui sont suffisamment corrélées avec les classes d'applications)? 2. Peut-on prévoir de manière statique la classe? Sinon, combien de temps d'exécution est nécessaire avant d'obtenir une certitude suffisante sur la classe d'appartenance? 3. Si on ne peut pas prévoir les classes de manière satisfaisante, quelles intuitions non-triviales ne fonctionnent pas et pourquoi? 4. Comment visualiser ces différentes métriques? (Pour notre usage d'exploration ou même pour éventuellement les présenter à l'utilisateur)
Photon pourrait nous donner un coup de main en permettant l'instrumentation dynamique d'applications web. Ça présuppose que d'ici à ce que ce soit nécessaire, Photon aura été intégré à un navigateur web. On pourra s'en servir pour essayer différentes métriques dynamiques et statiques sur des applications web et en tirer des benchmarks. Dépendamment de ma charge de cours à l'hiver, ça pourrait aller au début de l'été avant que l'intégration soit faite.
Je pourrais travailler avec lui en m'occupant d'une grosse partie de l'infrastructure d'instrumentation, en particulier dynamique, et il pourra expérimenter différentes fonctions de prédictions à partir du code source et des traces d'exécution. On pourrait avoir une troisième personne si les analyses statiques sont suffisamment complexes. On pourra brainstormer en groupe les classes d'applications et les métriques intéressantes.
Erick
Le 12-12-17 14:08 , Marc Feeley a écrit :
Bonjour. Cet après-midi j'ai eu la visite d'Emmanuel Bengio, un étudiant de mon cours de concepts des langages de programmation (et le fils de Y. Bengio). Il s'intéresse à faire un projet en compilation l'été prochain dans notre labo. Il s'intéresse aussi à l'apprentissage machine. Donc je pense lui assigner un projet qui combine les deux intérêts. Ça me rappelle que dans ma dernière demande de subvention j'avais l'intention d'explorer la compilation JIT persistente, où il est important de faire un apprentissage du contexte d'utilisation du programme et du compilateur. Mais tel quel ça pourrait être un sujet de doctorat en soit, donc il faut trouver une simplification pour que l'étudiant puisse compléter un travail intéressant en 4 mois.
Si vous avez des idées, n'hésitez-pas à m'en faire part.
Donc, à date, les 3 étudiants suivants sont intéressés à faire un projet d'été :
- Alexandre St-Louis Fortier (Gambit?)
- Emmanuel Bengio (compilation + apprentissage machine?)
- Alexandre Mathon Roy
Marc
Dlteam-list mailing list Dlteam-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/dlteam-list