• Aucun résultat trouvé

Objectifs de l’unité

Activité 2 Loi d’Amdahl

Introduction

Un ordinateur n’est rien de plus qu’une machine qui effectue divers calculs. L’architecture parallèle est un moyen d’effectuer ces calculs simultanément, en utilisant le principe selon lequel un problème donné peut être divisé en plus petits problèmes qui sont résolus simultanément ou en parallèle.

D’une manière générale, la nécessité d’utilisation d’ordinateurs se développe de plus en plus, et par le fait que le matériel comporte des limites physiques qui empêchent l’augmentation du taux de transformation.

Dans cette activité, nous allons analyser comment rapidement une tâche sera exécutée lors de l’utilisation d’un ordinateur avec une certaine amélioration sur l’ordinateur actuel. Il est clair qu’il y a des gains d’efficacité et de performance quand on change tout élément ou dispositif.

Détails de l’activité

La loi d’Amdahl met l’accent sur le concept de gagner des limites sur la taille fixe de la charge de calcul (charge de travail).

La loi d’Amdahl peut être appliquée aussi bien dans l’optimisation des programmes en série comme parallèle. Si l’on regarde du point de vue de l’optimisation des programmes de série, la loi dit que gardant fixe la taille du problème, l’accélération est limitée par la fraction du problème qui ne peut être optimisé et leur exécution respective.

Du point de vue de l’optimisation de la parallélisation, la loi dit que si nous avons fixé la taille du problème, l’accélération est limitée par fraction de programme qui ne peut être parallélisé, appelé, fraction de série. Par exemple, si nous avons un programme qui est exécuté en série en 20 heures, une partie qui dure une heure, ne peut pas être parallélisé et les 19 heures restantes peuvent être parallélisés de 95%, en utilisant 4096 processeurs atteignant la limite d’accélération 20x. Ainsi, même si nous avons plus de 4096 processeurs disponibles, le moteur d’exécution sera limité à 1 heure correspondant à la partie en série du programme qui ne peut être parallélisée.

Ainsi, pour une charge de calcul donnée (charge de travail), il faut 20 heures de traitement, le doublement de la charge et les 95% restants de la parallélisation speedup est 40x. Ce fait est négligeable, la partie constante (en série) comme le problème augmente le volume de données.

Figure 2.5 : Parallélisation vs. Speedup théorique par la loi Amdahl.

Source : (Breshears, 2009)

L’illustration de la figure 2.6 montre, selon la loi d’Amdahl le comportement d’accélération du nombre de ressources de traitement disponibles.

Donc, si 5% du temps d’exécution d’un programme ne peut pas être parallélisé, la limite d’accélération est 20x d’utilisation de 1024 processeurs

Figure 2.6 : Limites de Speedup selon la loi d’Amdahl Équation

Une tâche qui peut être parallélisée peut être divisée en deux parties :

une partie non-parallélisable (ou partie en série) qui ne peut être parallélisée ; une partie parallélisable qui peut être parallélisée.

Exemple

Un programme qui traite les fichiers à partir du disque. Une petite partie de ce programme peut analyser le répertoire et créer une liste de fichiers en interne dans la mémoire. Après cela, chaque fichier est transmis à un processus séparé pour le traitement. La partie qui scanne le répertoire et crée la liste de fichiers ne peut pas être parallélisé, mais le traitement des fichiers peut l’être.

Le temps pris pour exécuter toute tâche en série (pas en parallèle) est notée T. Le temps T comprend le temps des deux parties non parallélisable et parallélisable. La portion de temps pour exécuter en série la partie parallélisable est notée P. La portion de temps pour exécuter en série la partie non parallélisable est alors 1 - P. De là découle que :

T=(1-P)T+PT

La partie parallélisable P peut être accélérée en exécutant en parallèle. Combien il peut être accéléré dépend du nombre de sous-tâches qui sont exécutées en parallèle. Le temps d’exécution de la partie théorique parallélisable sur un système capable d’exécuter N sous-tâches en parallèle est ainsi calculé :

P/N T

La loi d’Amdahl donne le temps d’exécution théorique T(N) de l’ensemble de tâches sur un système capable d’exécuter N sous-tâches en parallèle:

T(N)=((1-P)+P/N)T

Par conséquent, le meilleur (avec un nombre infini de sous-tâches) de temps d’exécution théorique de l’ensemble de la tâche est

Tmin = 〖lim〗_(N→∞) T(N) =(1-P)T

En termes de speedup globale théorique, la loi d’Amdahl est donnée comme suit : S(N)=T/(T(N))=1/((1-P)+P/N)

Et la meilleure accélération globale théorique est : Smax = 〖lim〗_(N→∞) S(N) =1/((1-P))

A titre d’exemple, si P est de 90%, puis 1 - P est de 10% et que la tâche peut être accéléré par un maximum d’un facteur 10, quelle que soit la taille de la valeur de N utilisée. Pour cette raison, le calcul parallèle est utile que pour un petit nombre de processeurs et de problèmes avec des valeurs très élevées de P (proche de 100%) : soi-disant problèmes embarrassant parallèles. Une grande partie de l’art de la programmation parallèle consiste à essayer de réduire la composante 1 - P à la valeur la plus faible possible.

Dans le calcul parallèle, P peut être estimée en utilisant l’accélération mesurée S (N) sur un certain nombre de processeurs utilisant N

Pestimated =(1/(s(N))-1)/((1/N-1))

P estimée de cette manière peut alors être utilisé dans la loi d’Amdahl pour prédire un gain de vitesse en fonction du nombre de processeurs.

Exercice :

Après avoir lu le détail de l’activité 2.2 répondez aux questions suivantes : Quelles sont les limites de la loi d’Amdahl ?

Si un ordinateur exécute un programme P en 100 secondes, où 30% des opérations sont les accès mémoire avec un temps moyen de 80 ms accès et 60% des opérations sont en virgule flottante. Quels sont les impacts sur la performance globale du système si nous réduisons le temps d’accès moyen à la mémoire de la moitié ?

Quel est l’impact sur la performance globale lorsque l’on double la performance des opérations en virgule flottante ?

Réponse à la question 1

La principale limite de la loi d’Amdahl est qu’elle s’applique aux seuls cas où la taille du problème est résolue. En pratique, comme plus de ressources informatiques deviennent disponibles, ils ont tendance à se familiariser à des problèmes plus graves (jeux de données plus importants), et le temps passé dans la partie parallélisable pousse généralement beaucoup plus rapidement que le travail intrinsèquement séquentiel. Dans ce cas, la loi Gustafson permet une évaluation plus réaliste de la performance parallèle.

Réponse à la question 2.a

Réponse à la question 2.b

Conclusion

Dans cette activité, nous avons vu avec l’utilisation de la loi d’Amdahl à quelle vitesse une tâche sera exécutée lorsque nous mettons en œuvre une certaine amélioration par rapport à l’ordinateur actuel. Du point de vue de l’optimisation de la parallélisation, la loi dit que si nous continuons fixé la taille du problème, l’accélération est limitée par fraction de programme qui ne peut être parallélisé. Cette unité introduit l’apprenant à la loi de l’Amdahl. Des exemples ont été utilisés pour enseigner à l’apprenant comment trouver le maximum prévu à l’amélioration d’un système global lorsqu’une partie seulement du système est améliorée

Évaluation

Documents relatifs