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

From LRDE

Line 1: Line 1:
 
{{Job
 
{{Job
 
|Reference id=M2 RL 2014 problematiques-performance
 
|Reference id=M2 RL 2014 problematiques-performance
|Title=Étude de problématiques de performance en traitement d'images dans un contexte générique
+
|Title=Study of problems related to performance in the field of image analysis in a generic context
|Dates=5 - 6 mois en 2014
+
|Dates=5 - 6 months in 2014
 
|Research field=Image Processing
 
|Research field=Image Processing
 
|Related project=Olena
 
|Related project=Olena
 
|Advisor=Roland Levillain
 
|Advisor=Roland Levillain
  +
|Context=
|Context=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 :
 
   
  +
|General presentation of the field=This internship belongs to the lab's research axis "genericity and perfomance".
* la reconnaissance des formes ;
 
  +
Many software tools for image processing are designed taking into account the performance issues related to data processing (many images or videos or very heavy ones), to the context (real-time constraints, the need to obtain a response within a "reasonable" time) or related to the material (limited processing power or memory capacity).
* les automates et la vérification formelle.
 
   
  +
In addition to this, more and more software libraries for image processing are built according to advanced modeling implementing "abstractions" that represent the different concepts of the domain (image, point, value, neighborhood, etc. ). This approach allows writing "high level" algorithms for image processing which are reusable (not restricted to a single use case) and often simpler. Software frameworks belonging to this category are mostly based on object-oriented programming or generic programming (C + + templates, generics in Java or C #).
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 se s'inscrit dans l'axe « généricité et performance » du
 
laboratoire.
 
   
  +
Tools that seek to resolve the two previous issues (being efficient while providing a general writing via abstractions) are much more uncommon. The [[Olena]] project, developed over the past fifteen years by the LRDE offers a library for generic image processing in C + +, Milena, for writing reusable and efficient algorithms. It relies both on generic programming and object-oriented programming. The internships aims to explore ways to extend the capabilities of Milena in the field of efficient computation (in particular in the context of "Big Data"), while preserving the current characteristics of genericity and abstraction.
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)).
 
   
 
|Prerequisites=Key-words : scientific computing, Big Data, C++, parallel programming.
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#).
 
   
  +
|Objectives=Some working aspects include the following ideas:
Il est cependant beaucoup plus rare d'observer des outils qui
 
  +
* the design and the addition of data structures for large volumes of data;
cherchent à répondre aux deux préoccupation précédentes (être
 
  +
* the use of vectorization instructions (SIMD) to accelerate computations;
performant tout en fournissant une écriture générale via des
 
  +
* the use of parallel programming (multicore) to distribute calculations.
abstractions). Le projet [[Olena]], développé depuis une quinzaine
 
  +
* the realization of algorithms (or algorithms families) using a declarative approach to decouple their definition and implementation in low-level hardware in a given context;
d'années au LRDE, propose une bibliothèque de traitement
 
  +
* the use of generic programming (eg, canvas algorithms) and / or generative programming (generation and assembly of code based on templates);
d'images générique en C++, Milena, permettant l'écriture d'algorithmes
 
  +
* the introduction of Profile-Guided Optimizations taking advantage of real data to improve a code via training techniques introduced in the compilation.
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 :
 
   
  +
In all cases, any research should be conducted keeping in mind the reusability / genericity (even partial) of the proposed solutions, for example based on an incremental refinement ("facelift") of a first proposal. Ultimately, the goal is indeed to lay the first brick of a formalization of a set of properties and data types in order to generalize the performance improvements mentioned above.
* 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
 
  +
|Contact=roland.levillain-at-lrde.epita.fr (Please mention the internship reference above when applying.)
gardant à l'esprit une intention de réutilisabilité / généricité (même
 
 
|Compensation=800 € gross/month
partielle) des solutions proposées, en s'appuyant par exemple sur un
 
  +
|Future work opportunities=If the internship is satisfactory, we would like it to be followed by a PhD.
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.)
 
|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.
 
 
|Type=Master Internship
 
|Type=Master Internship
 
}}
 
}}

Revision as of 17:03, 6 February 2014

Study of problems related to performance in the field of image analysis in a generic context
Reference id

M2 RL 2014 problematiques-performance

Dates

5 - 6 months in 2014

Research field

Image Processing

Related project

Olena

Advisor

Roland Levillain

General presentation of the field

This internship belongs to the lab's research axis "genericity and perfomance". Many software tools for image processing are designed taking into account the performance issues related to data processing (many images or videos or very heavy ones), to the context (real-time constraints, the need to obtain a response within a "reasonable" time) or related to the material (limited processing power or memory capacity).

In addition to this, more and more software libraries for image processing are built according to advanced modeling implementing "abstractions" that represent the different concepts of the domain (image, point, value, neighborhood, etc. ). This approach allows writing "high level" algorithms for image processing which are reusable (not restricted to a single use case) and often simpler. Software frameworks belonging to this category are mostly based on object-oriented programming or generic programming (C + + templates, generics in Java or C #).

Tools that seek to resolve the two previous issues (being efficient while providing a general writing via abstractions) are much more uncommon. The Olena project, developed over the past fifteen years by the LRDE offers a library for generic image processing in C + +, Milena, for writing reusable and efficient algorithms. It relies both on generic programming and object-oriented programming. The internships aims to explore ways to extend the capabilities of Milena in the field of efficient computation (in particular in the context of "Big Data"), while preserving the current characteristics of genericity and abstraction.

Prerequisites

Key-words : scientific computing, Big Data, C++, parallel programming.

Objectives

Some working aspects include the following ideas:

  • the design and the addition of data structures for large volumes of data;
  • the use of vectorization instructions (SIMD) to accelerate computations;
  • the use of parallel programming (multicore) to distribute calculations.
  • the realization of algorithms (or algorithms families) using a declarative approach to decouple their definition and implementation in low-level hardware in a given context;
  • the use of generic programming (eg, canvas algorithms) and / or generative programming (generation and assembly of code based on templates);
  • the introduction of Profile-Guided Optimizations taking advantage of real data to improve a code via training techniques introduced in the compilation.

In all cases, any research should be conducted keeping in mind the reusability / genericity (even partial) of the proposed solutions, for example based on an incremental refinement ("facelift") of a first proposal. Ultimately, the goal is indeed to lay the first brick of a formalization of a set of properties and data types in order to generalize the performance improvements mentioned above.

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

800 € gross/month

Future work opportunities

If the internship is satisfactory, we would like it to be followed by a PhD.

Contact

(Please mention the internship reference above when applying.) roland.levillain-at-lrde.epita.fr (Please mention the internship reference above when applying.)