English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

ospite
1 / ?
torna alle lezioni

Grafici Log-Log & Saturazione

La velocità di calcolo ha seguito una curva di crescita esponenziale per 50 anni. Su un grafico log-lineare (velocità logaritmica vs tempo lineare), appare come una retta con pendenza b = tasso di crescita in ordini di grandezza per anno.

I limiti fisici impongono un tetto orizzontale: una velocità massima S_max determinata dalle dimensioni molecolari, dalla velocità della luce & dai vincoli termici. Man mano che l'esponenziale si avvicina a S_max, la crescita rallenta.

Saturazione Logistica

Un modello comune per la crescita con un tetto:

S(t) = S_max / (1 + e^(−r(t − t₀)))

Questa è l'equazione logistica applicata alla tecnologia. Nelle fasi iniziali (t << t₀): S(t) ≈ S_max × e^(r(t−t₀)) — puramente esponenziale. Vicino al tetto (t >> t₀): S(t) → S_max asintoticamente.

La geometria: una retta su coordinate log-lineari si piega vicino al tetto, producendo una forma a S se vista su coordinate lineari-lineari.

Hardware Geometry: Amdahl's Law & Light-Speed Sphere

Quando si Satura la Crescita?

Supponiamo che la velocità di un singolo processore cresca come 10^(0.09t) partendo da 10⁰ operazioni/sec nel 1940. Tetto fisico: S_max = 10^(12) operazioni/sec (una stima approssimativa per un processore single-core, limitato da vincoli termici & di velocità della luce).

Usando S(t) = 10^(0.09·t) (t = anni dal 1940), trova l'anno in cui S(t) raggiunge 10¹⁰ (avvicinandosi al tetto). Mostra i passaggi algebrici. Poi calcola: quanti raddoppi di velocità avvengono tra il 1952 (IBM 701) e quell'anno limite? Usa il tempo di raddoppio = ln(2)/b dove b = 0.09 × ln(10).

Raggio Massimo di Comunicazione

La frequenza di clock di un processore determina il raggio massimo entro cui può comunicare in un ciclo. I segnali viaggiano a circa 2×10⁸ m/s nel rame.

Per un periodo di clock T (in secondi), il raggio massimo di comunicazione unidirezionale:

r_max = v × T / 2

(diviso per 2 per il viaggio di andata e ritorno: il segnale deve partire e tornare entro T)

All'aumentare della frequenza di clock, T diminuisce, quindi r_max si riduce. Questo vincolo geometrico costringe i componenti a stare più vicini — riducendo l'area del chip — oppure ad accettare una latenza multi-ciclo per la comunicazione fuori chip.

La Sfera d'Influenza

Tutti i componenti raggiungibili entro un ciclo di clock formano una sfera di raggio r_max centrata sul processore. Volume: V = (4/3)π r_max³.

Se la densità dei componenti è ρ (componenti/m³), il numero di componenti raggiungibili entro un ciclo: N = ρ × V = ρ × (4/3)π r_max³.

Al ridursi di r_max con l'aumento della frequenza di clock, N diminuisce cubicamente — un aumento di 2× della frequenza di clock riduce il numero di componenti raggiungibili di (1/2)³ = 1/8.

Componenti Raggiungibili per Ciclo di Clock

Una workstation dell'era 1993 funziona a 100 MHz (T = 10 ns). Velocità del segnale = 2×10⁸ m/s. Densità dei componenti su un circuito stampato ≈ 10⁸ componenti/m³ (stima approssimativa inclusi chip, resistori, condensatori).

Una GPU moderna funziona a 2 GHz (T = 0.5 ns).

Per la workstation a 100 MHz (T=10 ns, v=2×10⁸ m/s, ρ=10⁸/m³): calcola r_max, poi V = (4/3)π r_max³, poi N = ρ × V. Poi calcola lo stesso N per un processore a 2 GHz (stesso ρ, stesso v). Qual è il rapporto N(100MHz) / N(2GHz)?

Il Limite dell'Accelerazione Parallela

La velocità del processore singolo si avvicina ai limiti fisici. La risposta dell'industria: architetture parallele. La Legge di Amdahl quantifica l'accelerazione ottenibile dal parallelismo.

Legge di Amdahl

Supponiamo che una frazione f di un programma possa essere parallelizzata, e la frazione (1−f) debba girare in seriale. Con p processori:

Speedup(p) = 1 / ((1−f) + f/p)

Per p → ∞: Speedup_max = 1 / (1−f)

La frazione seriale (1−f) impone un tetto fisso all'accelerazione ottenibile, indipendentemente da quanti processori si aggiungono.

Intuizione geometrica: l'accelerazione come funzione di p segue una curva iperbolica. L'asintoto è 1/(1−f). Per f = 0.9, accelerazione massima = 10, anche con processori infiniti. Per f = 0.99, accelerazione massima = 100.

La lezione implicita di Hamming: l'interesse nelle architetture parallele era reale, ma il guadagno dipendeva interamente da quanto il carico di lavoro fosse parallelizzabile — un fatto ignorato da molti ottimisti del calcolo parallelo.

Calcolare l'Accelerazione Parallela

Una simulazione scientifica gira in 1000 secondi su un processore. La profilazione rivela: 200 secondi in una fase di inizializzazione seriale (non parallelizzabile); 800 secondi in una fase di calcolo parallelo.

Calcola la frazione parallela f. Usando la Legge di Amdahl, calcola Speedup(4), Speedup(16), Speedup(∞). Mostra ogni applicazione della formula. Poi interpreta: vale la pena aggiungere processori da 16 a ∞ in termini di costo hardware? Cosa dice la geometria sui rendimenti decrescenti?