6.1.3 · HinglishParallelism & Multicore

Amdahl's Law and Gustafson's Law

2,697 words12 min readRead in English

6.1.3 · Hardware › Parallelism & Multicore

Core Concepts

Why These Laws Matter

Performance scaling modern computing ka central challenge hai. Hum single cores ko bahut zyada fast nahi bana sakte (heat, power limits), isliye hum zyada cores add karte hain. Lekin kya 8 cores tumhe 8× performance deta hai? Ye laws jawab dete hain kab aur kyun nahi.

The Setup:

  • Tumhare paas koi computation hai jo time leta hai
  • Uska ek fraction inherently serial hai (parallelize nahi ho sakta)
  • Baaki perfectly parallelizable hai
  • Tumhare paas processors hain

Amdahl's Law: Fixed Workload Perspective

Derivation from First Principles:

Chalo total execution time se shuru karte hain ek processor par.

Step 1: Kaam ko tod do

  • Serial portion leta hai:
  • Parallel portion leta hai:

Ye step kyun? Hum total kaam ko do categories mein partition kar rahe hain—parallelize ho sakta hai ya nahi. Serial fraction ek proportion hai, isliye actual time deta hai.

Step 2: processors par time

processors ke saath:

  • Serial part phir bhi leta hai (split nahi ho sakta!)
  • Parallel part ab leta hai (perfect division)

Ye step kyun? Serial kaam fundamentally sequential hai—uspe zyada processors lagane se koi faayda nahi. Parallel kaam evenly divide hota hai (ideal assumption).

Step 3: Speedup define karo

Speedup single-processor time aur multi-processor time ka ratio hai:

Ye step kyun? Speedup measure karta hai "kitna fast." Agar , toh tum 4× fast ho.

Step 4: Simplify karo

factor out karo:

Ye step kyun? Original time cancel ho jata hai—speedup sirf fraction par depend karta hai, absolute time par nahi.

Iska matlab: Agar tumhare code ka sirf 10% bhi serial hai (), toh best speedup jo tum kabhi bhi achieve kar sakte ho woh hai , chahe ek million cores ho!

Figure — Amdahl's Law and Gustafson's Law

Gustafson's Law: Scaled Workload Perspective

Derivation from First Principles:

Conceptual flip: "main same task kitni fast run kar sakta hoon" ki jagah poochho "main same time mein kitna zyada kaam kar sakta hoon?"

Step 1: processors par time (hamara reference)

processors ke saath, hum koi workload time mein complete karte hain:

  • Serial part:
  • Parallel part:

Ye step kyun? Hum parallel runtime ke terms mein measure kar rahe hain, hypothetical single-core time mein nahi.

Step 2: 1 processor par equivalent kaam

Agar hum ye same amount of work 1 processor par run karein:

  • Serial part: abhi bhi (unchanged)
  • Parallel part: (humne guna zyada parallel kaam kiya!)

Ye step kyun? Parallel kaam cores mein distributed tha. Ise serially karne mein guna zyada time lagta.

Step 3: Speedup calculate karo

Rearrange karo:

Key Differences: When to Use Which Law

Aspect Amdahl's Law Gustafson's Law
Workload Fixed-size problem Scaled problem
Question "Main kab finish karunga?" "Main kitna kar sakta hoon?"
Assumption Problem size constant Problem resources ke saath badhta hai
Typical result Pessimistic (limited speedup) Optimistic (near-linear)
Use case Batch jobs, legacy code Scientific computing, ML

Connections to Other Topics

  • Parallel Architectures: Ye laws batate hain ki multicore CPUs kyun exist karte hain aur unki limits kya hain
  • GPU Computing: GPUs Gustafson exploit karte hain—problem size thousands of cores tak scale karo
  • Load Balancing: ko minimize karna serial kaam ko cleverly distribute karke
  • Cache Coherence: Coherence protocols overhead add karte hain jo effective badhata hai
  • Thread Synchronization: Locks aur barriers serial bottleneck ke primary sources hain
  • Scalability Analysis: Strong scaling (Amdahl) vs weak scaling (Gustafson)
  • Performance Metrics: Speedup, efficiency, aur unhe kaise measure karein
Recall Ek 12-Saal-Ke Bachhe Ko Samjhao

Imagine karo tum aur tumhare dost ek bada LEGO castle bana rahe ho. Kuch parts par tum sab ek saath kaam kar sakte ho—ek towers banata hai, doosra walls, teesra gate. Yahi parallel work hai. Lekin kuch parts sirf ek hi insaan kar sakta hai—jaise instructions zor se padhna ya sab se upar flag lagana. Yahi serial work hai.

