• Aucun résultat trouvé

Réglages des paramètres de l’algorithme Partial-Block BiCGStab

CHAPITRE 5 APPROCHES ITÉRATIVES PAR BLOCS POUR LA RÉSOLUTION

5.3 Amélioration du Block-BiCGStab pour une architecture multi-cœurs

5.3.2 Réglages des paramètres de l’algorithme Partial-Block BiCGStab

Le principe de l’algorithme Partial-Block BiCGStab est élémentaire mais, tout comme Block- BiCGStab, plusieurs paramètres doivent être ajustés pour que la résolution des systèmes linéaires en TMO ait un comportement stable. Les paramètres à régler sont le nombre de groupes et la répartition des sources dans ces groupes. De plus, comme pour Block-BiCGStab, l’initialisation joue un rôle important. Nous verrons ici comment ajuster ces paramètres. Nous ne parlerons pas des autres paramètres (matrice fR0, tolérance) puisque ceux-ci restent

les mêmes que pour la résolution par Block-BiCGStab.

Réglage du nombre de groupes

On peut voir l’algorithme Partial-Block BiCGStab comme une généralisation des approches BiCGStab et Block-BiCGStab. Le nombre de groupes P est le paramètre qui permet de contrôler la balance entre les deux : si l’on prend P = 1, cela signifie qu’on résout tous les systèmes linéaires conjointement, ce qui correspond au Block-BiCGStab. À l’opposé, si P = NS, chaque groupe contient un seul système ; cela revient à résoudre tous les systèmes

indépendamment, ce qui correspond au BiCGStab. Le choix du nombre de groupes P est donc un compromis entre les atouts du Block-BiCGStab et les capacités de parallélisation du BiCGStab en fonction du nombre de cœurs disponibles. Pour bénéficier des avantages d’une machine multi-cœurs, nous montrerons dans la sous-section 5.3.3 qu’il est nécessaire de séparer les systèmes en un nombre de groupes égal au nombre de cœurs disponibles : si par

exemple Nc cœurs sont disponibles sur une machine, nous choisissons de diviser les systèmes

en P = Nc groupes.

Il est logique d’affirmer que plus le nombre de cœurs disponibles est élevé, plus la résolution des NS systèmes sera rapide. C’est par exemple le cas dans Abubakar et al. (2012a) où les

auteurs utilisent 128 cœurs pour résoudre les nombreux systèmes. Idéalement, avoir autant de cœurs que de systèmes à résoudre serait la configuration la plus efficace : chaque système serait résolu par BiCGStab sur un cœur différent (Golnabi et al., 2011). En revanche, l’utilisation d’un ordinateur avec suffisamment de cœurs (voire un supercalculateur) nécessite des coûts importants et n’est pas à la portée de tous les utilisateurs. C’est pourquoi l’approche Partial- Block BiCGStab est la solution adaptée à des machines courantes de l’ordre de quelques cœurs, voire une dizaine de cœurs.

Répartition des sources dans les groupes

Une fois le nombre de groupes P fixé, nous proposons de répartir astucieusement les systèmes dans les groupes. Comme il a été vu dans la section 5.2.2, deux sources proches peuvent entraîner des difficultés dans la résolution dues aux matrices A et B mal conditionnées. Pour éviter cela, nous proposons que la répartition des sources dans les groupes soit réalisée de façon à ce que les sources d’un même groupe soient le plus éloignées les unes des autres. Cela permet d’avoir une corrélation faible entre les vecteurs des champs incidents einc

i pour un

même groupe.

Déterminer la répartition optimale des sources en P groupes de façon à avoir la corrélation intra-groupe la plus faible est un problème d’optimisation combinatoire complexe. Cependant en pratique, les sources sont réparties selon une structure régulière : sur des cercles ou des sphères autour du domaine à imager par exemple. Dans le cas de sources réparties sur des cercles, une solution simple et suffisante est de créer des groupes en prenant une source toutes les P sources sur ces cercles. Bien que la répartition ne soit pas garantie d’être optimale, en pratique la distance entre les sources d’un même groupe est suffisante pour avoir un faible conditionnement dans les P groupes. Par exemple, on reprend le montage de l’objet simulé, présenté en 5.2.3, où 160 antennes sont réparties sur cinq cercles. La figure 5.5 présente la répartition des sources en P = 4 groupes. Les sources d’un même groupe sont suffisamment éloignées les unes des autres ce qui permet d’obtenir une corrélation relativement faible entre elles. Dans le cas de sources réparties sur une sphère, il est possible de reprendre la même répartition afin d’éviter d’avoir deux sources proches dans le même groupe. Selon l’espacement des sources sur la sphère, il peut être plus judicieux de suivre l’ordre selon les méridiens ou les parallèles. Ces deux types de montage (cercles, sphère) représentent la majorité des montages

en TMO. −0.2 −0.1 0 0.1 0.2 0.3 −0.2 −0.1 0 0.1 0.2 0.3 −0.25 −0.2 −0.15 −0.1 −0.05 0 0.05 0.1 0.15 0.2 0.25 X (en m) Y (en m) Z (en m)

Figure 5.5 Schéma de représentation du montage simulé pour l’application de l’algorithme Partial-Block BiCGStab où les sources sont partitionnées en P = 4 groupes. Chaque symbole représente un groupe.

Réglage de l’initialisation

On rappelle que dans le cas du Block-BiCGStab (P = 1), la corrélation de l’initialisation est corrigée en ajoutant une composante aléatoire. A l’opposé, pour le BiCGStab (P = NS), il

n’est pas nécessaire de décorréler les initialisations car les résolutions sont indépendantes. La question de l’initialisation pour Partial-Block BiCGStab se pose alors.

Plus le nombre de groupes P est grand, plus les sources dans un même groupe sont ainsi éloignées les unes des autres et donc plus la corrélation est faible entre les vecteurs champs incidents einc

i d’un même groupe. Il semble donc naturel de se dire que plus P est grand,

aléatoire tel que nous l’avons proposé en 5.2.2. Il est difficile de fournir une solution “clé en main” pour l’initialisation du Partial-Block BiCGStab car cela dépend du nombre de groupes, de la répartition des sources et de la géométrie du montage d’acquisition. Afin d’assurer la convergence des P résolutions, nous avons fait le choix d’initialiser de la même façon que dans le cas de Block-BiCGStab, c’est-à-dire d’ajouter un bruit complexe gaussien de façon à avoir un RSB de 50 dB. Ce choix reste empirique mais a montré de bonnes performances avec l’algorithme Partial-Block BiCGStab.