-
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
Use proper hash key collision detection scheme. #85
Conversation
… concurrency from 16 to 8. Use bit mask rather than mod operator to confine hash code to table range.
@ebarlas, could you run this one:
This is a little test suite I've added and there seem to be some failures. Thanks! |
Yes! I'll take a look now. |
Ah, the partitioning isn't working properly when it happens within a line! Getting that fixed now. |
Fixed, @gunnarmorling! |
Ah, gasp, just ran this one a minute ago. Do you plan to push further updates, @ebarlas? |
Sorry about that! Not right at this moment. |
It feels like we need a Discord server with all of the discussions happening. |
Haha, yeah. Had I only known... ;) |
0m14.476s. Nice! |
The hashing scheme LGTM now too. Btw. thanks a lot for going through the iterative refinement of requirements today, appreciate the patience and quick turn around times to smoothen all that out. |
You're welcome! Needless to say, I've been having a lot of fun with this. So, thank you! |
By the way, is |
@gunnarmorling, is there anything additional I need to do to ensure the my solution is running with GraalVM? I'm trying to understand the timing discrepancy I'm seeing and I thought perhaps my solution isn't actually running with GraalVM. Do I need an install command prior? I noticed the other competitors are apparently still relying on your manual config for GraalVM. Relatedly, is the non-CE edition of Graal accessible?
|
Yeah, still had to update it.
Not really, it's a manual (and thus, yes, error-prone) process. I'm quite confident I did it right. But if you'd like to explore how to automate this task (see #88), this would be awesome. |
Probably just |
This is a replacement for PR #74.
This change is primarily about compliance. The prior version of my
ebarlas
submission didn't adequately handle theoretical hash key collisions. The current version now does that with an open addressing scheme.Changes here also include various unrelated adjustments.
Implementation class:
CalculateAverage_ebarlas
The exec time on an AWS EC2
c5.2xlarge
with 8 vCPU is slightly higher than before, now clocking in at 10.1s. However, still noticeably lower than on the CX33 target env, interestingly.This submission is still configured to run on GraalVM CE.