11.3.2 : Pourquoi vectoriser ?



De nos jours, la quasi-totalité des ordinateurs qui équipent les centres de calcul permettent la vectorisation. Cette vectorisation permet des accélérations allant d'un facteur $2$ à un facteur $16$ , suivant les architectures et les types de données utilisés. On peut en tirer deux conclusions.

D'une part, les centres de calculs actuels ont d'ores et déjà la possibilité d'effectuer les analyses de physique plus rapidement, sans qu'il y ait lieu d'acheter davantage de matériel. Mais pour cela, un effort devra être fourni pour mettre à niveau les analyses qui en ont besoin.

D'autre part, les analyses non vectorisées utilisent moins de $25\,\%$ des capacités des processeurs des centres de calcul pour les processeurs les plus anciens encore utilisés (SSE 4.2), et moins de $6,25\,\%$ de celles des processeurs les plus récents. Cette inefficacité n'est pas prise en compte par les algorithmes de calcul de consommation CPU couramment utilisés, qui ne font qu'observer le pourcentage du temps pendant lequel un programme s'exécute sur la CPU, ce qui rend l'utilisation réelle des ressources CPU très difficile à estimer.

On pourrait objecter à cette analyse que tous les algorithmes ne se prêtent pas à la vectorisation. Mais c'est le cas de tous les calculs qui manipulent de façon régulière des images, des vecteurs, des matrices, des tenseurs... soit une grande majorité des traitements effectués lors des analyses de physique !

Le cas échéant, il est également possible d'étendre astucieusement la vectorisation à des calculs où son utilisation n'est habituellement pas considérée comme viable, comme la recherche par dichotomie ou les parcours d'arbres.