Skip to content
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

jerrinot: a few random things #709

Merged

Conversation

jerrinot
Copy link
Contributor

@jerrinot jerrinot commented Jan 31, 2024

Check List:

  • You have run ./mvnw verify and the project builds successfully
  • Tests pass (./test.sh <username> shows no differences between expected and actual outputs)
  • All formatting changes by the build are committed
  • Your launch script is named calculate_average_<username>.sh (make sure to match casing of your GH user name) and is executable
  • Output matches that of calculate_average_baseline.sh
  • 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: 1.7s
  • Execution time of reference implementation: looong

I wasn't planning any further changes after #690. But I couldn't resist trying at least something after @thomaswue sent this beauty: #702
This PR is not really introducing anything new, just optimizing existing codepaths. It yields a small improvement on my box, but it's hard to predict if this translates to performance improvements on THE box.

In any case: @gunnarmorling, massive Thank you for organising this challenge, I had a blast!

@jerrinot jerrinot marked this pull request as ready for review January 31, 2024 23:40
@gunnarmorling
Copy link
Owner

Very nice improvement! Thank you so much for the nice words and for particpating in 1BRC, @jerrinot! Congrats for creating one of the top entries, really cool to see all the amazing tricks you brought to the table.

Benchmark 1: timeout -v 300 ./calculate_average_jerrinot.sh 2>&1
  Time (mean ± σ):      1.609 s ±  0.012 s    [User: 0.003 s, System: 0.003 s]
  Range (min … max):    1.589 s …  1.633 s    10 runs

Summary
  jerrinot: trimmed mean 1.6081975965600002, raw times 1.58892183156,1.61404948556,1.61037620956,1.6329010565600002,1.61700875656,1.60569608156,1.60031932156,1.60174426556,1.6044052875600001,1.61198136456

Leaderboard

| # | Result (m:s.ms) | Implementation     | JDK | Submitter     | Notes     |
|---|-----------------|--------------------|-----|---------------|-----------|
|   | 00:01.608 | [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_jerrinot.java)| 21.0.2-graal | [Jaromir Hamala](https://github.com/jerrinot) | GraalVM native binary, uses Unsafe |

@gunnarmorling gunnarmorling merged commit 9e2199a into gunnarmorling:main Feb 1, 2024
1 check passed
@jerrinot jerrinot deleted the geeks_just_wanna_have_fun branch February 1, 2024 10:04
@jerrinot
Copy link
Contributor Author

jerrinot commented Feb 1, 2024

@gunnarmorling thank you so much for doing all this! with 550+ PR closed, most of you reviewed by you only. you put in way more effort than anyone else. thank you!

@gunnarmorling
Copy link
Owner

Hey @jerrinot!

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

@jerrinot
Copy link
Contributor Author

@gunnarmorling once more thanks to both you personally and Decodable!
The two totally random numbers are: 27427 and 20503.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants