Charts
One kernel at a time.
Each chart is one kernel in one unit: the race, every engine's multiple of neo, what it measures, why neo is quick there, and the code that ran on every side.
time · 8 engines
load the CSV, parse and type
Swift 0.99× · Spark 130×
time · 8 engines
filter amount > 500, count
Zig 1.88× · Spark 2,049×
time · 4 engines
filter into a new table
Polars 2.34× · DuckDB 106×
time · 6 engines
sort, as a permutation
Swift 1.18× · pandas 62.7×
time · 8 engines
sort into a new table
Rust 1.45× · Spark 45.0×
time · 8 engines
sum by region
Zig 1.40× · Spark 1,948×
energy · 4 engines
load the CSV, in energy
Polars 2.87× · Spark 83.2×
energy · 4 engines
filter amount > 500, count, in energy
Polars 1.92× · Spark 1,313×
energy · 4 engines
filter into a new table, in energy
Polars 1.02× · Spark 65.0×
energy · 2 engines
sort, as a permutation, in energy
Polars 3.40× · pandas 6.84×
energy · 4 engines
sort into a new table, in energy
Polars 2.20× · Spark 44.2×
energy · 4 engines
sum by region, in energy
Polars 32.8× · Spark 1,518×
public data · 4 engines
load worldcitiespop, warm
Arrow 2.02× · pandas 92.6×
public data · 4 engines
load NYC taxi · 1M, warm
Arrow 1.72× · pandas 58.7×
public data · 4 engines
load NYC taxi · 10M, warm
Arrow 2.29× · pandas 75.4×
public data · 4 engines
load ClickBench · 1M, warm
Polars 1.97× · pandas 61.2×
public data · 3 engines
load ClickBench · 10M, warm
Polars 2.55× · DuckDB 4.43×