Difference between revisions of "Jobs/M2 RL 2014 problematiques-performance"

From LRDE

(Update the offer.)
Line 1: Line 1:
<big>'''Étude de problématiques de performance en traitement d'images dans un contexte générique'''</big>
+
= Proposition de stage de Master 2 Recherche : Étude de problématiques de performance en traitement d'images dans un contexte générique =
  +
  +
__NOTOC__
  +
  +
* Référence du stage : '''M2_RL_2014_problematiques-performance'''
   
 
=== Présentation du laboratoire ===
 
=== Présentation du laboratoire ===
   
Fondé en 1998, le LRDE est un laboratoire sous tutelle de l'[http://www.epita.fr École Pour l'Informatique et les Techniques Avancées (EPITA)].
+
Fondé en 1998, le [https://www.lrde.epita.fr Laboratoire de Recherche et Développement de l'EPITA (LRDE)] est un laboratoire sous tutelle de l'[http://www.epita.fr École Pour l'Informatique et les Techniques Avancées (EPITA)]. À l'instar du laboratoire, l'équipe est jeune et dynamique ; fin 2013, elle est composée d'une dizaine d'enseignant-chercheurs, d'une administratrice, de 5 doctorants et d'une dizaine d'étudiants-chercheurs de l'école. Les travaux de recherche fondamentale effectués au LRDE s'articulent autour de deux thématiques :
À l'instar du laboratoire, l'équipe est jeune et dynamique ; fin 2012, elle est composée d'une dizaine d'enseignant-chercheurs, d'une administratrice, de cinq doctorants et d'une
 
douzaine d'étudiants-chercheurs de l'école. Les travaux de recherche fondamentale effectués au LRDE s'articulent autour de deux thématiques :
 
   
 
* la reconnaissance des formes ;
 
* la reconnaissance des formes ;
 
* les automates et la vérification formelle.
 
* les automates et la vérification formelle.
   
Par ailleurs, la recherche applicative s'inscrit dans un axe
+
Par ailleurs, la recherche applicative s'inscrit dans un axe transverse dit de « généricité et performance ».
transverse dit de « généricité et performance ».
 
   
 
=== Description du stage ===
 
=== Description du stage ===
   
Ce stage s'inscrit dans l'axe « généricité et performance » du
+
Ce stage se s'inscrit dans l'axe « généricité et performance » du
 
laboratoire.
 
laboratoire.
   
Line 26: Line 27:
   
 
Par ailleurs, de plus en plus de bibliothèques logicielles pour le
 
Par ailleurs, de plus en plus de bibliothèques logicielles pour le
traitement d'images sont construites d'après une modélisation avancée
+
traitement d'images sont construite d'après une modélisation avancée
mettant en œoeuvre des « abstractions » représentant les différentes
+
mettant en œuvre des ''abstractions'' représentant les différentes
 
notions du domaine (image, point, valeur, voisinage, etc.). Cette
 
notions du domaine (image, point, valeur, voisinage, etc.). Cette
 
approche permet une écriture « haut niveau » d'algorithmes de
 
approche permet une écriture « haut niveau » d'algorithmes de
 
traitement d'images, réutilisables (non limités à un unique cas
 
traitement d'images, réutilisables (non limités à un unique cas
 
d'utilisation) et souvent plus simples. Les cadres logiciels
 
d'utilisation) et souvent plus simples. Les cadres logiciels
(« software frameworks ») entrant dans cette catégorie s'appuient le
+
(''software frameworks'') entrant dans cette catégorie s'appuient le
 
plus souvent sur la programmation orientée objet ou la programmation
 
plus souvent sur la programmation orientée objet ou la programmation
 
générique (templates du C++, generics de Java ou C#).
 
générique (templates du C++, generics de Java ou C#).
Line 39: Line 40:
 
cherchent à répondre aux deux préoccupation précédentes (être
 
cherchent à répondre aux deux préoccupation précédentes (être
 
performant tout en fournissant une écriture générale via des
 
performant tout en fournissant une écriture générale via des
abstractions). Le projet [[Olena]], développé depuis
+
abstractions). Le projet [[Olena]], développé depuis une quinzaine
plus de dix ans au LRDE, propose une bibliothèque de traitement
+
d'années au LRDE, propose une bibliothèque de traitement
 
d'images générique en C++, Milena, permettant l'écriture d'algorithmes
 
d'images générique en C++, Milena, permettant l'écriture d'algorithmes
 
réutilisables et performants. Elle s'appuie à la fois sur la
 
réutilisables et performants. Elle s'appuie à la fois sur la
Line 52: Line 53:
 
suivantes :
 
suivantes :
   
* la conception et l'ajout de structures de données destinées à de
+
* la conception et l'ajout de structures de données destinées à de gros volumes de données ;
  +
* l'utilisation d'instructions de vectorisation (SIMD) pour accélérer les calculs ;
gros volumes de données ;
 
* l'utilisation d'instructions de vectorisation (SIMD) pour
+
* l'utilisation de programmation parallèle (multicœur) pour répartir les calculs.
  +
* la réalisation d'algorithmes (ou de familles d'algorithmes) en utilisant une approche déclarative, permettant de découpler leur définition et leur implémentation bas-niveau dans un contexte matériel donné ;
accélérer les calculs ;
 
  +
* l'utilisation de la programmation générique (par exemple, des canevas d'algorithmes) et/ou la programmation générative (génération et assemblage de code basés sur des modèles) ;
* l'utilisation de programmation parallèle (multicœur) pour
 
  +
* l'introduction d'optimisations dirigées par les profils (Profile-Guided Optimizations), tirant parti de données réelles pour améliorer un code via des technique d'apprentissage introduites dans la compilation.
répartir les calculs.
 
   
 
Dans tous les cas, les travaux de recherche devront être menés en
 
Dans tous les cas, les travaux de recherche devront être menés en
Line 74: Line 75:
 
Des connaissances en traitement d'images sont nécessaires à la
 
Des connaissances en traitement d'images sont nécessaires à la
 
réalisation de ce stage. Le candidat devra être familiarisé avec le
 
réalisation de ce stage. Le candidat devra être familiarisé avec le
langage C++ ou avoir au moins un bon niveau de connaissance du langage
+
langage C++ ou avoir un moins un bon niveau de connaissance du langage
 
C. Le travail à effectuer devra s'intégrer dans la plate-forme
 
C. Le travail à effectuer devra s'intégrer dans la plate-forme
 
logicielle libre de traitement d'images du LRDE,
 
logicielle libre de traitement d'images du LRDE,
Line 80: Line 81:
   
 
Des connaissances en modélisation objet, programmation générique,
 
Des connaissances en modélisation objet, programmation générique,
vectorisation ou en programmation parallèle / multicœcoeur seraient
+
vectorisation ou en programmation parallèle ou multicœur seraient
  +
bénéfiques.
appréciables.
 
   
 
=== Débouchés ===
 
=== Débouchés ===
Line 91: Line 92:
   
 
* Personnes à contacter :
 
* Personnes à contacter :
** <tt>&lt;roland.levillain-at-lrde.epita.fr&gt;</tt>
+
** Roland Levillain &lt;roland.levillain-at-lrde.epita.fr&gt;<br />(Ne pas oublier de mentioner la référence du stage figurant au début de cette annonce.)
* [[Contact|Lieu du stage]] :<br />
+
* [[Contact|Lieu du stage]] : Laboratoire de Recherche et Développement de l'EPITA (LRDE)<br />18, rue Pasteur<br />94270 Le Kremlin-Bicêtre<br />(Porte d'Italie)
Laboratoire de Recherche et Développement de l'EPITA (LRDE)<br />
 
