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

From LRDE

 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{Job
 
{{Job
 
|Reference id=M2 RL 2014 problematiques-performance
 
|Reference id=M2 RL 2014 problematiques-performance
  +
|Title=Study of performance-related issues in image analysis in a generic context
|Title=Étude de problématiques de performance en traitement d'images dans un contexte générique
 
|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=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 :
+
|Context=Started in 1998, the [https://www.lrde.epita.fr EPITA Research and Development Laboratory (LRDE)] is a laboratory under the administrative supervision of [http://www.epita.fr EPITA (École Pour l'Informatique et les Techniques Avancées)], a French “École d'Ingénieurs” (Engineering School).
   
  +
Like the lab, the team is young and dynamic; in early 2014, it is composed of ten assistant-professors, one administrator, 4 Ph.D. candidates and about ten students doing part-time research in the lab during their studies. The works in fundamental research conducted at the LRDE are organized around two themes:
* la reconnaissance des formes ;
 
* les automates et la vérification formelle.
 
   
  +
* Pattern Recognition
Par ailleurs, la recherche applicative s'inscrit dans un axe transverse dit de « généricité et performance ».
 
  +
* Automata and Model Checking
|General presentation of the field=Ce stage se s'inscrit dans l'axe « généricité et performance » du
 
laboratoire.
 
   
  +
In addition, all applied research efforts in the lab fall within a research line called “genericity and efficiency”.
On peut constater d'une part que de nombreux outils logiciels pour le
 
  +
|General presentation of the field=This internship is part of the “genericity and efficiency” research line of the laboratory.
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)).
 
   
  +
Many software tools for image processing are designed with performance issues in mind, related to either the data (many images or videos, or very large ones), the context (real-time constraints, the need to obtain a response in a “reasonable” time frame), or hardware (limited processing power or memory capacity).
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#).
 
   
  +
Besides, more and more software libraries for image processing are built along the lines of an advanced design work, using “abstractions” representing the various concepts of the domain (image, point, value, neighborhood, etc. ). This approach enables a high-level strategy to write image processing algorithms, which are reusable (not restricted to a single use case) and often simpler. Software frameworks from this category are mostly based on object-oriented programming or generic programming (C++ templates, Java or C# generics).
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 :
 
   
  +
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 for more than fifteen years by the LRDE, proposes a library for generic image processing in C++, Milena, designed for writing reusable and efficient algorithms. It relies both on generic and object-oriented programming. The internship aims to explore ways to extend the capabilities of Milena in the field of high performance computing (in particular in “Big Data” contexts), while preserving its current generic- and abstraction-related features.
* la conception et l'ajout de structures de données destinées à de gros volumes de données ;
 
 
|Prerequisites=Keywords : scientific computing, Big Data, C++, parallel programming.
* l'utilisation d'instructions de vectorisation (SIMD) pour accélérer les calculs ;
 
  +
|Objectives=Some working aspects include the following ideas:
* 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.
 
   
  +
* The design and the addition of data structures for large volumes of data.
Dans tous les cas, les travaux de recherche devront être menés en
 
  +
* The use of vectorization instructions (SIMD) to speed up computations.
gardant à l'esprit une intention de réutilisabilité / généricité (même
 
  +
* The use of parallel programming (multicore) to distribute computations.
partielle) des solutions proposées, en s'appuyant par exemple sur un
 
  +
* The implementation of algorithms (or algorithms families) using a declarative strategy to uncouple their definition and implementation in low-level hardware in a given context.
raffinement (''lifting'') incrémental d'une première proposition. À
 
  +
* The use of generic programming (e.g., canvas of algorithms) and / or generative programming (generation and assembly of code based on templates).
terme, l'objectif est en effet de poser les premières briques d'une
 
  +
* the introduction of Profile-Guided Optimizations taking advantage of real data to improve the generated code via “machine learning” techniques introduced in the compilation.
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
 
  +
In any case, the research work should be conducted with a reusability / genericity goal (even a partial one) of the proposed solutions in mind, for example based on an incremental refinement (“lifting”) of a first implementation. Ultimately, the goal is to actually set the first elements of a more formal set of properties and data types, in order to generalize the performance improvements mentioned above.
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 (Please mention the internship reference above when applying.)
|Compensation=800 € brut/mois
+
|Compensation=800 € gross/month
|Future work opportunities=Si le déroulement du stage est satisfaisant, nous souhaiterions qu'il soit suivi d'une thèse de doctorat.
+
|Future work opportunities=If you have performed the internship satisfactorily, we would like it to be followed by a PhD thesis.
|Type=Internship Master
+
|Type=Master Internship
  +
|Language=en
 
}}
 
}}

Latest revision as of 17:19, 8 April 2014

Study of performance-related issues in 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 is part of the “genericity and efficiency” research line of the laboratory.

Many software tools for image processing are designed with performance issues in mind, related to either the data (many images or videos, or very large ones), the context (real-time constraints, the need to obtain a response in a “reasonable” time frame), or hardware (limited processing power or memory capacity).

Besides, more and more software libraries for image processing are built along the lines of an advanced design work, using “abstractions” representing the various concepts of the domain (image, point, value, neighborhood, etc. ). This approach enables a high-level strategy to write image processing algorithms, which are reusable (not restricted to a single use case) and often simpler. Software frameworks from this category are mostly based on object-oriented programming or generic programming (C++ templates, Java or C# generics).

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 for more than fifteen years by the LRDE, proposes a library for generic image processing in C++, Milena, designed for writing reusable and efficient algorithms. It relies both on generic and object-oriented programming. The internship aims to explore ways to extend the capabilities of Milena in the field of high performance computing (in particular in “Big Data” contexts), while preserving its current generic- and abstraction-related features.

Prerequisites

Keywords : 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 speed up computations.
  • The use of parallel programming (multicore) to distribute computations.
  • The implementation of algorithms (or algorithms families) using a declarative strategy to uncouple their definition and implementation in low-level hardware in a given context.
  • The use of generic programming (e.g., canvas of 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 the generated code via “machine learning” techniques introduced in the compilation.

In any case, the research work should be conducted with a reusability / genericity goal (even a partial one) of the proposed solutions in mind, for example based on an incremental refinement (“lifting”) of a first implementation. Ultimately, the goal is to actually set the first elements of a more formal 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 you have performed the internship satisfactorily, we would like it to be followed by a PhD thesis.

Contact

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