Closed stephenvonworley closed 5 months ago
00:02.018.
Hey @stephenvonworley!
Congrats again on being in the Top 20 of the One Billion Row Challenge!
To celebrate this amazing achievement, I would like to send you a 1BRC t-shirt and coffee mug. To claim your prize, fill out this form by Feb 18. After submitting the form, please provide a comment with the random value you've specified in the form, so that I know it is you who submitted it.
All data entered will solely be used in relation to processing this shipment. Shipments can be sent to any country listed here or here (I'll use whichever one is cheaper for me to ship to your location). A big thank you to Decodable for sponsoring these prizes!
Thanks a lot for participating in 1BRC,
--Gunnar
Hey @stephenvonworley!
Congrats again on being in the Top 20 of the One Billion Row Challenge!
To celebrate this amazing achievement, I would like to send you a 1BRC t-shirt and coffee mug. To claim your prize, fill out this form by Feb 18. After submitting the form, please provide a comment with the random value you've specified in the form, so that I know it is you who submitted it.
All data entered will solely be used in relation to processing this shipment. Shipments can be sent to any country listed here or here (I'll use whichever one is cheaper for me to ship to your location). A big thank you to Decodable for sponsoring these prizes!
Thanks a lot for participating in 1BRC,
--Gunnar
Hi @gunnarmorling. Thanks a bunch for putting together the 1BRC, it was a lot of fun!
I never got the chance to optimize my inner loop: based on the solutions and some post-challenge experiments, I'm pretty sure there's a scalar Java implementation that runs in about 1.0 seconds on your 8 core test rig. I might code it up some time, just to find out...
Speaking of which, various people have had the idea of maintaining some solutions (scalar/vector, Unsafe/safe, etc) to which improvements could be submitted in ongoing fashion. If something like that ever happens, I'd be willing to pitch in to help manage it...
Once again, thanks! Steve 11444 28931
Hello, I'd like to make a new submission for the 1BRC! The class name is:
CalculateAverage_stephenvonworley
prepare_stephenvonworley.sh
uses Graal'snative-image
to generate a precompiled binary namedCalculateAverage_stephenvonworley_image
.This solution is an optimized scalar parser, which combines most of the best ideas so far, plus some improvements of my own.
My code checks for hash collisions at lines 298, 318, and 323.
On 8 cores of a Xeon 2650 v3, the elapsed time is 2.18 seconds. Should run faster on your setup.
Thanks for putting this together, Gunnar! It must be a lot of work, I appreciate it.
Check List:
[x] You have run
./mvnw verify
and the project builds successfully[x] Tests pass (
./test.sh <username>
shows no differences between expected and actual outputs)[x] All formatting changes by the build are committed
[x] Your launch script is named
calculate_average_<username>.sh
(make sure to match casing of your GH user name) and is executable[x] Output matches that of
calculate_average_baseline.sh
[x] For new entries, or after substantial changes: When implementing custom hash structures, please point to where you deal with hash collisions (line number)
Execution time: 2.18s (on 8 cores of my personal system)
Execution time of reference implementation: 256s