Nous allons donc maintenant chercher à illustrer les performances que nous obtenons pour les deux procédures décrites précédemment (Par.10.3).
Nous donnons Fig.10.13,une représentation de la loi de Amdahl
pour la procédure en question. Ces courbes sont obtenues par utilisation de
l'outil ATEXPERT de CRAY [23]. La procédure apparaît
au niveau de l'exécution comme étant 100% parallèle, par conséquent en l'absence
d'overhead, on devrait s'attendre sur 16 processeurs à aller 16 fois
plus vite. C'est ce qu'illustre la courbe en pointillé (Loi de Amdahl idéale)
sur la Fig.10.13. En revanche, la deuxième courbe (trait plein)
montre le facteur d'accélération tel qu'il est décrit Par.10.2.5.
Autrement dit, c'est le le temps d'exécution sur processeur rapporté
au temps sur
processeurs. L'écart entre la courbe idéale et cette courbe
attendue provient principalement de l'overhead.
Comme cet overhead provient de différents facteurs, on donne Fig.10.14, la répartition de l'overhead pour 2 nombres de processeurs différents. Sur ces figures, on donne les temps d'overhead en nombre de période d'horloge et le pourcentage de chaque type d'overhead . La signification des overhead les plus importants est la suivante:
Afin de donner une idée des performances vectorielles de notre algorithme de rétroprojection, nous nous sommes intéressés au nombre d'opérations sur des flottants par seconde, exprimé en millions (Mflops). Nous avons accès à ces données par l'utilisation de l'outil JUMPTRACE et JUMPVIEW de CRAY [23]. Nous constatons alors que notre algorithme exécute 47.2 Mflops. Ce chiffre correspond à une performance médiocre quand on compare au 200 Mflops que l'on peut obtenir en crête. Pour modérer notre propos, il ne faut pas oublier que ce chiffre représente une valeur moyenne sur l'ensemble de la procédure de rétroprojection.
D'autre part, les accès mémoires étant pénalisant dans des procédures vectorisées, nous avons tout intérêt dans les parties vectorielles à faire un minimum de référence mémoire pour un maximum d'opérations vectorielles. C'est pourquoi, nous donnons également la valeur de l'intensité calculatoire (IC), qui représente le ratio du nombre d'opérations au nombre de références mémoire. On cherche un ratio supérieur à 1, puisque cela correspond à exécuter plus d'opérations que de références mémoire. Pour notre algorithme de rétroprojection, cette intensité IC vaut 1.69. Cette valeur correspond à un algorithme efficace.
Dans notre procédure de rétroprojection, on pourrait songer à améliorer le nombre d'opérations effectuées par seconde, toutefois il vaut mieux auparavant, regarder le poids de la rétroprojection sur l'intégralité de la reconstruction.
A ce niveau, nous envisageons uniquement la rétroprojection filtrée. On suppose que les vues manquantes ont déjà été estimées et intégrées au sinogramme que nous reconstruisons. Nous donnons Fig.10.15 la représentation de la loi de Amdahl idéale et attendue de notre reconstruction.
Sur cette figure, la diagonale représente le gain de temps que nous pourrions observer pour notre reconstruction en l'absence de partie séquentielle et d'overhead. La courbe en pointillé correspond à la loi de Amdahl idéale. Elle nous renseigne sur l'influence des parties de code s'exécutant de manière séquentielle. La différence entre la courbe en trait pointillé et celle en trait plein, comme précédemment, nous renseigne sur l'influence de l'overhead. Nous voyons qu'il existe une partie de notre reconstruction, exécutée de manière séquentielle, qui freine considérablement notre parallélisation. Cette partie correspond principalement au chargement de notre sinogramme depuis le disque dur. On ne peut pas agir sur cette partie, la lecture sur disque étant principalement une opération séquentielle. Autrement dit, après la parallélisation de la rétroprojection et le gain de temps qui en découle, la reconstruction est principalement freinée par la lecture du sinogramme. La rétroprojection n'est plus la partie pénalisante de notre reconstruction. Cela explique également pourquoi nous n'avons pas cherché à mieux optimiser le nombre d'opérations effectuées par seconde lors de la rétroprojection. L'effort que cela représente n'aurait pas conduit à des résultats significativement plus efficaces. En effet, grâce à la seule parallélisation, le temps pour une rétroprojection filtrée n'est plus prohibitif.
De même que précédemment, nous donnons les lois de Amdahl idéale et attendue (Fig.10.16) pour la procédure de calcul matriciel tel que nous l'avons décrite (Par.10.3.2.5).
Le taux de parallélisme obtenu est excellent, puisque les deux courbes sont proches l'une de l'autre. Peu d'overhead vient freiner le facteur d'accélération. Sur 16 processeurs, nous pouvons nous attendre à ce que le produit matriciel soit effectué 14.6 fois plus rapidement.
Si nous avons choisi de présenter cette procédure, c'est parce qu'elle correspond à plus de 90% du temps lors d'une reconstruction algébrique de type gradient conjugué. Cela se traduit de manière indirecte par une loi de Amdahl sur l'ensemble de la reconstruction (Fig.10.17) fort similaire à celle obtenue pour la simple procédure de calcul matriciel. La part s'effectuant de manière séquentielle dans le programme reste limitée. Le poids de l'overhead conduit donc à une courbe attendue proche dans la forme à celle illustrée Fig.10.16. La parallélisation nous permet pour l'algorithme de reconstruction algébrique un facteur d'accélération supérieur à 13 (le programme va 13 fois plus vite !)
|
Afin de conclure sur la partie optimisation, nous allons donner pour les principaux
programmes utilisés, les temps observés dans une configuration standard. Nous
utilisons les sinogrammes provenant de la caméra ECAT HR+ dont les dimensions
sont
avant rebinning.
Le sinogramme rebinné ne comporte plus qu'un seul segment de dimensions
. Les volumes reconstruits ou utilisés
pour la projection sont ceux habituellement reconstruits par la caméra, dont
les dimensions sont
pour un voxel faisant
. Nous résumons Tab.10.1
les performances des principaux algorithmes que nous avons implémentés sur le
CRAY. Les temps mentionnés correspondent à chaque programme dans son intégralité
(lecture/écriture des volumes de données incluse). La lecture du sinogramme
présentant les dimensions précédemment énoncées prend 50 secondes. Nous avons
déjà vu l'effet que cela pouvait avoir lorsque sur la loi de Amdahl pour la
reconstruction par rétroprojection filtrée. Pour l'algorithme de rebinning FOSA
qui comprend la lecture complète du sinogramme et la réécriture d'un unique
segment, nous avons déjà
pour la lecture/écriture des données.
Cela signifie que le coeur de l'algorithme ne requiert que
. Nous
donnons également les places mémoires que requièrent tous nos algorithmes exprimées
en millions de mots machine (rappelons que le mot machine sur CRAY correspond
à 8 octets). Nous pouvons voir que grâce aux hypothèses envisagées, la taille
mémoire inhérente à une reconstruction algébrique est inférieure à celle d'une
reconstruction standard par rétroprojection filtrée 3D. Il me semble important
de le préciser!
|