-
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
Handling 16 bytes at once #704
Conversation
Nice improvement! Thank you so much for participating in 1BRC and congrats on creating one of the very top entries! You've added so many tricks adopted by others too, way to go!
|
@gunnarmorling Thank you very much for the challenge. I definitely learned something new and am eager to apply all these SWAR tricks in the real-life code. @thomaswue thank you for the best ILP loop and hinting that the crucial method is not being inlined. @merykitty and @royvanrijn thank you for the SWAR tricks. @jerrinot thank you for ILP and 16-byte branching. @abeobk thank you for the masking idea which makes the later one work as fast as hell. That was a fun! |
long value2 = value(chunk2); | ||
Aggregates.update(pointer2, value2); | ||
|
||
long pointer = find(aggregates, chunk2, word1, word2, separator1, separator2); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this approach mean the program segfaults on hash collision?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It checks only the first entry, if there is a collision it goes to the bottom. Find is optimistic. Put is pessimistic.
Hey @artsiomkorzun! Congrats again on being in the Top 3 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. A big thank you to Decodable for sponsoring these prizes! Thanks a lot for participating in 1BRC, --Gunnar |
Hi @gunnarmorling, thank you very much. The number is 29057 26381 |
NOTE: This challenge closes for submissions on Jan 31 23:59:59 UTC. No new pull requests for adding submissions will be accepted after that time.
Any pending pull requests will be reviewed over the next few days, as described here.
The final leader board will be published by Feb 5.
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