6.1.2 · D1 · HinglishParallelism & Multicore

FoundationsInstruction-level vs thread-level parallelism

2,273 words10 min read↑ Read in English

6.1.2 · D1 · Hardware › Parallelism & Multicore › Instruction-level vs thread-level parallelism

ILP aur TLP compare karne se pehle, tumhe us page ka har word aur symbol ka matlab pata hona chahiye — bilkul scratch se. Yeh page har brick ko order mein banata hai. Upar se neeche padho; koi bhi cheez explain hone se pehle nahi aayegi.


1. "Instruction" kya hoti hai?

Ek to-do list socho jahan har line ek single, bilkul simple action hai — kuch bada nahi.

Figure — Instruction-level vs thread-level parallelism
Figure 1: Ek program jo numbered stack of blue instruction boxes ke roop mein draw kiya gaya hai. Har box ek indivisible order hai (load a, add a+b -> s, ...). Yellow arrow point out karta hai ki ek single box = ek tiny order — yahi "list" hai jise ILP overlap karta hai.

Topic ko yeh kyun chahiye: ILP inhi individual orders ko overlap karne ke baare mein hai. Agar program ko alag instructions ki list ke roop mein nahi socha, toh "instruction-level" ka koi matlab nahi banta.


2. "Thread" kya hota hai?

Figure — Instruction-level vs thread-level parallelism
Figure 2: Left mein, ek single blue thread (instruction boxes ka ek column) — yahi arena hai jahan ILP operate karta hai. Right mein, teen alag coloured threads (blue, green, red) side by side chal rahe hain — yahi arena hai jahan TLP operate karta hai. Notice karo ki thread instructions se milkar bana hota hai.

Topic ko yeh kyun chahiye: ek saath kaafi threads chalana parent note ka poora doosra half hai. Hum unki ginti ko ek symbol () aur apna hardware ("cores") dete hain Section 6 mein — abhi ke liye, bas kaafi independent to-do lists ki picture mind mein rakho.


3. "Cycle" aur "instructions per cycle" kya hote hain?

Ek metronome socho. Har tick par, kaam ek chhoti notch aage badhta hai.

Figure — Instruction-level vs thread-level parallelism
Figure 3: Dashed white lines clock ticks mark karti hain. Upar wali blue row har tick mein exactly ek instruction finish karti hai (). Neeche wali green row teen per tick finish karti hai (). Yellow caption sab kuch kehta hai: bada = zyada instructions overlap per tick = zyada ILP.

Topic ko yeh kyun chahiye: "kitna ILP" wala knob hai. Bada = zyada instructions overlapping = zyada ILP. Yeh seedha neeche wale speedup formula mein plug hota hai.


4. "Parallel" vs "Serial" kya hota hai?

Figure — Instruction-level vs thread-level parallelism
Figure 4: Left (red) — ek dependency chain: chaar boxes upar-neeche arrows se jude hain, har step ko upar wale ka wait karna padta hai, isliye woh serially line up karte hain. Right (green) — chaar independent boxes side by side baithe hain, unke beech koi arrows nahi, saath chal sakte hain. Chains ILP block karte hain; independent boxes enable karte hain.

Topic ko yeh kyun chahiye: dependencies hi wajah hain ki ILP limited hai. Jo fraction dependency-free hai wahi neeche wala number hai.


5. Fractions aur

Dono fractions hain, isliye hamesha aur .


6. Symbol — number of cores


7. Speedup formula, symbol by symbol

Ab har symbol define ho gaya hai, toh parent ka headline formula saaf padha ja sakta hai.

Ise ILP par apply karna ( aur use karke) aur TLP par ( aur use karke):

Denominator ko aise padho: "serial part pura bacha, plus parallel part speedup se chhota hua": poora size rehta hai, jabki parallel part hai jo mein divide ho gaya (ya jo mein divide hua). Yaha poora shape Amdahls-Law hai — ek prerequisite jo apne page ka haqdaar hai.

Recall Denominator mein do terms kyun hain?

Kyunki total time = serial time + parallel time, aur sirf parallel term divide hota hai tumhare paas kitni parallelism hai usse. ::: Serial term kabhi speed up nahi ho sakti — yahi kisi bhi speedup ki ceiling hai.


8. Teesri category jiske baare mein parent warn karta hai


Prerequisite map

Yeh diagram dikhata hai ki har foundation kaise agla feed karta hai aur finally topic mein jaata hai. Words mein: Instruction root hai — yeh Thread, Clock cycle, aur Dependency ko feed karta hai. Clock cycle hume IPC deta hai; Dependency fraction deta hai; Thread dono core count aur fraction deta hai. Pair (, ) ILP speedup drive karta hai; pair (, ) TLP speedup drive karta hai; aur SIMD ek alag teesri strand ke roop mein enter karta hai. Teeno ILP vs TLP topic par pahunchte hain.

Instruction

Thread

Clock cycle

IPC n

Core count N

Dependency

Parallelizable fraction f

Parallelizable fraction p

ILP speedup

TLP speedup

ILP vs TLP topic

SIMD data parallel


Equipment checklist

Right side cover karo aur khud test karo:

An instruction is
processor ko ek tiny order (add, load, jump).
A thread is
instructions ki ek independent stream — apni to-do list.
A clock cycle is
processor ki ek tick; har tick par kaam aage badhta hai.
Symbol (IPC) ka matlab hai
instructions completed per cycle — "kitna ILP" wala knob, ke saath.
Symbol ka matlab hai
ek saath chal rahe cores / hardware threads ki ginti, ke saath.
Dependency kya hai
jab ek instruction ko doosre ka result chahiye, unhe serial rehne par majboor karta hai.
hai
un instructions ka fraction jo independent hain (ILP ke liye), .
hai
program ka woh fraction jo threads mein split ho sakta hai (TLP ke liye), .
Speedup define hota hai
purana time divided by naya time — kitni baar fast.
ILP speedup formula hai
.
TLP speedup formula hai
.
Jab ho toh ILP speedup equal hota hai
(koi independent work nahi, koi gain nahi).
Jab ho toh ILP speedup equal hota hai
(machine width par capped).
SIMD kis category mein aata hai
data-level parallelism — na ILP na TLP.