Amdahl's Law kehta hai: agar tum exactly same castle bana rahe ho, zyada dost add karne se madad hoti hai, lekin ek hadd tak. Agar instructions padhne mein 10 minute lagte hain aur split nahi ho sakta, toh 100 dost ke saath bhi woh 10 minute toh lagengi hi. Tum infinitely fast nahi ho sakte!

Gustafson's Law kehta hai: agar tumhare paas zyada dost hain, toh tum same castle faster nahi banate—tum same time mein ek BADA castle banate ho! 10 dosto ke saath, tum 10× zyada awesome castle banate ho. Instructions padhne mein phir bhi 10 minute lagte hain, lekin ab tum ek mega-castle ke liye instructions padh rahe ho, toh worth it hai.

Seekh yeh hai: parallelism tab best kaam karta hai jab tum problem grow karo, na ki sirf same chhote kaam ko jaldi nipatao.

Practice Problems (Active Recall)

#flashcards/hardware

Amdahl's Law kis kaam aata hai?
processors par parallelize karne par ek fixed-size problem ke liye maximum speedup predict karna, serial fraction ko account karte hue.
Amdahl's Law ka speedup formula kya hai?
jahan serial fraction hai aur processors ki sankhya hai.
Amdahl's Law mein par maximum speedup kya hai?
— serial fraction absolute bottleneck ban jaata hai.
Agar program ka 5% serial hai, toh maximum possible speedup kya hai?
speedup, chahe kitne bhi processors add karo.
Gustafson's Law kis kaam aata hai?
Speedup predict karna jab problem size scale hoti hai processors ki sankhya ke saath (weak scaling), problem fixed rakhne ki jagah.
Gustafson's Law ka speedup formula kya hai?
ya equivalently , jahan serial fraction hai.
Gustafson's Law Amdahl's Law se kaise differ karta hai?
Amdahl fixed workload assume karta hai (strong scaling); Gustafson scaled workload assume karta hai (weak scaling). Gustafson large ke liye zyada optimistic hai.
Ek program mein serial fraction hai. 50 cores par speedup kya hai (Amdahl)?
Same program (), 50 cores ke saath speedup (Gustafson)?
— near-linear kyunki workload scale hua.
Serial fraction execution time mein kyun measure hota hai, lines of code mein kyun nahi?
Kyunki ek single line (jaise ek lock) runtime dominate kar sakti hai agar woh threads ko wait karwaye. Time spent, na ki code volume, bottleneck decide karta hai.
Real-world mein effective serial fraction badhane wale factors kya hain?
Communication overhead, synchronization (locks, barriers), cache coherence traffic, load imbalance, aur non-uniform memory access (NUMA) effects.
Ek example do jahan Amdahl's Law apply hota hai.
Multiple cores par same codebase compile karna—problem size fixed hai, tum chahte ho woh jaldi ho.
Ek example do jahan Gustafson's Law apply hota hai.
Supercomputer par climate simulation—tum grid resolution aur timesteps badhate ho saare cores use karne ke liye, runtime constant rakhte hue.
Agar tumhare paas 16 cores hain aur 10× speedup milta hai, toh implied serial fraction kya hai (Amdahl)?
solve karo: , toh , isliye , thus ya 4%.
"Strong scaling" ka matlab kya hai?
Problem size fixed rakhna aur time kam karne ke liye zyada processors add karna—Amdahl's Law se governed.
"Weak scaling" ka matlab kya hai?
Problem size ko processors ki sankhya ke proportionally badhana taaki time constant rahe—Gustafson's Law se governed.
Amdahl's Law pessimistic kyun lagta hai?
Kyunki woh reveal karta hai ki chhote se chhote serial fractions bhi (jaise 1%) speedup ko 100× par cap kar sakte hain, infinite parallelism ko impractical banate hue.
Parallel computing mein efficiency kya hai?
— ideal speedup ka woh fraction jo actually achieve hua. matlab perfect linear scaling.
Agar , toh efficiency kya hai?
ya 75% — tum ideal 8× speedup ka 75% pa rahe ho.
Practice mein serial fraction kaise reduce karo?
Locks minimize karo (lock-free data structures use karo), serial stages pipeline karo, synchronization points kam karo, I/O optimize karo, aur sequential algorithms eliminate karo.

Concept Map

split into

split into

stays fixed

divides by n

ratio T1 over Tn

formula

n to infinity

assumes

assumes

enables

contrasts with

motivates

Total time T1

Serial fraction f

Parallel fraction 1-f

Time on n processors

Speedup S of n

Amdahl's Law

Max speedup = 1 over f

Fixed workload

Gustafson's Law

Workload grows with n

Near-linear scaling