6.1.3 · D5 · HinglishParallelism & Multicore

Question bankAmdahl's Law and Gustafson's Law

2,277 words10 min read↑ Read in English

6.1.3 · D5 · Hardware › Parallelism & Multicore › Amdahl's Law and Gustafson's Law

Kisi bhi trap ko samajhne se pehle hume do formulas khud se banana aana chahiye — udhar nahi lena. Neeche sab kuch inhi par tika hai, isliye hum inhe yahan scratch se banate hain.

Amdahl's formula banana (fixed problem)

Pura job ek core par lo, time . Ise serial aur parallel slices mein baanto (neeche figure, top bar): serial , parallel .

Figure — Amdahl's Law and Gustafson's Law

Ab parallel slice ko workers ko do. Serial slice split nahi ho sakti, isliye wo abhi bhi cost karti hai; parallel slice evenly divide hoti hai mein (figure, lower bars). Dono jodo:

Speedup ratio hai, aur upar neeche cancel ho jaata hai:

karo: term , aur hard ceiling bachi rehti hai.

Gustafson's formula banana (growing problem)

Ab reference flip karo. Hamare paas cores hain aur ek fixed time hai. Slices ko usi run mein measure karo: serial , parallel (neeche figure, upper bar). Trick ye hai: parallel slice cores mein spread thi, isliye usi kaam ko ek core par dobara karne mein guna zyada time lagega — parallel term inflate hokar ho jaati hai (lower bar), jabki serial term unchanged rehti hai:

Figure — Amdahl's Law and Gustafson's Law

Speedup phir se ratio hai, aur cancel ho jaata hai:

expand karo aur collect karo:

Toh linear term directly parallel work karne se aata hai; wo "tax" hai jo inflate na hone wali serial slice lagaati hai. ( bhi wahi cheez hai.)

In do worlds ke do naam

Recall Which question does each law ask?

Amdahl (strong scaling) ::: "Problem ek fixed size ki hai — main ise kitni fast khatam kar sakta hoon?" , par capped. Gustafson (weak scaling) ::: "Mere paas workers aur ek fixed time budget hai — main kitna zyada kaam kar sakta hoon?" , near-linear jab chhota ho.


True or false — justify

Har baar reason do; sirf true/false bola toh kuch nahi milega.

TF1. "Enough cores ke saath, koi bhi program arbitrarily fast banaya ja sakta hai."
False — Amdahl mein denominator kabhi bhi se neeche nahi jaata, isliye ; ke saath aap chahe kitne bhi cores lagao, se aage nahi ja sakte.
TF2. "Amdahl aur Gustafson ek doosre se contradict karte hain."
False — wo alag-alag sawaalon ka jawab dete hain (strong vs weak scaling). Amdahl problem size fix karta hai, Gustafson time fix karta hai aur problem badhata hai; dono apni-apni assumptions ke liye sahi hain.
TF3. "Agar ho, toh Amdahl's speedup ke barabar hoti hai."
True — substitute karo: ; koi serial term nahi hone ki wajah se denominator purely hai, isliye speedup exactly linear hai.
TF4. "Agar ho, toh cores add karne se thodi help milti hai."
False — set karo: har ke liye; parallel term zero hai, isliye extra cores idle baithe rehte hain aur speedup exactly rehti hai.
TF5. "Gustafson's speedup processors ki sankhya se zyada ho sakti hai."
False — aur isliye subtracted term hai, jo deta hai; ye par ke kareeb jaati hai lekin kabhi nahi paasti.
TF6. "Zyada serial fraction dono laws mein speedup ko hamesha kam karti hai."
True — Amdahl mein bada denominator ko badhata hai ( mein derivative hai), aur Gustafson mein zyada subtract karta hai; dono serial work ko punish karte hain.
TF7. "Cores se tak double karne se Amdahl speedup double ho jaati hai."
False — sirf parallel term half hokar banta hai; serial denominator mein jaisa tha waisa rehta hai, isliye speedup badhti hai lekin double se strictly kam, aur har double karne par kam return milta hai.
TF8. "Parallel fraction simply serial fraction ka one minus hai, dono time mein measure ki gayi hain."
True — ye same 100% run time ke do hisse hain ( aur ), isliye by definition inका sum hota hai.
TF9. "Gustafson ke saath exactly linear speedup deta hai."
True — , wahi perfect-scaling endpoint jo Amdahl par reach karta hai; dono laws no-serial extreme par agree karte hain.
TF10. "Agar measured speedup predict karne se kaafi kam hai, toh aapke algorithm ka galat hai."
Aksar spirit mein sahi — real overheads (Cache Coherence traffic, Thread Synchronization waits, communication) aisa time add karte hain jo extra serial fraction ki tarah behave karta hai, isliye effective aapke assumed algorithmic se bada hota hai.

Spot the error

Har statement mein ek flaw chhupa hai — use naam do.

