17
Le parallélisme Du superordinateur au processeur graphique Concept de base : La simultanéité d’exécution : Le parallélisme en informatique réfère au concept de diviser un problème à résoudre en plusieurs morceaux plus petits qu’on peut faire en même temps. Le parallélisme existe à presque tous les niveaux en informatique : de « bit-level » jusqu’au parallélisme de tâche dans une fonction. De plus, nous pouvons distinguer les différents types de parallélisme qui est supporté baser sur le nombre de machines sur lequel on effectue des calculs en simultanée. D’une machine de bureau bien ordinaire, nous pouvons ensuite passer aux superordinateurs qui prennent souvent l’espace d’un étage au complet pour ensuite nous retrouver avec des grilles informatiques ou même un programme massivement parallèle, qui compte sur des milliers d’ordinateurs à travers la planète pour effectuer des calculs extrêmement complexes.

stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

Le parallélismeDu superordinateur au processeur graphique

Concept de base :La simultanéité d’exécution :

Le parallélisme en informatique réfère au concept de diviser un problème à résoudre en plusieurs morceaux plus petits qu’on peut faire en même temps. Le parallélisme existe à presque tous les niveaux en informatique : de « bit-level » jusqu’au parallélisme de tâche dans une fonction. De plus, nous pouvons distinguer les différents types de parallélisme qui est supporté baser sur le nombre de machines sur lequel on effectue des calculs en simultanée. D’une machine de bureau bien ordinaire, nous pouvons ensuite passer aux superordinateurs qui prennent souvent l’espace d’un étage au complet pour ensuite nous retrouver avec des grilles informatiques ou même un programme massivement parallèle, qui compte sur des milliers d’ordinateurs à travers la planète pour effectuer des calculs extrêmement complexes.

Page 2: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

Efficience et Limites :Dans un monde idéal, l’accélération du programme due à la parallélisation devrait être de façon linéaire c.-à-d. 2 fois plus de processeurs pour une tâche coupent le temps d’exécution de moitié. Mais malheureusement, peu de programmes peuvent espérer d’être proches d’atteindre ce niveau de performance. La loi suivante explique en partie ce qui empêche un programme d’être résolu en 0 seconde s’il avait accès à un nombre infini de processeurs.

Loi d’Amdahl :

La loi d’Amdahl, nommé après l’architecte informatique Gene Amdahl, est un modèle mathématique servant à décrire l’augmentation de vitesse qui est attendue lorsqu’on essaye de paralléliser un programme. Cette loi fonctionne sous la supposition que la taille du problème à résoudre reste pareille même après la parallélisation du programme cible. La loi stipule que l’accélération d’un programme informatique est limitée par le temps nécessaire à l’exécution de la partie séquentielle (donc non parallélisable) du programme. Par exemple, si un programme nécessite 20 heures pour être exécuté avec un processeur à simple cœur et que la partie séquentielle du programme prend 1 heure à exécuter, et que les 19 heures restantes sont divisibles pour être ensuite traité en parallèle, alors le temps d’exécution du programme est de minimum 1 heure et ce, peu importe le nombre de processeurs que l’on ajoute pour le programme. L’accélération est donc de 20 fois, comme l’indique l’image ci-dessous :

Page 3: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

Cette loi n’est pas une référence absolue pour prévoir l’efficacité de la parallélisation d’un programme, car elle ne tient pas en compte les autres systèmes complémentaires qui peuvent contribuer à accélérer les calculs des processeurs existants tels que la RAM ou les disques durs.

Parallélisme : De processeur à multiples modules à des processeurs multiples cœurs :Dans le marché des microprocesseurs, l’amélioration de la performance est arrivée à une limite vers les années 2000. Les 2 plus grandes corporations de ce domaine, Intel et AMD, ont alors passé à la prochaine étape logique, qui consiste à introduire des microprocesseurs à cœur multiples sur le marché des PCs. La route favorisée par les 2 entreprises pour en arriver là s’est séparée à ce stade.

