Offres de stage :
- Informatique musicale (Master II ou post doctorat)
- Program transformations for code optimization (Stage master recherche)
- Développement d'une API Python pour le framework de transformations de programmes PIPS(Stage master recherche)
- Tiling paramètrique pour optimisation dynamique de code(Stage master recherche)
- Analyse sémantique des tableaux, des structures et des pointeurs(Stage master recherche)
- Analyse statique des paramètres fonctionnels et des pointeurs vers des fonctions(Stage master recherche)
- Développement d'une interface multifenêtre en Gtk/Python pour le framework de transformations de programmes PIPS(Stage master recherche)
- Détection des variables non initialisées d'un programme C (Stage master recherche)
- Détection des débordements de tableaux d'un programme C (Stage master recherche)
- Estimation des temps d'exécution des instructions d'un programme C (Stage master recherche)
Informations générales pour tous les stages :
1. Indemnité de stage :
L'estimation est la suivante :
- aucune indemnité, si le stage dure moins de 2 mois ;
- environ 400 euros entre 2 et 6 mois.
2. Lieu :
Centre de recherche en informatique - CRI
MINES ParisTech
35 rue Saint-Honoré
77305 Fontainebleau CedexUn bus privé gratuit est disponible quotidiennement depuis Paris, sauf durant les vacances scolaires, pendant lesquelles les transports en commun RATP doivent être utilisés.
Description :
| Stage « Informatique musicale ASTREE » : |
1. Sujet :
Participer au développement formel et/ou logiciel d’un environnement informatique adapté à la production et la préservation d’œuvres de musique contemporaine.
2. Projet :
Les oeuvres de musique contemporaine sont le plus souvent le résultat d’une collaboration proche entre compositeurs et informaticiens. Ces derniers s’appuient sur une large panoplie de techniques et d’outils numériques pour faciliter une expression musicale riche et, de plus en plus, interactive. Le langage Faust a été défini au sein du laboratoire Grame pour permettre une description fonctionnelle, globale et adaptée de ces processus temps-réel. Le projet ASTREE a pour objectif de faire de Faust le cœur d’un environnement permettant de décrire les oeuvres de musique contemporaine et de les préserver dans le futur.Le travail proposé s’inscrit dans le cadre du projet ASTREE, qui, outre le Centre de recherche en informatique de MINES ParisTech (anciennement, Ecole des mines de Paris), regroupe les laboratoires Grame (Lyon), Ircam (Paris) et CIEREC (St-Etienne). ASTREE est financé par l’Agence nationale de la recherche (ANR).
3. Descriptif :
On recherche un stagiaire, de niveau Master 2 Recherche à post-doctorat, pour une durée de quelques mois, avec prolongation possible en thèse le cas échéant, pour le projet ASTREE décrit ci-dessus. Plus précisément, il s’agira de s’inscrire dans l’une ou plusieurs des activités suivantes :
- participer à la conception de l’environnement logiciel ASTREE ;
- élaborer une description formelle complète du langage Faust et envisager des extensions de ce langage (types, bases de temps, ...) ;
- concevoir et implémenter des méthodes d’exécution efficace des processus logiciels spécifiés en Faust (optimisation de code, génération efficace de code pour architectures parallèles multi-cœurs ou GPU, ...).
Le sujet du stage pourra toutefois être modulé en fonction des centres d’intérêt et des compétences du stagiaire.
4. Exigences :
Une bonne connaissance des fondements théoriques des langages de programmation, en particulier fonctionnelle, et/ou des techniques de compilation de code avec une pratique de la programmation orientée-objet type C++ est requise, en fonction du profil exact du stage.Il serait préférable que le candidat ait une appétence pour le monde de la musique et de son traitement informatique temps-réel.
5. Personne à contacter
Envoyer un CV et une lettre de motivation à Pierre Jouvelot (CRI, MINES ParisTech).
E-mail: pierre.jouvelot--at--mines-paristech.fr
Web: http://www.cri.mines-paristech.fr/~pj
| Stage « Program transformations for code optimization » : |
Code optimizations require a large set of elementary prgoram transformations.
The objective is to implement some of these elementary transformations, such as loop fusion, loop coalescing, induction variable substitution, scalarization, loop peeling, reduction parallelization... in the PIPS automatic code analysis and transformation framework.
PIPS is programmed in C. It already contains lots of program analyses and transformation and is designed to be extensile. This makes adding new transformation pretty easy, once the framework is understood.This internship requires a good C programmer, with an interest in computer architecture and code optimization, ready to interact with other PIPS developers.
Personne à contacter :
Envoyer un CV et une lettre de motivation à François Irigoin (CRI, MINES ParisTech).
E-mail: irigoin--at--mines-paristech.fr
| Stage « Développement d'une API Python pour le framework de transformations de programmes PIPS» : |
PIPS est un framework de compilation source-a-source qui intègre de nombreuses transformations de programmes source-a-source ainsi que des analyses statiques et dynamiques et qui permet d'en développer rapidement de nouvelles.
L'utilisation de PIPS pour résoudre un problème d'optimisation de code lié à une cible complexe comme un multiprocesseur sur circuit (MPSoC), un GPU ou même un multicore nécessite la combinaison de nombreuses transformations, voire le parcours d'un arbre de transformations. Actuellement, une telle optimisation nécessite un développement interne a PIPS en C ou bien, pour les cas les plus simples, l'écriture d'un script en tpips, le langage d'interface ligne de PIPS.
Pour avoir plus de souplesse, des premiers essais ont été effectués afin de combiner Python comme langage de coordination et PIPS comme moteur d'exécution. Ces premiers essais demandent à être rationalisés et étendus afin d'augmenter le nombre des objets PIPS qui sont visibles depuis Python et la finesse du contrôle des actions réalisées par PIPS.
Ce stage peut éventuellement se prolonger par une thèse dans le domaine de la compilation.
Personne à contacter :
Envoyer un CV et une lettre de motivation à François Irigoin (CRI, MINES ParisTech).
E-mail: irigoin--at--mines-paristech.fr
| Stage « Tiling paramétrique pour optimisation dynamique de code» : |
La multiplicité et la complexification des architectures matérielles rendent plus necessaires que jamais l'utilisation du "tiling" pour contrôler la granularite du parallélisme et la consommation de mémoire locale ou le "footprint" des données dans les caches: multicore, GPU, multiprocesseur heterogene, accelerateur FPGA,...
Idéalement, on souhaite décider de la taille des "tuiles" statiquement, a la compilation. En pratique, des informations disponibles à l'exécution doivent être utilisées pour affiner ces tailles de tuile.L'objectif du stage est d'étudier et de comparer au moins deux approches permettant de résoudre ce problème: la génération de nombreuses variantes du code d'une part, et la génération d'un code paramétrique d'autre part. Dans le premier cas, la bibliothèque de run-time va sélectionner la meilleure variante. Dans le deuxième cas, elle devra ajuster les paramètres. Une de ces approches au moins sera implantée dans le framework de compilation source-a-source PIPS afin de pouvoir faire quelques expériences.
Ce stage peut éventuellement se prolonger par une thèse dans le domaine de la compilation.
Personne à contacter :
Envoyer un CV et une lettre de motivation à François Irigoin (CRI, MINES ParisTech).
E-mail: irigoin--at--mines-paristech.fr
| Stage « Analyse semantique des tableaux, des structures et des pointeurs» : |
L'utilisation de structures et de pointeurs est traditionnelle dans de nombreux domaines, mais encore limitée pour les applications nécessitant de grandes puissances de calcul comme le calcul scientifique ou le multimédia. Cette utilisation nécessite des extensions des analyses statiques de tels codes que la multiplicite et la complexification des architectures matérielles les rendent plus nécessaires que jamais: multicore, GPU, multiprocesseur hétérogène, accélérateur FPGA,...
L'objectif du stage est d'abord de faire un tour rapide des analyses existantes dans PIPS et de proposer une ou plusieurs solutions pour effectuer les extensions nécessaires afin de couvrir les accès à des éléments de tableaux constants, les champs des structures et, si possible, les pointeurs. Ensuite, une ou plusieurs de ces extensions seront implantées en C dans le framework de compilation source-a-source PIPS.
Ce stage peut éventuellement se prolonger par une thèse dans le domaine de la compilation.Personne à contacter :
Envoyer un CV et une lettre de motivation à François Irigoin (CRI, MINES ParisTech).
E-mail: irigoin--at--mines-paristech.fr
| Stage « Analyse statique des paramètres fonctionnels et des pointeurs vers des fonctions» : |
L'utilisation de paramètres fonctionnels et de pointeurs vers des fonctions permet d'écrire des codes élégants et puissants, mais elle rend les analyses statiques de tels codes plus délicates alors que la multiplicité et la complexification des architectures matérielles les rendent plus nécessaires que jamais: multicore, GPU, multiprocesseur hétérogène, accélérateur FPGA,...
L'objectif du stage est d'abord de faire un tour rapide de la bibliographie et de proposer plusieurs solutions plus ou moins précises. Ensuite, une ou plusieurs de ces solutions seront implantées en C dans le framework de compilation source-a-source PIPS.
Ce stage peut éventuellement se prolonger par une thèse dans le domaine de la compilation.Personne à contacter :
Envoyer un CV et une lettre de motivation à François Irigoin (CRI, MINES ParisTech).
E-mail: irigoin--at--mines-paristech.fr
| Stage « Développement d'une interface multifenêtre en Gtk/Python pour le framework de transformations de programmes PIPS» : |
PIPS est un framework de compilation source-a-source qui intègre de très nombreuses transformations de programmes source-a-source ainsi que des analyses statiques et dynamiques et qui permet d'en developper rapidement de nouvelles. Ces transformations et analyses sont aussi parametrees. L'utilisateur a donc de nombreux choix a effectuer et a besoin de comparer les différents résultats obtenus.
multifenetres
PIPS est développé depuis 1988 et a donc deja disposé dans le passé de plusieurs interfaces pour lesquelles les fonctionalites nécessaires ont deja étè étudiées et pour lesquelles des menus sont générés automatiquement à partir de la documentation de PIPS.L'objectif du stage est de proposer et de développer une nouvelle interface utilisateur multifenêtre fondée sur Gtk et Python. Cette interface profitera de l'API Python de PIPS qui est en cours de développement pour proposer de nouvelles fonctionalites, en particulier l'affichage de graphes.
Ce stage peut éventuellement se prolonger par une thèse dans le domaine de la compilation.
Personne à contacter :
Envoyer un CV et une lettre de motivation à François Irigoin (CRI, MINES ParisTech).
E-mail: irigoin--at--mines-paristech.fr
| Stage « Détection des variables non initialisées d'un programme C » : |
La rétro-ingénierie, la maintenance et l'optimisation de codes nécessitent l'application de nombreuses analyses statiques ou dynamiques qui permettent de mieux comprendre, vérifier, améliorer et optimiser les instructions.
Parmi ces analyses, la détection des variables non initialisées avant leur utilisation permet d'éviter des erreurs lors de l'exécution du programme. Elle permet également de valider les analyses ultérieures portant sur les accès aux variables du programme, en lecture et écriture, telles que le calcul des dépendances.
La phase d'analyse dynamique de détection des variables non initialisées avant leur utilisation est déjà intégrée dans notre framework de compilation source-a-source PIPS pour des programmes en Fortran.L'objectif de ce stage est d'implanter cette analyse pour les programmes C.
Personne à contacter :
Envoyer un CV et une lettre de motivation à François Irigoin (CRI, MINES ParisTech).
E-mail: irigoin--at--mines-paristech.fr
| Stage « Détection des débordements de tableaux d'un programme C » : |
La rétro-ingénierie et la maintenance de codes nécessitent l'application de nombreuses analyses statiques ou dynamiques qui permettent de mieux comprendre et de vérifier les programmes.
Parmi ces analyses, la détection des débordements de tableaux est essentielle. Elle permet d'éviter des erreurs lors de l'exécution du programme, mais aussi de valider les résultats des analyses qui caractérisent l'ensemble des éléments de tableaux référencés par des instructions. La phase d'analyse dynamique de détection des débordements de tableaux est déjà intégrée dans notre framework de compilation source-a-source PIPS pour des programmes en Fortran.L'objectif de ce stage est d'implanter cette analyse pour les programmes C.
Personne à contacter :
Envoyer un CV et une lettre de motivation à François Irigoin (CRI, MINES ParisTech).
E-mail: irigoin--at--mines-paristech.fr
| Stage « Estimation des temps d'exécution des instructions d'un programme C » : |
PIPS est un framework de compilation source-a-source qui intègre de nombreuses transformations de programmes source-a-source ainsi que des analyses statiques et dynamiques et qui permet d'en développer
rapidement de nouvelles.
L'une des premières étapes de l'optimisation de programme consiste à chercher les parties de code qui sont susceptibles de profiter au mieux d'une optimisation. Les parties de code les plus gourmandes en temps
d'exécution sont de bons candidats. PIPS intègre déjà une phase d'analyse simple du calcul de la complexité des instructions d'un programme.L'objectif de ce stage est de raffiner cette analyse pour les programmes C.
Ce stage peut éventuellement se prolonger par une thèse dans le domaine de la compilation.
Personne à contacter :
Envoyer un CV et une lettre de motivation à François Irigoin (CRI, MINES ParisTech).
E-mail: irigoin--at--mines-paristech.fr


