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

From LRDE

(Proofread)
Line 1: Line 1:
 
{{Job
 
{{Job
 
|Reference id=M2 RL 2014 problematiques-performance
 
|Reference id=M2 RL 2014 problematiques-performance
|Title=Study of problems related to performance in the field of image analysis in a generic context
+
|Title=Study of performance-related issues in image analysis in a generic context
 
|Dates=5 - 6 months in 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
|General presentation of the field=This internship belongs to the lab's research axis "genericity and perfomance".
+
|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 taking into account the performance issues related to data processing (many images or videos, or very big 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).
 
   
  +
Many software tools for image processing are designed with performance
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 #).
 
  +
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
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.
 
  +
built along the lines of an advanced design work, using “abstractions”
|Prerequisites=Key-words : scientific computing, Big Data, C++, parallel programming.
 
  +
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
  +
internships 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:
 
|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.
 
   
 
* The design and the addition of data structures for large volumes of data.
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.
 
 
* 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.
  +
 
|Contact=roland.levillain-at-lrde.epita.fr (Please mention the internship reference above when applying.)
 
|Contact=roland.levillain-at-lrde.epita.fr (Please mention the internship reference above when applying.)
 
|Compensation=800 € gross/month
 
|Compensation=800 € gross/month
|Future work opportunities=If the internship is satisfactory, we would like it to be followed by a PhD.
+
|Future work opportunities=If the internship goes well, we would like it to be followed by a PhD thesis.
 
|Type=Master Internship
 
|Type=Master Internship
 
|Language=en
 
|Language=en

Revision as of 18:45, 18 February 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 internships 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 the internship goes well, 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.)