• Aucun résultat trouvé

L’étude du goulet d’étranglement calculatoire de la détection de collision (cf. Cha-pitre 1) ainsi que celle de l’évolution des architectures machines [AGA09b], nous a permis d’établir lors de l’analyse des solutions parallèles existantes (cf. Chapitre 2) un certain nombre de fonctionnalités et critères essentiels à la réduction du goulet d’étranglement au sein d’environnements large échelle. Ces critères, fixés au début de ce doctorat, étaient les suivants : Généricité, Rapidité, Structuration et Adaptativité.

Conception d’algorithmes parallèles génériques

Ce premier objectif, répondant principalement aux critères de généricité et de rapi-dité, a eu pour but de tirer profit d’un nombre quelconque d’unités parallèles de calcul pour nos algorithmes (multi-cœur, GPU et multi-GPU).

Nous avons proposé un premier algorithme parallèle de Broad phase basé sur le Sweep and Prune pour les architectures multi-cœur [AGA10a] (cf. Chapitre 3). Les ten-dances des nouveaux processeurs allant clairement vers cette direction d’accroissement du nombre de cœurs, notre algorithme parallèle est en mesure de s’intégrer parfaitement dans ce contexte en s’exécutant sur un nombre quelconque de cœurs tout en offrant de meilleures performances. Les résultats ont montré que cette nouvelle version parallèle de l’algorithme, basée sur une approche semi-brute, permettait de réduire le temps de calcul (réduction par 5 sur 8 cœurs). Notre algorithme devenait plus performant que la version séquentielle et incrémentale pour un certain nombre de cœurs dépendant du nombre d’objets.

Nous avons proposé un nouvel algorithme pour l’étape de Narrow phase basé sur un modèle de répartiteur parallèle (cf. Chapitre 3). Ce répartiteur parallèle est basé sur un nouveau concept générique de matrice algorithmique dynamique et généralisable aux autres étapes du pipeline. Cette matrice permet d’évaluer les algorithmes entre eux

138 Conclusion avant une simulation selon différentes classes d’objets préalablement définies.

Nous avons également présenté deux algorithmes GPU (cf. Chapitre 4). Le premier est basé sur une approche topologique proche du Sweep and Prune [AGA11a] et le second est un couplage entre une subdivision spatiale et une approche de force brute optimisée. Les temps de transfert et de calcul ont été optimisés et réduits pour les deux modèles, permettant ainsi d’accroitre la fréquence de calcul pour des environnements virtuels large échelle.

La mise en place d’un nouveau pipeline hybride nous a permis d’appréhender et de révéler le caractère primordial des architectures multi-cœur et multi-GPU (cf. Chapitre 5). Ce pipeline répond aux critères de généricité et de rapidité car il est en mesure de s’exécuter sur un nombre quelconque de cœurs et de GPUs en réduisant le temps de calcul. Notre approche utilise deux techniques de répartition de données entre les différents GPUs lors des deux étapes de Broad et de Narrow phase. La gestion en amont des GPUs est parallélisée et gérée sur multi-cœur.

Nouvelle structuration du pipeline

Le critère de structuration a également été pris en compte pour nos travaux ayant portés sur des modifications de l’organisation du pipeline de détection de collision (cf. Chapitre 6). En effet, nous avons, dans un premier temps, proposé une modification du pipeline de détection de collision permettant de prendre en compte l’architecture d’exécution [AGA09a]. Puis, nous avons proposé un nouveau modèle de pipeline pa-rallèle offrant la possibilité d’exécuter les différentes étapes du processus en papa-rallèle [AGA10b]. Le respect d’un modèle producteur-consommateur a permis de rompre avec la séquentialité des phases tout en conservant celle du traitement d’une paire d’objet pour raffiner la précision des calculs. Ce nouveau pipeline englobe également les trois autres critères définis que sont :

– La rapidité, car l’analyse de nos évaluations ont illustré que ce nouveau pipeline était plus performant que le modèle séquentiel.

– La généricité, car il est basé sur des algorithmes capables de s’exécuter sur un nombre quelconque de cœurs.

– L’adaptativité, car il est muni d’une approche d’adaptation dynamique de la répar-tition des threads permettant un équilibrage de charge en fonction de l’évolution des simulations.

Adaptation dynamique des algorithmes

