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

From LRDE

(Proofread)
(Fix line breaks)
Line 12: Line 12:
   
 
Par ailleurs, la recherche applicative s'inscrit dans un axe transverse dit de « généricité et performance ».
 
Par ailleurs, la recherche applicative s'inscrit dans un axe transverse dit de « généricité et performance ».
|General presentation of the field=Ce stage s'inscrit dans l'axe « généricité et performance » du
+
|General presentation of the field=Ce stage s'inscrit dans l'axe « généricité et performance » du laboratoire.
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)).
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 construites 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#).
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
 
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.
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.
 
   
 
|Prerequisites=Mots-clefs : calcul scientifique, Big Data, C++, programmation parallèle.
 
|Prerequisites=Mots-clefs : calcul scientifique, Big Data, C++, programmation parallèle.
|Objectives=Les pistes de travail proposées incluent notamment les idées
+
|Objectives=Les pistes de travail proposées incluent notamment les idées suivantes :
suivantes :
 
   
 
* la conception et l'ajout de structures de données destinées à de gros volumes de données ;
 
* la conception et l'ajout de structures de données destinées à de gros volumes de données ;
Line 57: Line 30:
 
* 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.
 
* 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.
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.
 
 
|Contact=roland.levillain-at-lrde.epita.fr (Ne pas oublier de mentioner la référence du stage figurant au début de cette annonce.)
 
|Contact=roland.levillain-at-lrde.epita.fr (Ne pas oublier de mentioner la référence du stage figurant au début de cette annonce.)
 
|Compensation=800 € brut/mois
 
|Compensation=800 € brut/mois

Revision as of 18:48, 18 February 2014

Étude de problématiques de performance en traitement d'images dans un contexte générique
Reference id

M2 RL 2014 problematiques-performance

Dates

5 - 6 mois en 2014

Research field

Image Processing

Related project

Olena

Advisor

Roland Levillain

General presentation of the field

Ce stage 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 construites 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.

Prerequisites

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

Objectives

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.

Benefit for the candidate
References
Place LRDE: How to get to us
Compensation

800 € brut/mois

Future work opportunities

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

Contact

(Ne pas oublier de mentioner la référence du stage figurant au début de cette annonce.) roland.levillain-at-lrde.epita.fr (Ne pas oublier de mentioner la référence du stage figurant au début de cette annonce.)