• Aucun résultat trouvé

Dans ce chapitre nous avons présenté une généralisation d’un mécanisme de multi-plication matricielle ABFT basé sur les codes linéaires qui est adapté à l’utilisation sur les plate-formes de calcul P2P. Le protocole proposé permet de tolérer le comportement erratique des réseaux P2P. Lorsque l’on considère le calcul exact, l’utilisation des codes Reed-Solomon fournit une tolérance aux fautes, non seulement dans le cas de déconnex-ions de pairs, mais également dans le cas d’erreurs par valeur (même dans le cas de pairs malicieux). Pour les calculs sur les flottants, l’utilisation des codes LDPC permet de tolérer des fautes par déconnexion avec des algorithmes d’encodage et de décodage à complexité linéaire.

Nous projetons d’utiliser ce protocole afin de réaliser une implémentation dans le contexte du calcul exact sur une plate-forme de calcul distribué tel que Grid5000.

L’étude du décodage des codes LDPC dans le cas d’erreurs par valeur dans un contexte de calcul flottant constitue un axe de recherche possible. De plus il serait intéressant de trouver des mécanismes d’ABFT adaptés à d’autres opérations que celles de l’arithmétique des matrices. On pourra par exemple citer l’exemple de la plateforme P2P “seti@home” qui effectue principalement des transformées de Fourier rapides (FFT) et dont l’efficacité pourrait être grandement améliorée par l’emploi d’un système ABFT adapté aux FFT.

Quatrième partie

Conclusions et perspectives

Chapitre 12

Résumé des contributions et

perspectives

Ce chapitre résume mes contributions et identifie les perspectives jugées les plus pertinentes.

12.1 Codes et codecs hautes performances pour le canal

à effacements

12.1.1 Décodage hybride IT/ML

Une description du décodage hybride IT/ML par élimination de Gauss a été effectuée, et une discussion approfondie de l’implémentation optimisée de cet algorithme a été présentée. Les résultats montrent que le décodage hybride IT/ML des codes LDPC de longueur courte et moyenne permet d’obtenir d’excellentes performances. Ces résultats confirment le fait que les capacités de correction des codes LDPC sont sensiblement améliorées par l’utilisation du décodeur ML et qu’elles s’approchent de celles des codes parfaits. De plus grâce à une implémentation judicieuse du décodeur ML, la complexité du décodage est suffisamment faible pour obtenir des débits élevés bien souvent proches de ceux obtenus par décodage IT. Enfin, l’utilisation d’un décodeur hybride permet de réduire encore cette complexité tout en offrant une grande flexibilité au niveau du récepteur. En effet, à partir d’un même code le récepteur pourra choisir dynamiquement le compromis optimal entre les performances de correction et la complexité de décodage.

Travaux futurs : Nous voyons trois grandes pistes afin d’améliorer les codecs reposant sur le décodage hybride IT/ML.

Les codes travaillant sur le corps fini F2pétant équivalents à la mise en parallèle de p codes travaillant sur F2(voir section 2.3.3), il serait intéressant de décomposer le décodage de manière à ne travailler que sur un sous-ensemble des p mots de codes à la fois. Ceci permettra de réduire la taille de la mémoire de travail et également d’accélérer le décodage en réduisant les temps d’accès en lecture/écriture aux données, dont le coût peut facilement devenir un goulot d’étranglement.

Une seconde voie d’amélioration serait de paralléliser les algorithmes afin de bénéficier du gain potentiel offert par les architectures multi-coeurs et/ou GPGPU. Il sera possible 163

de conduire les recherches suivant deux axes, la conception du décodeur, mais aussi la structure du code. En effet des codes structurés tels que les codes quasi-cycliques peuvent supporter des opérations effectuées en parallèle.

Enfin, le décodage ML ne réussissant pas à chaque tentative, en cas d’échec, il faut retenter un nouveau décodage avec les nouveaux symboles reçus par la suite, le cas échéant. Dans la version actuelle du codec, ceci nécessite de recommencer le décodage depuis le début. Il serait intéressant de pouvoir exploiter les opérations effectuées par la précédente tentative de décodage ML afin de réduire la complexité du décodage. On pourra par exemple s’inspirer des algorithmes de “décomposition LU incrémentale” [92] pour lesquels l’ajout de lignes et de colonnes à la matrice à décomposer ne nécessite pas de reprendre la décomposition depuis le début.

12.1.2 Adaptation des codes LDPC-staircase au décodage hybride

IT/ML

Nous avons ensuite démontré le potentiel des codes LDPC-staircase lorsqu’ils sont décodés avec un décodeur hybride IT/ML. Les résultats présentés montrent que ces codes possèdent des capacités de correction très proches de celles des codes Raptor. Grâce au contrôle du paramètre N1, il est possible d’adapter les performances du code en fonction du type de décodeur disponible au niveau des récepteurs. Cette fonctionnalité renforce la flexibilité du décodage hybride IT/ML, puisqu’elle permet de choisir entre les performances en décodage IT (capacités de correction moyennes mais vitesse élevée) et les performances du décodage ML (capacités de correction très proches de l’optimal au prix d’une vitesse réduite). Un enseignement est qu’un code très simple permet d’offrir des performances extrêmement intéressantes avec un codec bien implémenté. Ce résultat renforce l’idée que codes et codecs doivent être conçus de pair.

12.1.3 Codes LDPC-Band

Une nouvelle classe de codes LDPC structurés, appelés LDPC-Band, a été présentée. La structure bande de leur matrice génératrice permet une réduction de la complexité du décodage ML, tandis que leur matrice de parité, creuse, permet un décodage itératif efficace. Ces codes sont ainsi parfaitement adaptés au décodeur hybride IT/ML. Les résultats montrent que ces codes possèdent des capacités de correction légèrement inférieures à celles des codes non structurés, mais grâce à leur structure bande, la vitesse du décodage ML est améliorée jusqu’à un facteur cinq.

Ces travaux ont été effectués en collaboration avec Alexandre Soro et Jérôme Lacan de L’ISAE.

Travaux futurs : En conservant l’idée d’une structure bande pour réduire la complexité du décodage ML, il serait possible de construire un code “Repeat-Accumulate” possédant une structure bande dans la partie gauche de la matrice de parité. Le décodage ML sera alors effectué sur la matrice de parité, après une permutation appropriée des colonnes, afin que cette matrice exhibe une unique bande (en effet, les deux sous-matrices de la matrice de parité sont chacune des matrices bandes). La structure bande du système à résoudre permettra une réduction de la complexité du décodage ML. De plus, la simplicité de la