Page 4: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

Pour Intel, avec ses énormes capacités de manufactures, les changements drastiques comme ceux-ci doivent être échelonnés dans le temps et bien planifier. Ils ont donc commencé par adapter un produit qui était déjà en production. Le microprocesseur Pentium D est le premier résultat de cette approche. Il s’agit d’un processeur composé de puces séparées, joint par la suite pour en faire un processeur à double cœur. En même temps, Intel annule la microarchitecture qui allait remplacer celle du Pentium 4 puisqu’elle suivait encore l’ancienne philosophie d’augmentation des performances avec la montée de la fréquence du CPU. Avec l’introduction de la série Intel Core, le géant américain a mis le premier pas vers le futur que nous connaissons aujourd’hui. En ce qui concerne AMD, ils ont pris un chemin différent pour avoir un processeur à 4 cœurs. Au lieu de livrer un processeur composé de modules séparés, ils ont préféré attendre et retarder le lancement du nouveau produit. La stratégie n’a pas était très profitable pour l’entreprise, car le produit final n’a pas était aussi rapide que ceux d’Intel.

Motivations technologiques :

La limite de l’augmentation de la fréquence des CPUs :

Avec la montée graduelle de la quantité d’information à traiter, les processeurs avaient besoin d’être de plus en plus rapides avec le temps. Mais la physique des matériaux nous empêche de continuellement faire croitre la fréquence d’exécution d’un processeur, car en augmentant la fréquence, la consommation électrique augmente aussi, souvent au détriment de la génération de chaleur qu’il faut alors évacuer. Intel avait avec eux un exemple gênant de ce phénomène avec le processeur Pentium 4 des années 2000. Les fréquences de cette série de processeurs, certes élevés, ne servaient pas vraiment à l’accélération des calculs due à

Page 5: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

l’architecture de ce processeur. De plus, la technologie de Hyper-Threading avait été nouvellement introduite comme étant une caractéristique qui révolutionnera le marché des processeurs en utilisant les cycles inutilisés du processeur. Elle n’a pas eu l’effet escompté et est même reprochée pour ralentir les logiciels de l’époque puisqu’elles n’étaient pas optimisées pour profiter de cette nouvelle technologie.

Applications diverses :

Processeur multicoeur/ Technologie Hyper-Threading :

« die shot » d’un CPU moderne (Intel Haswell)

Dans la plupart des ordinateurs personnels récents, le processeur central est composé de plusieurs cœurs, de 2 à 6, permettant au système d’exploitation d’effectuer les multiples tâches qui lui seront demandées en simultané. De plus, avec le système de Hyper-Threading d’Intel, le système d’exploitation reconnait le processeur comme s’il contenait 2 fois le nombre de cœurs, puisqu’il est capable de communiquer avec 2 cœurs logiques à la fois. Cette technologique permet de passer 2 fils d’exécution (thread) dans un cœur

Page 6: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

puisqu’il duplique le registre de données et de contrôle du cœur simple. Avec l’ajout d’un contrôleur d’interruption, il permet l’exécution de 2 threads en simultané, donnant une impression de rapidité à l’usager.

Processeur graphique (GPU) :

Schéma de l’architecture d’un processeur graphique moderne (Nvidia GK110)

Dans la génération des images en temps réel sur un PC, les calculs à effectués ne sont généralement pas très complexe, mais requière qu’ils soient calculés rapidement et en très grandes quantités. Pour afficher les pixels à l’écran, il faut que des shaders soient utilisés pour effectuer les calculs nécessaires. Au début, un processeur graphique possédait 3 types différents de shader : les vertex shaders font les calculs au niveau des transformations et des éclairages, les geometry shaders font les calculs au niveau des polygones et de leurs transformations et les pixels shaders font

Page 7: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

