• Aucun résultat trouvé

Multicore et Multiprocesseurs

Objectifs de l’unité

Activité 3 Multicore et Multiprocesseurs

Introduction

Depuis la dernière décennie, l’évolution des processeurs étonne.

Ceci est principalement dû à l’augmentation de la densité d’intégration des transistors dans des zones plus petites. A ce niveau d’intégration, il est nécessaire d’exploiter des techniques de parallélisme pour efficacement utiliser le rendement maximal des processeurs.

Pipeline, super scalaire et multithreading, sont des techniques appliquées dans le fonctionnement en parallèle pour augmenter les performances.

Dans cette activité, seront analysés les systèmes multi-processeurs et multicœur.

Détails de l’activité Multicore ou multicoeur

Le terme utilisé pour décrire l’utilisation de plus d’un noyau dans un processeur. Chaque noyau a son propre cache indépendant et exécute des programmes en parallèle sans interférer avec l’autre traitement.

Leur logique est basée sur la subdivision d’un seul processeur, comme cela a été utilisé au cours des dernières années, dans les petits processeurs pour traiter la consommation d’énergie et la dissipation de la chaleur d’un processeur comme ils ont été développés avec des systèmes plus intégrés (Alves, 2015).

Architecture multicore

Une des architectures utilisées par multicolore est connue comme le multitraitement simultané (SMP), qui est d’avoir plusieurs cœurs du partage des mémoires restantes pour les niveaux inférieurs (Douglas, 2015) du processeur, il favorise l’utilisation de plusieurs processus et les threads provoquant ainsi l’augmentation des machines.

L’architecture elle-même utilisée par multicolore ne se différencie pas avec l’idéologie de l’architecture de Von Neumann qui est utilisée dans une seule couleur, le multi-cœurs conserve la même interaction processeur-mémoire dispositif d’entrée / sortie, la logique de son fonctionnement sera le même, la différence entre les deux modèles est la quantité de noyaux qui travaillent dans l’unité centrale de l’ordinateur en utilisant une mémoire partagée.

Les multicolores suggèrent afin de maintenir les performances de traitement élevées des machines sans avoir à investir dans leurs systèmes de refroidissement, en raison du chauffage par la grande vitesse et la fréquence que les instructions ont été traitées par la CPU. Avec l’émergence de cette nouvelle ligne d’assemblage des différents processeurs de programmes peuvent fonctionner simultanément et permet l’utilisation d’un nouveau concept qui est la programmation parallèle, qui tire pleinement parti des avantages de threads disponibles.

Performances du multicore

L’utilisation de plus d’un noyau en multicore les amène à augmenter la vitesse de traitement par impulsion d’horloge, le traitement des données de partage entre la couleur et optimiser les performances de certaines tâches et de réduire la période de mise en œuvre. Le temps d’exécution du processeur pour un programme est donné par le rapport de ses cycles d’horloge par la fréquence d’horloge, ce qui augmente la vitesse d’horloge augmente par conséquent le temps d’exécution.

L’architecture multicolore offre une augmentation de la performance des données, deux des facteurs qui aident à cette augmentation est l’utilisation du multi-threading et de la programmation parallèle.

Multi-threading (MT):

Le concept consiste à une planification des programmes qui sont en cours d’exécution à être traitées par le processeur, comme le travail multicœur avec plus d’un noyau dans ses processeurs.

Cette activité est définie par le multi-threads et a l’analyse des programmes distribués entre cœur.

Pour améliorer le fonctionnement multicore, il a été développé une technique appelée simultaneous multithreading (SMT) et qui est destinée à exécuter plusieurs threads en évitant simultanément les déchets de traitement horizontal (unités fonctionnelles non utilisées), il interprète qu’il existe plusieurs programmes en cours d’exécution, et maximiser l’utilisation des unités fonctionnelles des fils augmente les programmes IPC et de ce fait les performances du processeur (Alves, 2015). SMT permet aux threads d’être traités en parallèle dans chaque noyau, le processeur effectue généralement les fils d’instruction de chaque cycle de traitement, quand il est sur les pistes de secours en parallèle d’un autre thread, par exemple:

Alors que le processeur attend qu’une exécution à virgule flottante soit terminée d’autres instructions peuvent être exécutées dans des threads entiers.

Programmation parallèle :

Le concept de programmation parallèle est de considérer un programme comme un ensemble de pièces qui peuvent être résolus en même temps, sa construction est faite de façon séquentielle, mais est fait de telle sorte qu’il peut être exécuté en parallèle par différents processeurs. L’illustration est donnée par la figure suivante :

Les programmes informatiques parallèles sont logiquement fait différemment par rapport aux séquentiels et sont plus complexes, parce que la communication et la synchronisation des sous-tâches devient un obstacle au développement de bons programmes. Le programmeur doit être prudent pour savoir quoi et quand les instructions seront exécutées en parallèle, dans cet ordre et régler le niveau de parallélisme (Alves, 2015).

