A propos de l'offre

Expérience : Débutant
Formation : Master
Localisation : Boulogne

Tags

Stage – Portage du code SeWaS sur architectures hétérogènes à base de GPU (H/F)

SeWaS est un code de calcul développé par ANEO, simulant la propagation d’ondes sismiques. Des codes similaires sont notamment utilisés dans l’industrie: pour prévenir les impacts liés aux seismes ou lors des opérations d’exploration pétrolière. SeWaS utilise des techniques de programmation et frameworks HPC à l’état de l’art (C++14; parallélisation par ordonnancement d’un graphe de tâches avec un support exécutif distribué; vectorisation explicite).

Dans ce stage, nous nous intéressons au portage de SeWaS sur GPU avec les frameworks CUDA et OpenCL. L’objectif est ainsi d’avoir un code tirant parti des performances des stations de calculs modernes, équipés à la fois des processeurs multicore et des accélérateurs matériels type GPU.

SeWaS est développé selon une architecture modulaire. Les noyaux de calculs sont découplés de la partie ordonnancement, facilitant ainsi le portage vers différentes architectures de calculs. Le travail à réaliser dans le stage consistera donc à:

Faire une étude comparative des bibliothèques C++ fournissant des conteneurs adaptés au GPU: ArrayFire, Eigen, VexCL

Implémenter les noyaux de calculs pour GPU avec CUDA ou OpenCL

Etudier et optimiser les performances sur GPU

Le travail réalisé durant le stage fera l’objet d’une publication. Le stage pourra être prolongé sur le portage du code sur FPGA.

 

Profil recherché

Formation niveau bac +5 : école d’ingénieur ou master

C++

Développement sur GPU avec CUDA ou OpenCL

Optimisation de performances des applications de calcul

Développement sous Linux

 

Informations Supplémentaires

Durée du stage : 4 à 6 mois à partir de février 2019

Localisation du stage : Boulogne Billancourt (92)