:: Espace candidat
Adresse email :

Mot de passe :

> créer mon compte
> déposer mon CV
> créer une alerte mail
> mot de passe oublié ?
> Emploi Handicap
:: Description de l'offre - IFP Energies nouvelles - Sciences et Technologies du Numérique

 Optimisation d'une librairie Différentiation Automatique pour vecteur creux

IFP Energies nouvelles est un organisme public de recherche, d’innovation industrielle et de formation intervenant dans les domaines de l’énergie, du transport et de l’environnement. Sa mission est d'apporter aux acteurs publics et à l'industrie des technologies performantes, économiques, propres et durables pour relever les trois grands défis sociétaux du 21e siècle : changement climatique et impacts environnementaux, diversification énergétique et gestion des ressources en eau. Son expertise est internationalement reconnue.

IFP Energies nouvelles poursuit 5 priorités stratégiques, indissociables et complémentaires dans l'accomplissement de sa mission d’intérêt général :

  • Produire à partir de sources renouvelables des carburants, des intermédiaires chimiques et de l'énergie
  • Produire de l’énergie en réduisant l’impact sur l’environnement
  • Développer des transports économes et à faible impact environnemental
  • Produire à partir de ressources fossiles des carburants et intermédiaires chimiques à faible impact environnemental
  • Proposer des technologies respectueuses de l'environnement et repousser les limites actuelles des réserves d'hydrocarbures

Son école d'ingénieurs, partie intégrante d'IFP Energies nouvelles, prépare les générations futures à relever ces défis.


Optimisation d'une librairie Différentiation Automatique pour vecteur creux

Les phénomènes physiques sont en général décrits par des équations aux dérivées partielles pouvant être non linéaires. La stratégie classique est d’utiliser un solveur non linéaire de type Newton [1] pour les résoudre.

Pour cela, il convient en particulier d’assembler une matrice (dite jacobienne) faisant intervenir les dérivées des composantes du système non linéaire discret. Intervenir sur la matrice jacobienne est souvent complexe. Que cela soit pour ajouter un nouveau terme physique (ou mathématique) ou assurer une maintenance, l’expression et la composition algébrique des dérivées « à la main » est souvent source de bugs. Pourtant, ces opérations suivent des règles de dérivations simples.

Une alternative moderne à l’écriture par un développeur de ces dérivées est l’utilisation de technique de différentiation automatique [2], [3] qui automatise le processus. IFPEN a bâti une application de transport réactif sur une librairie de différentiation automatique en C++ à partir de la technique de programmation générique par expressions templates [4].

La notion de stencil de schéma numérique type Volume Fini 2 points a été introduite dans la sémantique de la librairie. Le gain de maintenabilité, d’évolutivité et d’expressivité attendu est très satisfaisant. Des optimisations concernant l’utilisation de la mémoire ont été effectuées. On constate toutefois que la notion de stencil peut engendrer un nombre d’opérations inutiles (typiquement de multiplication par zéro).

Le but de ce stage est de proposer d’une part une alternative pour éviter ces opérations. D’autre part, des optimisations portant sur la modification de l’arbre abstrait des opérations [5] ou sur l’utilisation de techniques de parallélisation avancées [6] pourront être étudiées. Les tests seront effectués directement dans l’application IFPEN de transport réactif.

Profil attendu :

Le candidat devra posséder de solides compétences en C++, en optimisation de code et en parallélisation (par instructions SIMD et/ou directives OpenMp).   

Références :

[1] Newton Methods for Nonlinear Problems, P. Deuflhard, Computational Mathematics, Springer, 2004.
[2] A backward automatic differentiation framework for reservoir simulation, Xiang Li, Dongxiao Zhan, Computational Geosciences, 2014.
[3] Parallel Automatically Differentiable Data-Types for Next-Generation Simulator Development, Rami Younis, Khalid Aziz.
[4] Expression Templates, Todd Veldhuizen, 1996.
[5] Expression Templates Revisited: A Performance Analysis of the Current ET Methodology, Klaus Iglberger, Georg Hager, Jan Treibig, Ulrich Rüde.
[6] A New Vectorization Technique for Expression Templates in C++, J. Progsch, Y. Ineichen, A. Adelmann, 2011.

 Informations

Type de contrat :  Stage
Début :  Entre avril 2019 et septembre 2019
Durée :  5 mois
Région : Ile de France
Discipline : Informatique - Développement
Rémunération : Oui
 Contact

Référence annonce : 2019_R114_01
Contact : Raphaël Gayno
Adresse :
1&4, avenue de Bois-Preau
92852  Rueil-Malmaison cedex
 


      Retour à la liste
           
Postuler à cette annonce


 
:: Espace Publicité