SE1. "Meri 100 functions mein se sirf 3 serially run hoti hain, isliye ."
Error hai code ginne mein, time nahi. run-time ka hissa hai; teen tiny functions ek lock ho sakti hain jo 40% clock kha rahi ho, ya teen heavy ones dominate kar sakti hain. Aapko profile karna hoga.
SE2. "Mere paas 8 cores hain isliye mujhe milega."
Ye assume karta hai aur zero overhead. Koi bhi serial slice ko Amdahl ke denominator mein rakhti hai, aur real synchronization plus Load Balancing costs effective speedup ko strictly se neeche push karti hain.
SE3. "Mera problem fixed-size hai, isliye main Gustafson use karke near-linear scaling promise karunga."
Galat law — ek fixed problem strong scaling hai, jo Amdahl ka domain hai. Gustafson assume karta hai ki problem ke saath badhti hai; fixed problem ke liye Amdahl honest cap deta hai.
SE4. "10 cores par speedup matlab code broken hai."
Zaruri nahi — ke saath, Amdahl deta hai exactly. Sub- speedup ek serial slice ka normal consequence hai, koi bug nahi.
SE5. "Kyunki Gustafson 100 cores par deta hai, hum original job faster khatam karte hain."
Error hai zyada kaam aur faster ko confuse karna. Gustafson ka ek weak-scaling claim hai — same time mein bada problem — na ki purana problem time mein.
SE6. " tab change hota hai jab main 4 cores se 400 cores par switch karta hoon."
Ideal models mein workload ki property hai, vary hote waqt constant rakhte hain (isliye ya cancel hota hai). Real overhead effective ko drift karwa sakta hai, lekin textbook laws ise per problem fixed maante hain.
SE7. "Amdahl's denominator bade ke liye negative ho sakta hai."
Impossible — aur dono, isliye denominator hamesha positive rehta hai aur ki taraf shrink hota hai, kabhi neeche nahi.

Why sawaal

WQ1. Amdahl's speedup se total single-core time cancel kyun ho jaata hai?
Kyunki aur mein common factor hai; divide karne par wo remove ho jaata hai, isliye speedup sirf fraction aur par depend karta hai, absolute time par nahi.
WQ2. se divide karte waqt serial term kyun untouched rehta hai?
Serial work dependent steps ki ek chain hai — har step ko previous ka result chahiye — isliye extra workers ke paas karna kuch nahi hota; sirf independent parallel slice hi se divide hoti hai.
WQ3. Amdahl's law par infinity ki jagah kyun approach karta hai?
mein term , bacha rehta hai; fixed serial slice poora remaining runtime ban jaata hai aur hard floor ki tarah act karta hai.
WQ4. Gustafson ki jagah parallel run time ke relative kaam measure kyun karta hai?
Kyunki practical situation hai "mere paas cores aur fixed time window hai" — observed quantity hai, aur hum poochte hain ki wahi kaam akele kitna time leta (), jo inflation produce karta hai.
WQ5. Gustafson ko "optimistic" aur Amdahl ko "pessimistic" kyun kaha jaata hai?
Gustafson (weak scaling) parallel workload ko ke saath badhne deta hai, isliye serial slice shrinking share ban jaati hai aur ; Amdahl (strong scaling) workload freeze karta hai, isliye fixed serial slice dominate karta hai aur speedup par cap ho jaati hai.
WQ6. Serial 5% optimize karna zyada cores add karne se better kyun ho sakta hai?
Jab cores plentiful hote hain, Amdahl's speedup ke kareeb pin ho jaati hai; half karne se wo ceiling directly double ho jaati hai, jabki cores add karne se zero ki taraf sirf diminishing return ke saath jaata hai. Dekhein Scalability Analysis.
WQ7. Communication aur Cache Coherence traffic real speedup ko dono laws se worse kyun banate hain?
Dono ideal laws assume karte hain ki parallel part perfectly aur free mein divide hota hai; real cores ko data exchange karna, cache lines invalidate karna, aur barriers par wait karna padta hai, jo extra serial fraction ki tarah behave karne wala time add karta hai. Track karo via Performance Metrics.
WQ8. GPU Computing Gustafson ki mindset mein itna well kyun fit hota hai?
GPUs bahut bade data-parallel problems (millions of pixels/particles) attack karke jeette hain — aap problem ko hardware ke hisaab se scale karte ho, exactly Gustafson's weak-scaling assumption, na ki ek chhoti fixed task ko race karte ho.

Edge cases

EC1. par Amdahl's speedup kya hoti hai?
— ek processor baseline hai, isliye by construction speedup exactly hoti hai.
EC2. par Gustafson's speedup kya hoti hai?
— ye bhi exactly , isliye dono laws sahi agree karte hain ki single processor koi speedup nahi deta.
EC3. Dono laws par — kya hota hai aur kya wo agree karte hain?
Amdahl deta hai , Gustafson deta hai ; koi serial work nahi hone par dono perfect linear speedup par collapse ho jaate hain, isliye laws is extreme par coincide karte hain.
EC4. Dono laws par — kya hota hai?
Amdahl deta hai ; Gustafson deta hai ; ek fully serial job ko dono frameworks mein speed up nahi kiya ja sakta, phir se agree karte hain.
EC5. ka matlab kya hota hai, aur kya ideal formulas ye produce kar sakte hain?
matlab parallel version serial se slower hai — ek real "slowdown" jab overhead kaam ko daba deta hai; ideal aur kabhi se neeche nahi jaate, isliye ye dekhna real-world costs ka signal hai jo models omit karte hain.
EC6. par Gustafson's speedup kya karta hai?
Ye bina bound ke badhta hai kyunki — slope ki seedhi line — kyunki problem badhti rehti hai, unlike Amdahl jo par flat-line karta hai.
EC7. Agar ek job truly embarrassingly parallel hai () lekin aap 8 cores par sirf observe karte ho, toh culprit kya hai?
Algorithmic near zero hai, isliye loss effective serial overhead se aana chahiye — poor Load Balancing, synchronization stalls, ya memory bandwidth limits — jo effective ko us value ki taraf inflate karte hain jo solve karta hai, roughly .
EC8. Do programs dono ke hain lekin ek 1 ms run karta hai aur doosra 1 ghanta — kya dono same par Amdahl speedup paate hain?
Haan — Amdahl sirf aur par depend karta hai (absolute time cancel ho jaata hai), isliye dono same tak pahunchte hain; practically 1 ms job fixed launch overhead se dominate ho sakti hai jo model ignore karta hai.