granted07@kolkata:~/research$ cat gamma

How long would you wait for a fuller ferry?

A GPU answers questions in groups. Bigger groups are cheaper per person, but everyone waits for the boat to fill. I am teaching it to decide, live.

scroll

01 deck

Look at the deck

Every trip needs room. The deck is the GPU's memory, and other passengers may already be sitting on it.

p = 1 - free / total

02 dock

Look at the dock

A long line means every extra minute of waiting costs more than it did a moment ago.

ρ = arrivals / what one trip can carry

03 crowd

Look at the crowd

Fifty people trickling in is easy. Fifty arriving together is a different day.

V = (cₐ² + cₛ²) / (1 + cₛ²)

04 price

Put a price on space

One number, γ: how many milliseconds of waiting is one megabyte of deck worth right now? A tight deck makes space dear. A long line or a wild crowd makes it cheaper. Then smooth it, so the price never flickers.

γ = base · (1 + (G-1)·s(p)) / (1 + κ·V·ρ²)

05 rail

Keep the rail

Whatever the price says, a hard limit stops the ferry from sinking. The price is a preference. The rail is a promise.

B_eff = min(B, ⌊(free - reserve - m₀) / k⌋)

06 plan

Ask the planner

BatOpt, the published method this builds on, picks the trip size with the smallest waiting plus price times space.

b* = argmin E(W_b) + γ·(k·b + m₀)

07 again

Then look again

The size it chose becomes the starting point for the next look. Round and round.

b → next cycle

still open

?The starting numbers are educated guesses. Finding the right ones is the real work.

?The line may be counted twice. I am testing whether that part earns its place.

?The crowd fix is a patch, not a theory.

?All of it runs in a simulator first, on timings measured from a real GPU.

← homeread the code →