-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
final version for abeobk #654
Conversation
How can you avoid the word0 comparison on line 266? Isn't xoring word0 and tail losing information making the equality check imprecise? |
Thanks for the advice. It is indeed a stupid mistake by me. I was fooled by the collision check stats. I realized that you can still use the min/max trick if you provide the value when adding a new entry. FYI: Here is the benchmark on my machine Benchmark 1: ./calculate_average_abeobk.sh Benchmark 1: ./calculate_average_thomaswue.sh |
OK. Making the max branch dependent on the min branch not taken shouldn't make too much of a difference, because given the randomness of the data set both of those branches shouldn't be taken in most cases. Did you measure the +- of changing those branches on your machine? I tried and cannot measure a difference. What is your hardware? |
For some reason, there is a + 200ms when not applying the trick on my machine. Use default min=999,max=-999 Interestingly, when providing initial value and using normal min/max routine, the result does not change
|
No significant difference:
|
Can you eval again with the latest commit? I've got promising result. The idea here is that the 64bit hash value already contains tail info, therefore you can cut the tail Benchmark 1: ./calculate_average_abeobk.sh |
Yepp: Benchmark 1: timeout -v 300 ./calculate_average_abeobk.sh 2>&1 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 Leaderboard
|
Hey @abeobk! 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 |
Thank you for organizing the challenge, and the gifts. |
Check List:
./mvnw verify
and the project builds successfully./test.sh <username>
shows no differences between expected and actual outputs)calculate_average_<username>.sh
(make sure to match casing of your GH user name) and is executablecalculate_average_baseline.sh
This is my final version i guess, it does run faster than position 1 on my machine.
Benchmark 1: ./calculate_average_abeobk.sh
Time (mean ± σ): 1.273 s ± 0.006 s [User: 0.003 s, System: 0.001 s]
Range (min … max): 1.266 s … 1.285 s 10 runs
Benchmark 1: ./calculate_average_thomaswue.sh
Time (mean ± σ): 1.313 s ± 0.006 s [User: 0.003 s, System: 0.001 s]
Range (min … max): 1.306 s … 1.323 s 10 runs