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= |
+ | |Title=Study of problems related to performance in the field of image analysis in a generic context |
− | |Dates=5 - 6 |
+ | |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)). |
||
⚫ | |||
− | 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. |
||
⚫ | |||
− | |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 |
||
⚫ | |||
− | 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.) |
||
⚫ | |||
− | |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 | |
Advisor | |
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:
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 |