les calculs de la couleur du pixel individuel. Au fil du temps, les avancées technologiques ont permis que les fabricants de GPUs, comme Ati et Nvidia, de créer des shaders unifier qui sont capable de faire le travail des 3 différentes sortes de shaders, selon les besoins d’un programme. Avec la loi de Moore, le nombre de transistors qui est possibles de placer sur une puce a explosé et avec cela, la demande du niveau de fidélité en animation par ordinateur aussi. De plus, avec l’augmentation progressive de la résolution d’un écran (et donc du nombre de pixels à calculer), les GPUs se font de plus en plus puissants et la quantité de shaders unifié ne cesse que d’augmenter.

Folding@Home :

Une simulation d’une protéine en repliement

Les projets de calcul réparti, tel que Folding@Home, permettent à des gens ordinaires de contribuer leur puissance de calcul non utilisé pour des causes scientifiques. Lorsque nous utilisons notre PC à la maison, il est rare que nous ayons besoin de toute la puissance du poste. Il est donc possible d’utiliser cette « ressource » pour des projets qui en ont besoin, comme Folding@Home, qui utilise les ordinateurs pour simuler les différentes façons

Page 8: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

qu’une protéine puisse se replier. En sachant comment une protéine se replie, les chercheurs sont alors capables de guérir certaines maladies comme la maladie d’Alzheimer. Fonctionnement de Folding@HomePour se joindre au programme, il nécessaire premièrement de choisir quel client de calcul nous voulons utiliser. Nous pouvons utiliser le client qui est dédié pour GPU, créé pour utiliser à pleine capacité l’architecture massivement parallèle d’un GPU. Sinon, il existe aussi le client de base, conçu pour être raisonnablement efficace sur un processeur moderne. Lorsque le choix est fait et que le client choisi est téléchargé et installé, le client se connecte alors aux serveurs basés à l’Université de Stanford pour télécharger une unité de travail (work unit) qui sera calcul pour les prochaines heures. Après la fin du calcul, le « work unit » sera téléchargé vers les serveurs pour être examiné par les chercheurs du projet. Le client répètera alors les étapes précédentes. En fonctionnant sur ce principe, les chercheurs ont été capables de simuler des centaines de milliers de repliements de protéines pour faire avancer la recherche sur certaines maladies.

Prédiction de la météo :

Simulation des vents dans l’océan atlantique

Page 9: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

Avec l’avance de la puissance de calcul des superordinateurs, il est possible de nos jours de faire des prédictions météorologiques assez fiables pour plusieurs journées dans le futur. Ces prédictions se font grâce à des superordinateurs qui exécutent des modèles de simulation de climats sur une période de temps définie. Ce genre de prédiction est très demandant en puissance de calcul pour avoir des résultats utiles, car le nombre de variables (ici le nombre de molécules d’air dans la région à calculer) qui peuvent changer est astronomique. De plus, à cause du grand nombre de molécules à simuler, il y a une encore plus grande quantité de probabilité à chaque mouvement d’une molécule. Compte tenu de la limite de calcul des superordinateurs actuels, nous ne sommes pas capables de prédire la météo avec une grande précision plus de 2 à 3 jours. Des chercheurs pensent que grâce à l’augmentation de rapide de la puissance dans les superordinateurs, nous serions capables de simuler avec précision la météo pour une période d’une semaine à la fois.

Simulations diverses :

Simulation d’une explosion nucléaireDepuis plusieurs dizaines d’années, les superordinateurs ont servi à simuler des scénarios qui sont soit impossible à réaliser en laboratoire, parce qu’ils sont entièrement imaginés (par exemple des scénarios de physique théorique), soit qu’il est rendu impraticable d’essayer de reproduire dans notre monde (par exemple les tests d’ogives nucléaires). En créant des

Page 10: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

modèles informatiques qui sont capables de simulé ces scénarios, nous pouvons compter sur ces superordinateurs de donner aux ingénieurs et aux chercheurs une bonne idée sur comment leurs projets se comporte sans avoir à tester une ogive nucléaire par exemple. De plus, en expérimentant certains aspects d’une théorie en physique par exemple, on peut infirmer ou confirmer la validité de ladite théorie. Bien entendu, pour faire fonctionner un modèle informatique sur un superordinateur nécessite des données. Ces données peuvent atteindre une taille gigantesque lorsqu’il est question de simuler un modèle complexe, tel que le climat futur de la planète en entier.

