MPI lab · runs entirely in your browser
Run the 2023 pipeline on your own cores
Each Web Worker plays one MPI rank. The file is cut into byte ranges with the original split_file_into_chunks, every rank runs the TypeScript port of twitter_processorV1 over its share, and ranks 0, 1 and 2 reduce Tasks 1, 2 and 3, exactly as main.py did on Spartan. New here? See how it works.
Rank monitor
Generate or pick an input file, then run it. Each rank will appear here with its byte range, live progress and, afterwards, a timeline of scan and reduce phases.
Scaling on this machine
Run the benchmark to measure speedup on this machine with uncertainty: every worker count is run several times (10 by default) after a warm-up round, in a shuffled order each round, and the results are summarised as medians with exact order-statistic intervals, speedups and an Amdahl fit with bootstrap intervals, and Gustafson's law for contrast.
Why Spartan's f has no interval. The 2023 benchmark is 3 configurations × 1 run, and both multi-core jobs used 8 cores, so its serial fraction (3.2%) is the Karp–Flatt value at n = 8: a point estimate with no repeat to show run-to-run spread. Whole-second Slurm timing alone moves it between 3.08% and 3.28%. The benchmark here repeats every configuration so it can report an interval. Method
Answers from the task ranks
The three answers appear here once a run finishes.
Runs and output checks
Finished runs on the current file and place dictionary are listed here, each checked against the first run that counted no tweet twice.
The port is checked against the original Python in the test suite: on the same input, per-tweet records, per-rank counts and all four result files match for 1, 3, 4 and 7 ranks. Timings here are wall-clock in your browser and include the page relaying partial tables between workers, which stands in for MPI's send and receive.