Calcul parallèle et distribué – loi d’Amdahl, GPU et pipeline

InformatiqueOrdinateurs et matériel16–17 ans

Utiliser avec ma classe ✨ Personnaliser avec l'IA Signaler un problème

Découpez un travail en tâches avec une fraction parallèle p, puis exécutez-le de façon séquentielle sur un cœur, en parallèle sur n cœurs ou de façon distribuée sur des ordinateurs en réseau qui doivent d’abord recevoir leurs données. Un diagramme de Gantt montre ce que fait chaque cœur, le graphique d’accélération suit la loi d’Amdahl S = 1/((1 − p) + p/n) et sa limite 1/(1 − p), et un tableau enregistre vos essais. L’onglet GPU applique un filtre d’image avec quelques cœurs rapides de processeur et de nombreux cœurs simples de GPU ; l’onglet Pipeline montre les étapes de recherche, décodage et exécution qui se chevauchent, avec un blocage dû à un aléa de données.

Leçon : Calcul parallèle et distribué : tâches séquentielles et parallèles, processeurs multicœurs, loi d’Amdahl, accélération et efficacité, coût des communications, GPU, pipeline et aléas de données

Ce qu’elle montre

Le calcul parallèle exécute en même temps des parties d’un programme sur plusieurs cœurs ; le calcul distribué partage le travail entre des ordinateurs en réseau, qui doivent s’envoyer des données. Seule la fraction parallèle p d’un travail peut être partagée : la loi d’Amdahl donne l’accélération S = 1/((1 − p) + p/n), qui ne dépasse jamais 1/(1 − p). Dans un système distribué, le temps de communication augmente avec le nombre d’ordinateurs et peut rendre le travail plus lent quand on en ajoute. Un GPU possède des milliers de cœurs simples, adaptés à la même opération sur de nombreuses données. Le pipeline fait se chevaucher la recherche, le décodage et l’exécution d’instructions successives.

Mode d’emploi

Dans l’onglet Parallèle et distribué, choisissez le Mode, réglez la Fraction parallèle p, le Nombre de cœurs n, les Tâches et, en mode distribué, Envoi des données par poste ; cliquez sur Exécuter pour animer le diagramme de Gantt et sur Ajouter au tableau pour enregistrer le résultat. Dans l’onglet Processeur et GPU, choisissez la Tâche et le nombre de cœurs du GPU puis cliquez sur Exécuter. Dans l’onglet Pipeline, choisissez un Programme, cochez ou décochez Pipeline et utilisez Pas ou Lecture.

Paramètres modifiables

  • Onglet de départ Parallèle et distribué, Processeur et GPU, Pipeline
  • Mode Séquentiel (1 cœur), Parallèle (n cœurs), Distribué (n ordinateurs en réseau)
  • Fraction parallèle p 0–100 %
  • Nombre de cœurs ou d’ordinateurs n 1–32
  • Nombre de tâches parallèles 4–48
  • Temps d’envoi des données à chaque ordinateur 0–5 s
  • Nombre de cœurs du GPU 32, 64, 128, 256, 512
  • Tâche de l’onglet GPU Filtre noir et blanc (chaque pixel indépendant), Flou enchaîné (chaque pixel dépend du précédent)
  • Pipeline activé
  • Programme de l’onglet Pipeline Sans dépendances, Avec un aléa de données, Aléa, instructions réordonnées

Questions à explorer

  1. Avec p = 80 %, pourquoi passer de 16 à 32 cœurs n’accélère-t-il presque plus le travail ?
  2. En mode distribué, pourquoi ajouter des ordinateurs peut-il ralentir le travail ?
  3. Pourquoi le GPU gagne-t-il avec le filtre noir et blanc mais perd-il face au processeur avec le flou enchaîné ?