Actuellement, il existe 4 types de programmation parallèle: en bits, en instruction, des données ou des tâches, qui sont déterminées par:

• En bits: il est dû à l’augmentation du nombre de bits d’une instruction (un mot), ce qui augmente les bits et diminue le nombre d’instructions

• Instruction: réordonner les instructions de sorte à ne pas changer le résultat, de sorte qu’ils font la plupart des étapes organisées par pipeline (traitement des risques)

• Donnée: utilisation des boucles de façon intelligente et correcte dans laquelle une boucle ne dépend pas de données à partir des obligations antérieures qui doivent encore être calculées

• Tâche: Évitez de multiples calculs à effectuer par le même ensemble de données

• Les principales raisons pour lesquelles nous utilisons la programmation parallèle sont de résoudre des processus plus complexes avec une plus grande facilité et de réduire le temps de résolution d’un problème. Il induit la fausse croyance que son utilisation, peut dupliquer les performances d’exécution de ses instructions, mettre une petite partie du programme qui ne peut être parallélisé limitera cette performance, il est toujours bon d’être à la recherche de parallélisme dans le code pour obtenir le maximum d’avantages que cette technique offre.

Multitraitement

C’est la capacité d’un système d’exploitation d’exécuter simultanément deux ou plusieurs procédés. Elle suppose l’existence de deux ou plusieurs processeurs. Elle diffère de multitâche, car cela simule la concurrence, en utilisant des ressources multiples, la principale étant le partage entre plusieurs processus du temps d’utilisation du processeur.

Aujourd’hui, les multiprocesseurs sont généralement présents sur la même carte physique et connectés via une interface de communication à grande vitesse comme le montre la figure ci-dessous :

Caractéristiques du multitraitement

Un système multiprocesseur a les caractéristiques suivantes :

• Implique deux ou plusieurs processeurs physiques (si noyaux distincts ou multiples sur la même puce de processeurs encapsulés) ou logique (processeur (s) avec la technologie Hyper-Threading d’Intel) avec la même puissance de calcul et chacun capable d’exécuter les processus de manière autonome. Cela implique qu’il n’y a pas d’unité de commande “central” ; chaque processeur possède sa propre unité de contrôle. Ainsi, de manière efficace, la logique de commande est distribuée par le système.

• Les processeurs partagent un seul espace d’adressage mémoire.

• Le système matériel dans son ensemble est géré par un système d’exploitation unique.

• Le système d’exploitation qui prend en charge le multitraitement devrait être en mesure de :

• multitâche de soutien;

• Maintenir plusieurs rangées de processus, un pour chaque processeur.

L’architecture multitraitement

Les systèmes multiprocesseurs peuvent être de deux types :

• Multitraitement symétrique (Symetric Multi-Processing) : les processeurs partagent la même mémoire, bien qu’ils aient des caches séparées. Le système d’exploitation doit être prêt à travailler avec des caches cohérentes et surtout éviter les conditions de course dans la mémoire principale.

• Accès mémoire non uniforme (Non Uniform Memory Access) : chaque processeur est associé à une base de mémoire. Dans ce cas, le système d’exploitation traite chaque banque séparément, car chaque banque a un différents coûts d’accès, en fonction du processeur auquel il est associé et qui est en cours d’exécution du processus qui tente d’accéder à la mémoire.

Conclusion

Les systèmes multiprocesseurs sont moins complexes que les systèmes multicœurs parce qu’ils sont des puces essentielles uniques reliées entre elles. L’inconvénient des systèmes multiprocesseurs est qu’ils sont coûteux, car ils nécessitent plusieurs puces qui sont à leurs tours plus chers qu’une solution à une seule puce.

Avec l’avènement du multicoeur, on assiste à de nouvelles façons de traiter les données par l’ordinateur, offrant une vaste zone de recherche pour le développement de procédés pour améliorer les machines de traitement de plus en plus.

Cette technologie a fourni une nouvelle vision de la direction de la façon dont l’information des professionnels de la région devrait être prête à gérer les nouveaux programmes de développement des médias, ce qui provoque une grande vision pour l’émergence de logiciels et de meilleurs systèmes de qualité.

RESUME DE L’UNITE

Dans cette unité, nous avons examiné la taxonomie Flynn qui couvre quatre classes d’architectures informatiques : SISD, SIMD, MIMD MISD.

Nous avons analysé à quelle vitesse une tâche sera exécutée lors de l’utilisation d’un ordinateur avec une certaine amélioration sur l’ordinateur actuel, et nous analysons comment calculer les gains d’efficacité et de performance quand on change tout élément ou dispositif.

Nous avons également vu que les systèmes multiprocesseurs sont moins complexes que les systèmes multicœurs parce qu’ils sont des puces essentielles uniques reliées entre elles.

L’inconvénient des systèmes multiprocesseurs est qu’ils sont coûteux, car ils nécessitent plusieurs puces qui sont à leurs tours plus chers qu’une solution à une seule puce.

Documents relatifs