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 |
+ | |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=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. |
||
⚫ | |||
− | |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 ; |
||
⚫ | |||
− | * 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 ( |
+ | |Contact=roland.levillain-at-lrde.epita.fr (Please mention the internship reference above when applying.) |
− | |Compensation=800 € |
+ | |Compensation=800 € gross/month |
− | |Future work opportunities= |
+ | |Future work opportunities=If you have performed the internship satisfactorily, we would like it to be followed by a PhD thesis. |
− | |Type= |
+ | |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 | |
Advisor | |
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:
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 |