My current research activities focus on High Performance Interactive Computing (HPiC). The goal is to design and develop algorithms and programming frameworks for large interactive applications, taking advantage of the resources offered by hybrid multi-CPU multi-GPU machines, clusters and Grid/Cloud infrastructures. I mainly focus on applications with a strong 3D aspect like scientific visualization or virtual reality.
Multi-core architectures (CPUs and GPUs) offer an unique opportunity for HPiC, but taking full benefit of their performance is challenging given the number and heterogeneity of computing units and the complexity of the memory hierarchy. I have been working on cache efficient data structures (for static meshes but also moving particules) relying on cache oblivious approaches to improve the performance of parallel executions on NUMA machines as well as GPUs. Load balancing is a key feature to enable efficient resource usage when dealing with irregular parallelism. KAAPI, a highly optimized parallel runtime developped in our team, is my favorite environement to support parallel adaptive algorithms. In particular, I have been working on enabling seamless executions on hybrid multi-CPUs and multi-GPUs architectures by relying on a tailored work stealing algorithm to dynamically schedule task either on CPUs or GPUs depending on resource activity and memory affinity criteria. One target application is the SOFA physics engine.
I lead the development of FlowVR a middleware dedicated to parallel interactive applications. FlowVR is data flow based enabling to develop large yet modular applications. FlowVR is used for multi-camera 3D modeling, telepresence, distant scientific visualization, interactive molecular dyanmics and in situ visualization.
I work on real-time multi-camera 3D modeling, full-body interaction and telepresence, that we experimented on the Grimage platform, soon to be replaced by the 50+ camera platform Kinovis (Equipex). See the succesfull demos at Siggraph 2007 and Siggraph 2009 as well as this telepresence expriment presented at ACMM10.
This work is (was) performed with Ph.D. students I really enjoy(ed) to work with:
Initial works in virtual reality (early 2000's) led to the development of the Net Juggler and SoftGenLock Libraries. Net Juggler distributes graphics rendering on a PC cluster. SoftGenLock enables active stereo on a Linux PC cluster with commodity graphics cards. These two software peices contributed to the shift from dedicated SGI machines used at the time to power immersive environement to commodity PCs.
From 1999 to 2001 I was Assitant Professor at LIFO, Université d'Orléans. I taught cryptography and network security, computer architecture, parallel programming, networking, object programming and operating systems classes.
I worked almost two years (98-99) at Iowa State University on parallel computer performance evaluation and taught one calculus classe per semester. Research work was done with Pr. Glenn R. Luecke in close collaboration with Cray and SGI.
I obtained a Computer Science Ph.D. from Université d'Orléans in 1997, advised by Bernard Virot and Robert Azencott. Research work focused on structured parallel progamming (formal approach based on operational/denotational semantics).