gunnarmorling / 1brc

1️⃣🐝🏎️ The One Billion Row Challenge -- A fun exploration of how quickly 1B rows from a text file can be aggregated with Java
https://www.morling.dev/blog/one-billion-row-challenge/
Apache License 2.0
6k stars 1.8k forks source link

More tweaks #634

Closed artsiomkorzun closed 7 months ago

artsiomkorzun commented 7 months ago

Check List:

gunnarmorling commented 7 months ago

No significant improvement:

Benchmark 1: timeout -v 300 ./calculate_average_artsiomkorzun.sh 2>&1
  Time (mean ± σ):      1.993 s ±  0.012 s    [User: 0.001 s, System: 0.004 s]
  Range (min … max):    1.960 s …  2.001 s    10 runs

  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.

Summary
  artsiomkorzun: trimmed mean 1.9964359586699998, raw times 1.9595103494200001,1.9957608504200002,1.9959027354200003,1.9953614054200002,1.9986479604200003,2.0014259274199997,1.99945463442,1.9983405434200001,1.9978416254200002,1.99017791442

Leaderboard

| # | Result (m:s.ms) | Implementation     | JDK | Submitter     | Notes     |
|---|-----------------|--------------------|-----|---------------|-----------|
|   | 00:01.996 | [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_artsiomkorzun.java)| 21.0.2-graal | [Artsiom Korzun](https://github.com/artsiomkorzun) | GraalVM native binary, uses Unsafe |
artsiomkorzun commented 7 months ago

@gunnarmorling can you give it a try one more time? Changed the loop similar to Thomas's one.

gunnarmorling commented 7 months ago

Hey @artsiomkorzun, will check this one out asap. Quick question in the meantime: Would you be up for doing a live stream about 1BRC on Thursday this week, 7 pm UTC, together with Thomas, Roy, me, and Nicolai Parlog (for hosting)? We'll chat about the challenge, implementation tricks, etc.

artsiomkorzun commented 7 months ago

@gunnarmorling Hey, I'm really grateful for the invitation, but I won't be able to come.

thomaswue commented 7 months ago

@artsiomkorzun Given the importance of the segmentation / work stealing for wall clock time, do you maybe want to be added as a co-author to my solution too?

artsiomkorzun commented 7 months ago

@thomaswue not a big deal, I also took a lot of good stuff from you and other people.

gunnarmorling commented 7 months ago

@gunnarmorling Hey, I'm really grateful for the invitation, but I won't be able to come.

No worries, I thought I'd ask :)

gunnarmorling commented 7 months ago

Nice!

Benchmark 1: timeout -v 300 ./calculate_average_artsiomkorzun.sh 2>&1
  Time (mean ± σ):      1.926 s ±  0.005 s    [User: 0.002 s, System: 0.004 s]
  Range (min … max):    1.913 s …  1.932 s    10 runs

Summary
  artsiomkorzun: trimmed mean 1.92672918434, raw times 1.9132938513400002,1.9205588433400003,1.9261721613400002,1.9309468933400002,1.9274336183400003,1.92587679834,1.9261489963400003,1.93206151534,1.9301219723400003,1.92657419134

Leaderboard

| # | Result (m:s.ms) | Implementation     | JDK | Submitter     | Notes     |
|---|-----------------|--------------------|-----|---------------|-----------|
|   | 00:01.926 | [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_artsiomkorzun.java)| 21.0.2-graal | [Artsiom Korzun](https://github.com/artsiomkorzun) | GraalVM native binary, uses Unsafe |