Infonuagique (informatique en nuage) :

Siri, Google Voice search

Avec la démocratisation de l’accès internet pour la majorité de la population, il est devenu de plus en plus intéressant de créé une plate-forme de logiciel qui serait accessible par le web. De plus, en enlevant le besoin de la puissance de calcul sur les bras de l’usager, les concepteurs de logiciel ont pu imaginer une nouvelle gamme de logiciel qui n’aurait pas était possible auparavant, simplement parce qu’il était impossible d’avoir accès à une telle puissance de calcul pour chaque utilisateur. Selon la définition du National Institute of Standards and Technology (NIST), le « Cloud computing », l’informatique en nuage, est l'accès via un réseau de télécommunications, à la demande et en libre-service, à des ressources informatiques partagées et configurables. Un exemple très simple de ce phénomène serait le traitement du langage naturel (oral) pour remplacer le clavier dans le cadre de l’écriture d’une requête. Il n’était pas envisageable il y a 20 ans qu’un simple

Page 11: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

rectangle dans nos mains soit capable de nous comprendre, mais tel est la réalité d’aujourd’hui. Avec les systèmes de compréhension de langage naturel, telle que l’assistant virtuel « Siri » d’Apple ou la recherche par conversation de Google, notre requête auditive n’est pas traitée sur place, mais bien dans des centres gigantesques où l’application aura l’énorme puissance de calcul nécessaire pour la comparaison et le déchiffrement de notre demande.

Centre de traitement de donnée de Facebook en Iowa, États-Unis

Dans un autre ordre d’idées, la popularité des sites de réseau social a aussi nécessité de l’aide au domaine du parallélisme. Le site de Facebook, par exemple, doit gérer environ 100 milliards de requêtes de ressources diverses dans le cadre d’une seule journée. Le site est capable de supporter ce régime d'enfer, car il est supporté par plusieurs centres de traitement de

Page 12: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

données à travers la planète. Tous ces centres sont équipés d’un grand nombre de serveurs qui sera capable de répondre dans un délai raisonnable les requêtes dirigées vers elles

Le futur du parallélismeRéseau de neurones artificiels :

Ce modèle de calcul est conçu pour ressembler de très près au réseau de neurones dans un cerveau. Il est intéressant puisqu’il représente une direction très probable de développement dans le domaine de l’intelligence artificielle. Pour l’instant, les réseaux sont créés en reliant des postes entre eux et en les programmant de sorte qu’ils puissent « apprendre » de leur erreur.

Distribution des calculs :

Page 13: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

Grâce à l’augmentation continue de la vitesse des transferts de données sur une distance, il est plus en plus question de centraliser les processeurs de grande puissance et de partager le temps d’utilisation de ces miniserveurs. Nvidia et Intel essayent de commercialiser ces produits en ce moment même, courtisant les petites entreprises qui ne sont pas capables de fournir un poste de 10000$ par designer juste pour calculer des rendues d’images par exemple. Cette approche ressemble étonnamment au partage de temps de calcul d’un superordinateur.

Page 14: stagesinfo.cmontmorency.qc.castagesinfo.cmontmorency.qc.ca/stages/rapports/H14/prog/... · Web viewAvec l’introduction de la série Intel Core, le géant américain a mis le premier

La Xbox One de Microsoft

Dans le même ordre d’idée, le domaine du jeu vidéo s’est aussi joint à la frénésie du « cloud computing ». Dans la nouvelle version de la Xbox, il a était question que certains calculs, qui seront pas liés à la latence du jeu, pourront être calculé à distance dans des centres de traitement de données conçu à cet effet, permettant ainsi à la console d’offrir une meilleure expérience de jeu sans avoir à posséder une puissance de calcul énorme.