Graphiques Log-Log & Saturation
La vitesse de calcul a suivi une courbe de croissance exponentielle pendant 50 ans. Sur un graphique log-linéaire (log de la vitesse vs temps linéaire), cela apparaît comme une ligne droite de pente b = taux de croissance en ordres de grandeur par an.
Les limites physiques imposent un plafond horizontal : une vitesse maximale S_max déterminée par la taille moléculaire, la vitesse de la lumière, & les contraintes thermiques. Lorsque l'exponentielle approche S_max, la croissance doit ralentir.
Saturation Logistique
Un modèle courant pour la croissance avec un plafond :
S(t) = S_max / (1 + e^(−r(t − t₀)))
C'est l'équation logistique appliquée à la technologie. Aux temps précoces (t << t₀) : S(t) ≈ S_max × e^(r(t−t₀)) — exponentielle pure. Près du plafond (t >> t₀) : S(t) → S_max asymptotiquement.
La géométrie : une ligne droite sur des coordonnées log-linéaires se courbe près du plafond, produisant une forme en S lorsqu'elle est vue sur des coordonnées linéaires-linéaires.
Quand la Croissance Sature-t-elle ?
Supposons que la vitesse d'un processeur unique croisse selon 10^(0.09t) à partir de 10⁰ ops/sec en 1940. Plafond physique : S_max = 10^(12) ops/sec (une estimation grossière pour un processeur à cœur unique, limité par les contraintes thermiques & de vitesse de la lumière).
Rayon de Communication Maximum
La fréquence d'horloge d'un processeur détermine le rayon maximum dans lequel il peut communiquer en un cycle. Les signaux se propagent à environ 2×10⁸ m/s dans le cuivre.
Pour une période d'horloge T (en secondes), le rayon de communication maximal dans un sens :
r_max = v × T / 2
(diviser par 2 pour l'aller-retour : le signal doit partir et revenir dans T)
Lorsque la fréquence d'horloge augmente, T diminue, donc r_max se réduit. Cette contrainte géométrique force les composants à se regrouper plus près — réduisant la surface de la puce — ou à accepter une latence multi-cycles pour la communication hors puce.
La Sphère d'Influence
Tous les composants accessibles en un cycle d'horloge forment une sphère de rayon r_max centrée sur le processeur. Volume : V = (4/3)π r_max³.
Si la densité de composants est ρ (composants/m³), le nombre de composants accessibles en un cycle : N = ρ × V = ρ × (4/3)π r_max³.
Lorsque r_max se réduit avec l'augmentation de la fréquence d'horloge, N diminue de façon cubique — une augmentation de 2× de la fréquence d'horloge réduit le nombre de composants accessibles de (1/2)³ = 1/8.
Composants Accessibles par Cycle d'Horloge
Un poste de travail de l'ère 1993 fonctionne à 100 MHz (T = 10 ns). Vitesse du signal = 2×10⁸ m/s. Densité de composants sur un circuit imprimé ≈ 10⁸ composants/m³ (estimation grossière incluant puces, résistances, condensateurs).
Un GPU moderne fonctionne à 2 GHz (T = 0,5 ns).
La Limite d'Accélération Parallèle
La vitesse d'un processeur unique approche des plafonds physiques. La réponse de l'industrie : les architectures parallèles. La Loi d'Amdahl quantifie l'accélération réalisable grâce au parallélisme.
Loi d'Amdahl
Supposons qu'une fraction f d'un programme peut être parallélisée, et la fraction (1−f) doit s'exécuter en série. Avec p processeurs :
Speedup(p) = 1 / ((1−f) + f/p)
Quand p → ∞ : Speedup_max = 1 / (1−f)
La fraction série (1−f) fixe un plafond strict sur l'accélération réalisable, quel que soit le nombre de processeurs ajoutés.
Intuition géométrique : l'accélération en fonction de p suit une courbe hyperbolique. L'asymptote est 1/(1−f). Pour f = 0,9, accélération maximale = 10, même avec des processeurs infinis. Pour f = 0,99, accélération maximale = 100.
La leçon implicite de Hamming : l'intérêt pour les architectures parallèles était réel, mais le gain dépendait entièrement du degré de parallélisabilité de la charge de travail — un fait que de nombreux optimistes du calcul parallèle ignoraient.
Calcul de l'Accélération Parallèle
Une simulation scientifique s'exécute en 1000 secondes sur un processeur. Le profilage révèle : 200 secondes dans une phase d'initialisation série (ne peut pas être parallélisée) ; 800 secondes dans une phase de calcul parallèle.