18, rue Pasteur<br />
 
94270 Le Kremlin-Bicêtre<br />
 
(Porte d'Italie)
 
 
* Rémunération : environ 800 &euro; brut/mois
 
* Rémunération : environ 800 &euro; brut/mois
   
Annonce diffusée à partir du 07/12/2012.
 
   
 
Annonce diffusée à partir du 13/11/2013.
—roland - 07 Dec 2012
 

Revision as of 16:36, 13 November 2013

Proposition de stage de Master 2 Recherche : Étude de problématiques de performance en traitement d'images dans un contexte générique

  • Référence du stage : M2_RL_2014_problematiques-performance

Présentation du laboratoire

Fondé en 1998, le Laboratoire de Recherche et Développement de l'EPITA (LRDE) est un laboratoire sous tutelle de l'École Pour l'Informatique et les Techniques Avancées (EPITA). À l'instar du laboratoire, l'équipe est jeune et dynamique ; fin 2013, elle est composée d'une dizaine d'enseignant-chercheurs, d'une administratrice, de 5 doctorants et d'une dizaine d'étudiants-chercheurs de l'école. Les travaux de recherche fondamentale effectués au LRDE s'articulent autour de deux thématiques :

  • la reconnaissance des formes ;
  • les automates et la vérification formelle.

Par ailleurs, la recherche applicative s'inscrit dans un axe transverse dit de « généricité et performance ».

Description du stage

Ce stage se s'inscrit dans l'axe « généricité et performance » du laboratoire.

On peut constater d'une part que de nombreux outils logiciels pour le traitement d'image sont conçus en prenant en compte des problématiques de performance relatives aux données (images ou vidéos volumineuses ou nombreuses), au contexte (contraintes de temps réel, besoins d'obtenir une réponse dans un temps « raisonnable ») ou encore liée au matériel (puissance de calcul ou capacité mémoire limitée(s)).

Par ailleurs, de plus en plus de bibliothèques logicielles pour le traitement d'images sont construite d'après une modélisation avancée mettant en œuvre des abstractions représentant les différentes notions du domaine (image, point, valeur, voisinage, etc.). Cette approche permet une écriture « haut niveau » d'algorithmes de traitement d'images, réutilisables (non limités à un unique cas d'utilisation) et souvent plus simples. Les cadres logiciels (software frameworks) entrant dans cette catégorie s'appuient le plus souvent sur la programmation orientée objet ou la programmation générique (templates du C++, generics de Java ou C#).

Il est cependant beaucoup plus rare d'observer des outils qui cherchent à répondre aux deux préoccupation précédentes (être performant tout en fournissant une écriture générale via des abstractions). Le projet Olena, développé depuis une quinzaine d'années au LRDE, propose une bibliothèque de traitement d'images générique en C++, Milena, permettant l'écriture d'algorithmes réutilisables et performants. Elle s'appuie à la fois sur la programmation générique et la programmation orientée objet. Le stage proposé a pour objet l'exploration de pistes pour étendre les capacités de Milena dans le domaine du calcul performant (notamment dans le contexte des « Big Data »), tout en préservant ses caractéristiques de généricité et d'abstraction actuelles.

Les pistes de travail proposées incluent notamment les idées suivantes :

  • la conception et l'ajout de structures de données destinées à de gros volumes de données ;
  • l'utilisation d'instructions de vectorisation (SIMD) pour accélérer les calculs ;
  • l'utilisation de programmation parallèle (multicœur) pour répartir les calculs.
  • la réalisation d'algorithmes (ou de familles d'algorithmes) en utilisant une approche déclarative, permettant de découpler leur définition et leur implémentation bas-niveau dans un contexte matériel donné ;
  • l'utilisation de la programmation générique (par exemple, des canevas d'algorithmes) et/ou la programmation générative (génération et assemblage de code basés sur des modèles) ;
  • l'introduction d'optimisations dirigées par les profils (Profile-Guided Optimizations), tirant parti de données réelles pour améliorer un code via des technique d'apprentissage introduites dans la compilation.

Dans tous les cas, les travaux de recherche devront être menés en gardant à l'esprit une intention de réutilisabilité / généricité (même partielle) des solutions proposées, en s'appuyant par exemple sur un raffinement (lifting) incrémental d'une première proposition. À terme, l'objectif est en effet de poser les premières briques d'une formalisation d'un ensemble de propriétés et de types de données permettant de généraliser les améliorations de performance mentionnées ci-avant.

Mots-clefs : calcul scientifique, Big Data, C++, programmation parallèle.

Pré-requis

Des connaissances en traitement d'images sont nécessaires à la réalisation de ce stage. Le candidat devra être familiarisé avec le langage C++ ou avoir un moins un bon niveau de connaissance du langage C. Le travail à effectuer devra s'intégrer dans la plate-forme logicielle libre de traitement d'images du LRDE, Olena, écrite en C++.

Des connaissances en modélisation objet, programmation générique, vectorisation ou en programmation parallèle ou multicœur seraient bénéfiques.

Débouchés

Si le déroulement du stage est satisfaisant, nous souhaiterions qu'il soit suivi d'une thèse de doctorat.

Informations pratiques

  • Personnes à contacter :
    • Roland Levillain <roland.levillain-at-lrde.epita.fr>
      (Ne pas oublier de mentioner la référence du stage figurant au début de cette annonce.)
  • Lieu du stage : Laboratoire de Recherche et Développement de l'EPITA (LRDE)
    18, rue Pasteur
    94270 Le Kremlin-Bicêtre
    (Porte d'Italie)
  • Rémunération : environ 800 € brut/mois


Annonce diffusée à partir du 13/11/2013.