ML Platform Interactive Labs

Press the buttons and watch what each component does. ← Flashcards

DDP · DL1

Who drives for xb, yb in loader?

Step through one rank (rank 0 of 2, batch_size = 3). Watch who asks whom.

So what: the Dataset only answers "give me sample i". Picking indices is the sampler's job; collecting and stacking is the DataLoader's job.

DDP · D1 / D2

What changes when you remove the DistributedSampler?

Two ranks, a dataset of 8 samples. Toggle the sampler and run one epoch.

Steps per rank–
Gradients across ranks–
Pick a mode, then run.

So what: without a sampler there's no error — every rank computes identical gradients, so averaging changes nothing: same model as one GPU, no speedup.

DDP · U2 / M1

Where did the 24 seconds go?

Proportions from my dataloader_benchmark.py run (2 epochs, 2 workers). Toggle the setting and play.

Time in real training steps–
Time in worker start / stop–
Press Play.

So what: True = workers persist, so the restart blocks disappear. Always check sum(step times) ≈ total before trusting a throughput number.

K8s · K2a / K2b / K2d

Delete a Pod, crash a container, send a request

A Deployment (replicas: 3) behind a ClusterIP Service. Try each button.

The client only knows the name web.

So what: deleted Pod → the Deployment controller creates a new Pod (new name, same label) · crashed process → the kubelet restarts the container (same name, RESTARTS +1) · the Service routes by label, so the client never notices.