About the position
Context
Le projet s'inscrit dans le cadre d’un partenariat (projet ILAB CGALSCALE - Composants CGAL à toutes les échelles) entre l'équipe-projet Inria TITANE et la PME Geometry Factory.
L’objectif est de développer des variantes parallèles (mémoire distribuée) ou GPU de composants CGAL, pour le passage à toutes les échelles, à la fois pour le traitement de données massives et pour le fonctionnement sur des plateformes de faible puissance (architectures hybrides CPU-GPU).
Le projet repose sur deux éléments clés qui en justifient pleinement l'intérêt. D'un côté, les applications industrielles nécessitent le traitement de volumes toujours plus massifs de données géométriques. De l'autre, les architectures de calcul se diversifient pour répondre à des besoins variés : des systèmes embarqués et de faible puissance comme les robots et drones, jusqu'aux architectures distribuées telles que le cloud, les plateformes hybrides CPU-GPU ou les supercalculateurs. L'objectif est d'adapter les composants CGAL en développant des algorithmes innovants, capables de s'adapter à des environnements soumis à de fortes contraintes d'échelles à la fois au niveau des données et des puissances de calcul, tout en conservant leur fiabilité, basée sur le paradigme du calcul géométrique exact.
Le premier axe de recherche porte sur la gestion des grandes échelles. Il inclut le traitement optimisé des nuages de points 3D massifs, générés par exemple par des scanners LiDAR, à l’aide de structures de données multi-échelles et parcimonieuses, et d’algorithmes distribués et innovants. Ces recherches vont exploiter les GPU afin d’assurer des performances maximales. Cet axe inclut aussi la génération de maillages de taille illimitée, en développant des algorithmes adaptés aux architectures distribuées.
Le second axe de recherche porte sur la gestion des petites échelles, ciblant l’optimisation des plateformes basse puissance (embarquées ou temps-réel) via l’utilisation de calculs hybrides CPU-GPU et le paradigme novateur d’algorithme progressif. Un algorithme progressif vise à améliorer la précision ou la qualité des calculs, au cours du temps ou en fonction de l’énergie consommée. Ce principe progressif s’appliquera aux algorithmes d’analyse temps-réel de nuages de points 3D et aux remailleurs.
Ces axes de recherche aboutiront à des innovations concrètes, soit par l’ajout de nouveaux composants, soit par l’amélioration de composants existants. Grâce à son architecture modulaire, la bibliothèque CGAL, associée aux trois pistes méthodologiques de recherche (algorithmes distribués, calculs réalisés sur GPU, algorithmes progressifs), offrira la possibilité de concevoir un planning d’innovation précis et adaptable. Le tout s’inscrit dans une feuille de route ambitieuse, avec des premiers résultats attendus d’ici un à trois ans.
Assignment
Missions :
La personne recrutée sera amenée à développer des algorithmes parallèles en version distribuée, et des variantes GPU.
Contexte:
Créée en 1996 par un consortium européen, la bibliothèque C++
CGAL
(Computational Geometry Algorithms Library) propose des composants logiciels pour le calcul sur des données géométriques en dimensions 2, 3 et supérieures. Ces composants incluent des algorithmes et des structures de données fiables, couvrant notamment : enveloppes convexes, triangulations, opérations Booléennes, calcul d'intersections, génération de maillages, traitement de nuages de points 3D. La PME
GeometryFactory
, créée en 2003, commercialise une centaine de ces composants pour des applications industrielles, avec un marché
horizontal
, c’est-à-dire transversal à plusieurs secteurs. Ces composants sont conçus pour être facilement intégrés dans des applications spécialisées. Ils permettent ainsi aux utilisateurs d'économiser du temps en évitant le redéveloppement d’algorithmes complexes, leur permettant de se concentrer sur des solutions spécifiques à leur domaine. En 2022, le projet open source CGAL a été récompensé par le prestigieux SoCG
Test of Tim
e Award
.
Nouveaux défis et passage à l'échelle
. Aujourd’hui, les composants de CGAL doivent évoluer pour répondre à des besoins variés en matière de passage à l'échelle : (1) Échelles supérieures : Adaptation pour des architectures distribuées (cloud, plateformes hybrides CPU-GPU, supercalculateurs), et (2) Échelles inférieures : Optimisation pour des architectures embarquées ou de faible puissance, nécessitant des algorithmes revisités en versions frugales, ou avec précision variable ou progressive.
Vers une approche énergétique efficace
. Le passage à des solutions adaptées à toutes les échelles exige une refonte de paradigmes classiques. Au-delà des critères traditionnels (complexité calculatoire et mémoire), la consommation énergétique devient un enjeu central. L’objectif est de développer des algorithmes : (1) Plus efficaces sur le plan énergétique, (2) Capables de trouver un compromis entre précision et consommation énergétique. Ceci appelle à une recherche exploratoire et au développement de nouveaux paradigmes.
La littérature scientifique regorge de méthodes pour traiter des données géométriques massives. Parmi ces méthodes :
Approches par streaming ou mémoire externe : elles permettent de fonctionner sur des infrastructures disposant de ressources limitées (mémoire et calcul). Cependant, elles nécessitent souvent des allers-retours répétitifs et coûteux en temps entre le disque dur et la mémoire [1, 2].
Programmation parallèle : ce paradigme est essentiel pour réduire le temps d'exécution des algorithmes de triangulation et de maillage [8, 5]. La version distribuée de cette programmation est indispensable pour assurer une mise à l’échelle efficace [4, 6, 9, 10, 12].
Structuration spatiale hiérarchique des données : elle est une solution clé pour comprimer des nuages de points 3D. Elle offre également des interfaces flexibles pour effectuer différentes requêtes [3]. Certaines techniques permettent désormais de réaliser une compression en temps réel sur GPU, principalement pour la visualisation de nuages de points massifs [14].
Cependant, l’état de l’art en matière de calcul géométrique sur des architectures hybride CPU-GPU ou à faible puissance ou mémoire reste limité. Quelques avancées notables incluent :
Accélérations sur GPU pour les prédicats géométriques, avec des gains pouvant atteindre deux ordres de grandeur en vitesse [15]. Une difficulté est de préserver les garanties en réservant les calculs sur GPU à des opérations de filtrage conservatif.
Arithmétiques à précision réduite ou mixte, souvent accompagnées d'accélérations matérielles.
Approches progressives, qui ajustent la précision au fil du temps tout en optimisant le compromis entre performance et qualité [12, 13]. Au-delà de l’optimisation, un verrou scientifique est la répartition optimale des calculs entre GPU et CPU dans ce cadre.
[1]
Streaming computation of Delaunay triangulations
. Martin Isenburg, Yuanxin Liu, Jonathan Shewchuk, Jack Snoeyink. ACM Transactions on Graphics 2006.
[2]
A streaming framework for seamless building reconstruction from large-scale aerial lidar data
. Qian Yi Zhou and Ulrich Neumann. CVPR 2009.
[3]
One billion points in the cloud – an octree for efficient processing of 3D laser scans
. Jan Elseberg, Dorit borrmann and Andreas Nuchter.
ISPRS Journal of Photogrammetry and Remote Sensing
, vol 76, 2013.
[4]
High-performance
computation of distributed-memory parallel 3D Voronoi and Delaunay tes
sellation
. Tom Peterka, Dmitriy Morozov, Carolyn Phillips. Supercomputing 2014.
[5]
CGALmesh: a Generic Framework for Delaunay Mesh Generation
. Clément Jamin, Pierre Alliez, Mariette Yvinec, Jean-Daniel Boissonnat. ACM Transactions on Mathematical Software 2015.
[6]
Tile & Merge: Distributed Delaunay Triangulations for Cloud Computing
. Laurent Caraffa, Pooran Memari, Murat Yirci, Mathieu Brédif. IEEE Big Data 2019.
[7]
Fast Out-of-Core Octree Generation for Massive Point Clouds
. Markus
Schütz
, Stefan
Ohrhallinger
and Michael
Wimmer
. Computer Graphics Forum, 2020.
[8]
Delaunay triangulation of large-scale datasets using two-level parallelism
. Cuong, M. Nguyen. Philip J. Rhodes. Parallel Computing 2020.
[9]
Efficiently Distributed Watertight Surface Reconstruction
. Laurent Caraffa, Yanis Marchand, Mathieu Brédif, Bruno Vallet. International Conference on 3D Vision 2021.
[10]
Distributed Poisson surface reconstruction
. Misha Kazhdan, Hugues Hoppe. Computer Graphics Forum, 42(6), 2023.
[11]
Large-scale semi-discrete optimal transport with distributed Voronoi diagrams
. Bruno Lévy. 2024. arXiv:2406.04192.
[12]
Progressive Geometric View Factors for Radiative Thermal Simulation
. Vincent Vadez, François Brunetti, Pierre Alliez. 50th International Conference on Environmental Systems, 2020.
[13]
Progressive Discrete Domains for Implicit Surface Reconstruction.
Tong Zhao, Pierre Alliez, Tamy Boubekeur, Laurent Busé, Jean-Marc Thiery. Proceedings of EUROGRAPHICS Symposium on Geometry Processing, 2021.
[14]
Real-Time Decompression and Rasterization of Massive Point Clouds
. Rahul Goel, Markus Schutz, P.J. Narayanan and Bernhard Kerbl. Proceedings of ACM SIGGRAPH 2024.
[15]
Accelerating the exact evaluation of Geometric Predicates with GPUs
.
Matos Menezes et al. Computer-Aided Design 2022.
Collaboration :
La personne recrutée sera en lien avec trois chercheurs de l'équipe-projet TITANE : Pierre Alliez, Florent Lafarge et François Protais, et avec Mael Rouxel-Labbé et Andreas Fabri de Geometry Factory.
Responsabilités :
La personne recrutée a la charge de développer des algorithmes, en collaboration avec TITANE et Geometry Factory, et de partager régulièrement ses avancées.
Main activities
Principales activés :
Développement d'algorithmes parallèles en C++
Développement d'algorithmes GPU
Evaluation et benchmarking
Documentation
Activités complémentaires :
Présentations aux partenaires
Reporting
Skills
Compétences techniques et niveau requis :
Parallélisme distribué
programmation GPU
Langues :
Français
Anglais
Compétences relationnelles :
Travail en équipe
Présentation
Compétences additionnelles appréciées :
Partage des compétences avec le reste de l'équipe
This listing was collected from a public source and is reproduced here for
information only. Always confirm the details on the original posting before applying.
View the original posting