Difference between revisions of "Jobs/M2 RL 2014 problematiques-performance"
From LRDE
(Update the offer.) |
|||
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Job |
||
− | = Proposition de stage de Master 2 Recherche : Étude de problématiques de performance en traitement d'images dans un contexte générique = |
||
+ | |Reference id=M2 RL 2014 problematiques-performance |
||
+ | |Title=Study of performance-related issues in image analysis in a generic context |
||
+ | |Dates=5 - 6 months in 2014 |
||
+ | |Research field=Image Processing |
||
+ | |Related project=Olena |
||
+ | |Advisor=Roland Levillain |
||
+ | |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: |
||
− | __NOTOC__ |
||
+ | * Pattern Recognition |
||
− | * Référence du stage : '''M2_RL_2014_problematiques-performance''' |
||
+ | * Automata and Model Checking |
||
+ | In addition, all applied research efforts in the lab fall within a research line called “genericity and efficiency”. |
||
− | === Présentation du laboratoire === |
||
+ | |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). |
||
− | 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 : |
||
+ | 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). |
||
− | * la reconnaissance des formes ; |
||
− | * les automates et la vérification formelle. |
||
+ | 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. |
||
− | Par ailleurs, la recherche applicative s'inscrit dans un axe transverse dit de « généricité et performance ». |
||
+ | |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. |
||
− | === Description du stage === |
||
+ | * 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. |
||
− | Ce stage se s'inscrit dans l'axe « généricité et performance » du |
||
+ | |Contact=roland.levillain-at-lrde.epita.fr (Please mention the internship reference above when applying.) |
||
− | laboratoire. |
||
+ | |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. |
||
− | On peut constater d'une part que de nombreux outils logiciels pour le |
||
+ | |Type=Master Internship |
||
− | traitement d'image sont conçus en prenant en compte des problématiques |
||
+ | |Language=en |
||
− | 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#). |
||
− | |||
− | 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. |
||
− | |||
− | 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. |
||
− | |||
− | Mots-clefs : calcul scientifique, Big Data, C++, programmation parallèle. |
||
− | |||
− | === Pré-requis === |
||
− | |||
− | Des connaissances en traitement d'images sont nécessaires à la |
||
− | réalisation de ce stage. Le candidat devra être familiarisé avec le |
||
− | langage C++ ou avoir un moins un bon niveau de connaissance du langage |
||
− | C. Le travail à effectuer devra s'intégrer dans la plate-forme |
||
− | logicielle libre de traitement d'images du LRDE, |
||
− | [[Olena]], écrite en C++. |
||
− | |||
− | Des connaissances en modélisation objet, programmation générique, |
||
− | vectorisation ou en programmation parallèle ou multicœur seraient |
||
− | bénéfiques. |
||
− | |||
− | === Débouchés === |
||
− | |||
− | Si le déroulement du stage est satisfaisant, nous souhaiterions qu'il |
||
− | soit suivi d'une thèse de doctorat. |
||
− | |||
− | === Informations pratiques === |
||
− | |||
− | * Personnes à contacter : |
||
− | ** Roland Levillain <roland.levillain-at-lrde.epita.fr><br />(Ne pas oublier de mentioner la référence du stage figurant au début de cette annonce.) |
||
− | * [[Contact|Lieu du stage]] : Laboratoire de Recherche et Développement de l'EPITA (LRDE)<br />18, rue Pasteur<br />94270 Le Kremlin-Bicêtre<br />(Porte d'Italie) |
||
− | * Rémunération : environ 800 € brut/mois |
||
− | |||
− | |||
− | Annonce diffusée à partir du 13/11/2013. |
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 |