Ce dernier objectif a été pris en compte lors de nos travaux sur l’adaptation algo-rithmique dynamique de l’étape de Broad phase basée sur des précalculs hors-lignes [AGA11b] (cf. Chapitre 6). La généricité des architectures et la rapidité de l’approche sont également deux critères intégrés par ces travaux. En effet, ces précalculs permettent de définir les domaines de performance optimale des algorithmes disponibles. Ils offrent ainsi la possibilité de pouvoir, durant la simulation, changer dynamiquement

l’algo-Conclusion 139

rithme utilisé par un autre candidat plus rapide. Ces travaux sur l’adaptation algo-rithmique ont, dans un premier temps, permis de révéler le fait qu’il est impossible de repérer un algorithme meilleur que tous les autres pour une simulation dont le scénario est évolutif. Et, dans un second temps, le contrôle dynamique des différentes temps de calcul des phases du pipeline offre désormais la possibilité aux simulations 3D de fournir un temps de calcul très proche de l’optimal en contrôlant et adaptant leurs algorithmes sur l’architecture d’exécution.

Nos travaux de thèse ont donc permis de réduire la combinatoire des algorithmes de détection de collision au sein d’environnements large échelle en répondant aux quatre critères définis indispensables lors de l’analyse critique de l’état de l’art. L’utilisation d’algorithmes basés multi-cœur et multi-GPU inclus dans notre nouveau pipeline hy-bride, lui-même basé sur le modèle de pipeline parallèle, adaptant dynamiquement le parallélisme de ces phases en fonction de l’évolution de la simulation est, pour nous, la réalisation concrète et finale de nos travaux.

Perspectives

Le caractère récent de ce domaine du calcul haute performance pour la détection de collision explique, à lui seul, la multitude de voies possibles pour poursuivre ces travaux. Tout au long de ce manuscrit nous avons détaillé les diverses perspectives relatives aux contributions. Nous résumons, dans la suite, les principales perspectives envisageables.

1- Adaptation dynamique pour la Narrow phase

Une première perspective intéressante serait de poursuivre l’approche sur l’adapta-tion algorithmique de la Broad phase en s’attachant à l’étendre à l’étape de Narrow phase car l’élaboration d’une telle approche permettrait d’obtenir un pipeline de dé-tection de collision entièrement adaptatif et générique. Il serait pour cela nécessaire de prendre en compte des paramètres supplémentaires tels que la complexité des maillages et les propriétés physiques des objets afin d’être en mesure d’adapter la répartition des données et/ou des calculs lors de cette étape en fonction de l’évolution de la simulation.

2- Modèle Architecture/Algorithme

Un point crucial à développer serait de définir un modèle à base de règles qui, grâce aux paramètres de l’architectures et des caractéristiques de la simulation (taille, nombre d’objets, complexité, propriétés physiques, etc.) serait en mesure d’établir la répartition optimale tant au niveau données qu’au niveau calcul du pipeline de détection de collision. Cette perspective est ambitieuse mais elle serait en mesure de bouleverser la gestion de la performance pour la détection de collision. La multitude de paramètres à prendre en compte et l’incertitude de certaines mesures seraient certainement la difficulté majeure de l’élaboration d’un tel système de règles.

140 Conclusion

3- Grilles et clusters

Une perspective à plus long terme serait de s’éloigner de l’utilisation d’un simple ordinateur et d’étudier l’utilisation d’architectures spécialement conçues pour le calcul haute performance. Ces architectures pourraient être de type clusters CPU, GPU ou hybrides voire même de type grille de calcul. La latence entre les différents sites géogra-phiques d’une grille de calcul pourrait conduire à l’utilisation de méthodes prédictives basées sur cette latence. L’utilisation de clusters est d’ores et déjà effective au sein du domaine de la réalité virtuelle [RS06] mais est assez peu étudiée pour la détection de collision.

Ces différentes perspectives illustrent la grande diversité de voies possibles pour poursuivre ces travaux. Les architectures multi-cœur, GPU et multi-GPU sont, et vont être, des éléments clé du parallélisme des algorithmes de détection de collision. La conception de tels systèmes nécessite donc des analyses supplémentaires détaillées des techniques de répartition afin de tirer profit au maximum des performances de ces architectures d’exécution complexes.