• Aucun résultat trouvé

Conclusion

Dans le document Université de Reims Champagne-Ardenne (Page 43-46)

Comme montré dans ce chapitre, sat a beaucoup d’applications réelles ou de dé-fis théoriques à relever. Cet axe de recherche intéresse aussi bien les industriels pour la grande variété des problèmes modélisables ainsi que les bonnes performances des solveurs, mais aussi les universitaires pour les aspects fondamentaux. Tout progrès dans les performances de résolution de sat accélère donc de nombreux autres prob-lèmes. De plus sat est apparenté à beaucoup d’autres problèmes, et l’amélioration de satpeut être une piste pour développer de nouveaux algorithmes performants pour ces problèmes (comme par exemple #sat ou Max-sat).satest un domaine de recherche particulier car la recherche expérimentale y a une part non négligeable (par exemple la découverte du phénomène de seuil). D’ailleurs, grâce aux découvertes théoriques mais aussi empiriques, l’algorithmique séquentielle pour sat a fait de grand progrès.

Cependant depuis quelques années les avancées ne sont plus toujours aussi significatives qu’auparavant. De plus, les processeurs d’aujourd’hui n’augmentent plus leur vitesse d’exécution, pour l’instant bloquée à un peu moins de 4 Ghz depuis 2005. Cela fait maintenant 4 ans que les processeurs grand public deviennent petit à petit des pro-cesseurs parallèles en intégrant plusieurs cœurs de calcul. Le parallélisme a toujours été un bon moyen de gagner en vitesse, mais les chercheurs intéressés parsat ont souvent privilégié la programmation séquentielle. Quelques tentatives de solveurssatparallèles existent et fonctionnent plutôt bien, ils seront d’ailleurs développés au chapitre 3. La majorité d’entre eux est restée au stade de projet ou seulement de première version car ils ne sont pas maintenus par leurs créateurs. De plus, ces solveurs sont en général développés pour être exécutés sur des machines parallèles, ce qui limite leur utilisation sur de simples machines de bureau alors que les processeurs grand public deviennent parallèles. Il est dorénavant possible pour tous de tester la validité d’une approche par-allèle plus simplement, sans recourir à de lourdes structures parpar-allèles. Le parallélisme amène plus de flexibilité, plus de possibilités à la manière d’élaborer des algorithmes.

Mais le parallélisme a ses règles, ses notions. Les grands principes du parallélisme sont

donnés au chapitre 2 qui fait office d’explication du parallélisme. Le chapitre 3 dresse une liste des concepts du parallélisme dans le cadre de la résolution de sat. Il y sera abordé les difficultés de paralléliser sat et les solutions apportées par la communauté.

Chapitre 2

Modèles parallèles

2.1 Introduction

Résoudresatrapidement est un défi et depuis que les industriels ont découvert que ce problème pouvait leur être utile, les recherches se sont accélérées. Beaucoup d’inno-vations ont permis d’atteindre de bonnes performances, mais ce n’est jamais suffisant, il existe des problèmes dont la taille ne leur permet pas d’être résolus aujourd’hui, même par les meilleurs solveurs contemporains. Cette affirmation sera vraie tant que la conjectureP 6=N P n’aura pas été contredite (sat est au cœur de cette conjecture car à l’heure actuellesat est dansN P mais pas dansP). Pour autant, un moyen sim-ple d’augmenter les performances d’un algorithme est de l’exécuter sur un processeur plus récent, plus véloce. En effet, d’après la loi de Moore, tous les 24 mois grâce aux avancées scientifiques et aux gravures toujours plus fines des micro-processeurs, ces derniers peuvent recevoir deux fois plus de transistors sur une même surface. Depuis le début des micro-processeurs, jusqu’aux années 2000 cette diminution de la finesse de gravure s’est donc traduite par une augmentation du nombre de transistors mais aussi par une augmentation des fréquences de fonctionnement des micro-processeurs. Cela signifie que dans un laps de temps donné, le nombre d’instructions traitées est plus grand. Depuis environ 2005, cela ne se traduit plus par une augmentation de fréquence mais par l’augmentation du nombre de cœurs. Les programmes séquentiels ne sont donc plus accélérés par une montée en fréquence. En effet, à cause de l’échauffement trop important des micro-processeurs à des fréquences approchant les 4 GHz, les entreprises ne peuvent plus fabriquer de micro-processeurs traditionnels au silicium au-delà de cette vitesse de fonctionnement. Dans le même temps, la loi de Moore est toujours vraie, et il est toujours possible d’augmenter par 2 le nombre de transistors dans un micro-processeur. La réponse à ce dilemme est l’augmentation du nombre de cœurs de calcul au sein du même micro-processeur. Ce sont les processeurs multi-cœurs (ou en anglais « multi-core »). De cette manière, les industriels annoncent toujours doubler la puissance de leurs micro-processeurs, mais les utilisateurs ne voient pas ce gain directe-ment. En effet, la plupart des applications, et le domaine sat ne fait pas exception, sont issues du modèle de programmation séquentiel. Ces programmes sont imaginés

45

pour n’être exécutés que par un seul cœur de calcul. En réalité, pour tirer parti de la puissance de ces nouveaux micro-processeurs, il faut développer dans un autre modèle de programmation : il faut penser parallèle. Ces propos sont repris et détaillés en début de ce chapitre en section 2.2.

Ensuite, ce chapitre donnera les grands principes du parallélisme en commençant par un ensemble de définitions et par le problème de l’équilibrage de charge. Suivra une explication sur les différents modèles d’exécution : une ou plusieurs instructions avec une ou plusieurs données (SISD, SIMD, MISD et MIMD). Dans le modèle le plus utilisé pour résoudre sat, à savoir plusieurs instructions avec plusieurs données (MIMD), nous détaillons les architectures matérielles adaptées. Ces architectures sont CC-UMA, CC-NUMA et NoRMA, les mémoires sont soit partagées soit distribuées.

Nous finirons avec la présentation des différents modèles de programmation PRAM et DRAM qui définissent si le programmeur fait discuter ses processeurs par l’intermédiaire d’une mémoire partagée ou par l’échange de messages. Dans le cas de la mémoire partagée, il est primordial de faire attention à la cohérence des données modifiées par plusieurs processeurs, ce point sera abordé. En résumé, ce chapitre présente les modèles de parallélisme. Le chapitre suivant fera le lien entre le parallélisme et le problèmesat.

Dans le document Université de Reims Champagne-Ardenne (Page 43-46)