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 Time 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 tessellation. 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.