Bannière Faculté des sciences DIC
 
Description
Title : Visualiser pour comprendre : Application à la programmation vectorielle
Tutor : Pierre-Marie NTANG
Number : 11/20
Status : Not exceeded
Begin : Tuesday, 10 March, 2020 à 13:30PM
Target group : Oui
Location : TELUQ, Amphithéâtre 11.051
Bookable : 12

Nous pouvons assimiler cette architecture physique particulière à ses éléments fonctionnels qui nous intéressent le plus, à savoir ses registres. Ce qui fait alors la particularité de cette architecture est que ces registres sont vectoriels. Les outils applicatifs pour les exploiter sont des instructions vectorielles ou intrinsics. Ces registres et ces instructions sont dits vectoriels par opposition aux registres et instructions scalaires. En effet, en agissant sur un registre vectoriel, une instruction vectorielle permet d’effectuer plusieurs opérations qui nécessiteraient plusieurs instructions scalaires correspondantes. Cette instruction vectorielle consomme également beaucoup moins d’énergie électrique que ces instructions scalaires correspondantes. Cette architecture répond donc potentiellement au double besoin des utilisateurs d’application informatique.
Cependant pour que ce potentiel soit actualisé, et donc que les utilisateurs d’application en bénéficient effectivement, les programmeurs doivent apprendre à utiliser ces instructions vectorielles dans les programmes qu’ils développent. Or cet apprentissage n’est pas du tout aisé. De même, il n’est pas aisé, même pour un programmeur chevronné, de comprendre un programme écrit avec les instructions vectorielles. Il est donc important de trouver un moyen d’abaisser la charge cognitive liée à l’apprentissage des instructions vectorielles et à la compréhension des programmes qu’elles servent à développer. À cet effet, on peut observer que pour expliquer le fonctionnement des instructions vectorielles, les fabricants utilisent souvent des images graphiques et géométriques. Les développeurs ayant créé des programmes avec des instructions vectorielles font de même pour expliquer le fonctionnement de leur programme. Cette technique est de la visualisation, quoiqu’à portée très limitée et juste à titre illustratif dans ces cadres d’utilisation. Sinon, la visualisation est bien étudiée et appliquée dans d’autres domaines de la programmation et de l’informatique en général pour abaisser la charge cognitive, que ce soit pour l’apprentissage ou pour la compréhension de codes sous divers aspects. Toutefois, cette utilisation de la visualisation ne va pas sans poser quelques problèmes épistémologiques, puisque les études de validation de son efficience et de son efficacité se font après coup, sans qu’une hypothèse ait été préalablement formulée.
Nous voulons donc adjoindre des hypothèses cognitives aux conséquences prédictives à la démarche de visualisation. Ensuite, nous dériverons de ces hypothèses un modèle visuel permettant l’apprentissage des instructions vectorielles et la compréhension de codes écrits avec ces instructions. Ce modèle visuel sera implémenté dans un prototype SIMDGiraffe. De cette façon, le test expérimental de SIMDGiraffe permettra non seulement de vérifier son utilité et son utilisabilité, mais aussi de tester la validité de l’hypothèse cognitive, du moins pour l’utilisation de la visualisation dans l’apprentissage et la compréhension de codes informatiques.
Ces travaux contribueront à abaisser la barrière à l’entrée dans la programmation vectorielle et à améliorer qualitativement la méthodologie des techniques de visualisation.


Jury :
M.Hakim Lounis (président du jury)
M. Alexandre Blondin-Massé
M. Julien Mercier
M. Daniel Lemire (directeur de recherche)
M. Serge Robert (codirecteur de recherche)