HomeDistributed & Parallel ComputingApache Spark Distributed Execution

⚡ Apache Spark Distributed Execution

Watch a Spark job run: a driver splits stages into tasks, ships them to executors that run in parallel, and a shuffle synchronises the cluster between stages. Tune executors, parallelism and shuffle to see throughput and Amdahl's-law speedup respond.

Distributed & Parallel Computing3DModerate60 FPS⚡ Plasma
apache-spark-distributed-execution ↗ Open standalone

Frequently Asked Questions

What do the driver and executors represent in this simulation?

The glowing node at the top is the driver — the single process that builds the physical plan, splits each stage into tasks, and coordinates the run. The ring of nodes below are executors, each an independent JVM process on a worker machine that runs tasks in parallel and reports back to the driver.

What does the shuffle toggle actually change?

With shuffle on, every stage boundary is followed by a synchronisation phase where data particles fly between every pair of executors before the next stage can start, exactly like a groupBy or join that isn't already co-partitioned. With shuffle off, stages pipeline back-to-back with no cross-executor traffic, showing why narrow transformations are so much cheaper than wide ones.

Why does adding executors eventually stop helping throughput?

Amdahl's law: only the parallel portion of the work (per-partition task execution) speeds up with more executors — the serial portion (driver planning and, when shuffle is on, the synchronisation barrier) does not. As executors increase, the theoretical speedup curve flattens toward 1/(1−p).

What is task parallelism controlling here?

It sets how many tasks (partitions) each executor processes concurrently in a stage, similar to spark.executor.cores. Higher parallelism launches more particles per executor per stage, raising throughput until the visualisation's fixed executor slots become the bottleneck.

⚙ Under the hood

Watch a Spark job run: a driver splits stages into tasks, ships them to executors that run in parallel, and a shuffle synchronises the cluster between stages — tune executors, task parallelism and shuffle and watch throughput and Amdahl's-law speedup respond.

Three.jsDistributed SystemsBig DataApache SparkParallel Computing

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)