Gestion dynamique du parallélisme dans les architectures multi-cœurs pour applications mobiles. (Dynamic parallelism adaptation in multicore architectures for mobile applications)

Le nombre de smartphones vendus a recemment depasse celui des ordinateurs. Ces appareils tendent a regrouper de plus en plus de fonctions, ceci grace a des applications de plus en plus variees telles que la video conference, la realite augmentee, ou encore les jeux video. Le support de ces applications est assure par des ressources de calculs heterogenes qui sont specifiques aux differents types de traitements et qui respectent les performances requises et les contraintes de consommation du systeme. Les applications multimedia sont par exemple accelerees par des composants permettant un encodage et un decodage video de maniere materielle. De meme, les applications graphiques, telles que les jeux video, sont accelerees par un processeur graphique. Cependant les applications deviennent de plus en plus complexes. Une application de realite augmentee va par exemple necessiter du traitement d’image, du rendu graphique et un traitement des informations a afficher. Cette complexite induit souvent une variation de la charge de travail qui impacte les performances et donc les besoins en puissance de calcul de l’application. Ainsi, la parallelisation de l’application, generalement prevue pour une certaine charge, devient inappropriee. Ceci induit un gaspillage des ressources de calcul qui pourraient etre exploitees par d’autres applications ou par d’autres etages de l’application. L’objectif ici est donc d’optimiser l’utilisation des ressources de calcul a disposition. Un pipeline de rendu graphique a ete choisi comme cas d’utilisation car c’est une application dynamique et ce type d’application est de plus en plus repandu dans les appareils mobiles. Cette application a ete implementee et parallelisee sur un simulateur d’architecture multicoeur. Un profilage a confirme l’aspect dynamique, le temps de calcul de chaque donnee ainsi que le nombre d’objets a calculer variant de maniere significative dans le temps. De plus, le profilage a montre que la meilleure repartition du parallelisme evolue en fonction de la scene rendue; ce qui a valide le besoin d’une adaptation dynamique du parallelisme de l’application. Les constatations precedentes nous ont amenes a definir un systeme permettant d’adapter, au fil de l’execution, le parallelisme d’une application en fonction d’une prediction faite de ses besoins. Le choix d’un nouveau parallelisme necessite de connaitre les besoins en puissance de calcul des differents etages, ce qui peut etre le cas en surveillant les transferts de donnees entre les etages de l’application. Enfin, l’adaptation du parallelisme implique une nouvelle repartition des taches en fonction des besoins des differents etages, ce qui requiert un controleur central ayant une vue globale de l’application. Le systeme a ete implemente dans un simulateur precis au niveau TTLM (Timed TLM) afin d’estimer les gains de performances permis par l’adaptation dynamique. Une architecture permettant l’acceleration de differents types d’applications que ce soit generalistes ou graphiques a ete definie et comparee a d’autres architectures multicoeurs. Le cout materiel de cette architecture a de plus ete quantifie. Les performances de l’architecture ont ete evaluees. Ainsi, pour un support materiel dont la complexite est inferieure a 1,5 % du design complet, on demontre des gains de performance allant jusqu’a 20 % par rapport a certains deploiement statiques, ainsi que la capacite a gerer dynamiquement un nombre de ressources de calcul variable.