buybackoff/1brc

Add entry for dzaima

dzaima opened this issue · 4 comments

https://github.com/dzaima/1brc - build with make a.out, run with THREADS_1BRC=[desired thread count] ./a.out path/to/measurements.txt.

Language column is mildly non-trivial - there's C, C++, and Singeli involved (Singeli generating gen.c which is committed to the repo to not require Singeli to build).

I expect it to roughly match lehuyduc's entry on both the original & 10K datasets (on my PC my solution is ~10% faster for 10K, and roughly the same for original).

(the repo also has a Java solution, but it's only optimized for the original dataset, and has extremely high variance (>2x; JIT compilation screwing up? haven't bothered looking into it), and with JIT startup time and worse codegen it struggles even at the best of times, so not worth including)

You are just in time. I'm creating some automation here: https://github.com/buybackoff/1brc-bench

And will run lots of CPU core/threads combinations over the weekend on two big Intel/AMD machines.

There are already special cases for @lehuyduc and @austindonisan. It would be great if you could adjust run.sh as needed.

here's adding my repo to that; feel free to merge or pick in changes yourself, or request PR

Great, thank you!

Ok, my solution should now have an aarch64 NEON version, took slightly more time than I expected (though a decent amount was just me being stupid). Should build the same way, but have done only minimal testing and precisely zero tuning (and replaced some manual string comparison with a memcmp call, and left semicolon search at a much-less-efficient-than-desired state I went ahead and wrote a saner semicolon search) as my only available aarch64 device is my phone with an A53..