Commit Graph

330 Commits

Author SHA1 Message Date
Andrew Sun
69ffa8e04c Rename files to match GitHub username 2024-01-13 11:29:27 +01:00
Gunnar Morling
457c263a34 Formatting 2024-01-12 22:26:55 +01:00
Gunnar Morling
5594a1b72b Leaderboard 2024-01-12 22:04:23 +01:00
Maxime
79f19eee9b
first attempt (#226)
* first attempt

* adapted to new organization
2024-01-12 21:39:12 +01:00
Gunnar Morling
4cfb5449e9 Leaderboard, formatting 2024-01-12 21:21:40 +01:00
abeobk
53776398dc abeobk initial implementation 2024-01-12 21:15:47 +01:00
Rafael Merino García
ab9d64b3e3 second try: just testing with the chunk size and gc tunning 2024-01-12 21:11:44 +01:00
Xylitol
9e5ec51315 Improved my implementation 2024-01-12 21:09:02 +01:00
ivanklaric
09e0311e09 Update create_fork.sh
Updated create_fork.sh to account for the CalculateAverage class name change
2024-01-12 21:05:51 +01:00
Dr Ian Preston
b93b128cb8
Add CalculateAverage_ianopolous.java (#346)
* Add solution by ianopolous - simple, memory mapped, reduced allocation, no unsafe.

* remove almost all allocation
2024-01-12 21:04:43 +01:00
Roy van Rijn
9227aa5062
Locally another 5% faster, much faster for larger set, made more general (#352) 2024-01-12 21:00:12 +01:00
Thomas Wuerthinger
bd4cff945d
Adding Scanner object and also tuning for better branch prediction for about +6%. (#341) 2024-01-12 20:51:22 +01:00
Andrew Sun
dac38bc97f
Optimizations to Andrew Sun's entry (#310)
Squashed commit of the following:

commit 44d3736de87834b41118d45831e59fc2b052117c
Merge: fcf795f 3127962
Author: Andrew Sun <as-com@users.noreply.github.com>
Date:   Thu Jan 11 20:01:13 2024 -0500

    Merge branch 'gunnarmorling:main' into as-com

commit fcf795fbabacbd91891d11d21450ee4b1c479dc5
Author: Andrew Sun <me@andrewsun.com>
Date:   Wed Jan 10 21:14:01 2024 -0500

    Optimizations to Andrew Sun's entry

commit 4203924711bab5252ff3cbb50a90f4ce4e8e67c2
Merge: 9aed05a 085168a
Author: Andrew Sun <me@andrewsun.com>
Date:   Wed Jan 10 19:40:19 2024 -0500

    Merge remote-tracking branch 'upstream/main' into as-com

commit 9aed05a04bd27fe7323e66c347b1011c77da322c
Merge: 3f8df58 c2d120f
Author: Andrew Sun <me@andrewsun.com>
Date:   Sun Jan 7 16:45:27 2024 -0500

    Merge remote-tracking branch 'origin/as-com' into as-com

    # Conflicts:
    #	calculate_average_asun.sh
    #	src/main/java/dev/morling/onebrc/CalculateAverage_asun.java

commit c2d120f0cb7f18c720a81a7f898102b310f9ecb9
Author: Andrew Sun <me@andrewsun.com>
Date:   Sat Jan 6 00:45:47 2024 -0500

    Add entry by Andrew Sun

commit 3f8df5803bcc8f3e29ed8bfff3077eb0e8cdab15
Author: Andrew Sun <me@andrewsun.com>
Date:   Sat Jan 6 00:45:47 2024 -0500

    Add entry by Andrew Sun
2024-01-12 20:42:22 +01:00
John Ziamos
90cd353fbe
this hashmap was faster on my system (#304)
use cursor style parsing thing
2024-01-12 20:39:16 +01:00
Thanh Duong
9d10724abc
1brc submission - thanhtrinity (#269)
* Add Calculation

* Update hashing remove abs and use 0x7FFFFFFF

* Collision Handling using Linear Prob

* Refactor code
2024-01-12 20:36:44 +01:00
Samuel Yvon
22b960ada2
Graal Native for SamuelYvon (#332)
* Graal Native

* I need a GC :(

* Fix slash lolz

* Fix god damn output lol

I forgot java :D

* Custom hash, custom key

* More optimisations

* I don't need "optimize-build"

I don't care about image size! :D
2024-01-12 20:16:13 +01:00
Gunnar Morling
a6e4013170 Leader board 2024-01-12 18:46:51 +01:00
Quan Anh Mai
dad698d3df unsafe approach 2024-01-12 18:39:12 +01:00
Bang NGUYEN
c2ee852ecb Update class name in calculate_average_baseline.sh 2024-01-12 16:30:08 +01:00
Gunnar Morling
04fa1e1a41 Leaderboard update 2024-01-12 10:05:48 +01:00
zerninv
06f9b74829
use unsafe (#343) 2024-01-12 09:54:28 +01:00
Roman Romanchuk
594f6c4e5f
Lazy strings init, custom station map (#336) 2024-01-12 09:52:32 +01:00
Yavuz Tas
10f425e2b6
I optimized my solution: (#337)
- Eliminate redundant object creations in between
 - Custom HashMap on purpose - Inspired by @spullara
 - More performant temperature parsing - Inspired by @yemreinci
 - JVM tweaks, decreased heap memory, and remove AlwaysPreTouch

Co-authored-by: Yavuz Tas <yavuz.tas@ing.com>
2024-01-12 09:47:31 +01:00
Parth Mudgal
f37b304fc3
inline hash calculation and number parsing (#200)
no number parsing with precalculated map
verify tests
better loop with direct hash to measurement mapping
accept formatting changes
Use unsafe
2024-01-12 09:38:09 +01:00
Bang NGUYEN
af1946fcb5
[Attempt 1] Memory mapping + split by linebreak + multithreads + fast double parser (#330)
* Create clones

* Cleanup code and add memory mapping to read file

* Fix chunks reading logic to fit linebreak

* Remove unused

* Sequential

* Multi thread process chunks

* Add new line in output

* Remove unnecessary operation with map & reducer memory

* Reduce mem usage by using only 1 map

* formatting

* Remove unnecessary length check

* Remove trycatch

* Optimize double parsing
2024-01-12 09:35:35 +01:00
Gunnar Morling
3c465cecf9 Leaderboard, class name 2024-01-12 09:21:29 +01:00
Stanley Lim
a4d1c46d45
📒 docs(README.md): Fix link to baseline code (#344)
* 📒 docs(README.md): Fix link to baseline code

* Update README.md

---------

Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
2024-01-12 09:20:27 +01:00
Richard Startin
37a50cb2af
update richardstartin submission (#325) 2024-01-12 09:06:09 +01:00
Jason Nochlin
6181996678
hundredwatt - 2nd submission (#338)
* check full hash before comparing

* implement merykitty suggestions to simplify temperature masking; required refactoring to little-endian

* standalone script for offline Perfect Hash seed searching

* stop using an oversized hash table

---------

Co-authored-by: Jason Nochlin <hundredwatt@users.noreply.github.com>
2024-01-12 09:03:31 +01:00
Alexander Yastrebov
80c5c2eb3e
Use bash in prepare scripts (#339)
Prepare scripts that use `#!/bin/sh` and
`source "$HOME/.sdkman/bin/sdkman-init.sh"`
fail on systems where `sh` is not `bash`,
e.g. on Ubuntu it is `dash` which has not `source`.
2024-01-12 08:25:43 +01:00
Gunnar Morling
3127962ce2
Update pull_request_template.md 2024-01-11 22:53:23 +01:00
Gunnar Morling
bf2b553d9c Formatting 2024-01-11 22:16:01 +01:00
Gunnar Morling
feee2420b8 Leaderboard update 2024-01-11 22:15:07 +01:00
Ricardo Pieper
263b272028
First attempt from ricardopieper, class CalculateAverage_ricardopieper (#306)
* My entry

* Added scripts

* Fix for unicode chars

* Formatting

* Clarifying comment

* Perf improvements

* Fixing bugs

* Fixing tests

* Deleted second file

* Added license

* Cleanup and windows support
2024-01-11 22:14:13 +01:00
Jaroslav Bachorik
ce6abf9740
Submission @jbachorik (#153)
* Submission @jbachorik

* Submission @jbachorik (take 2)

* Fix test failure

* Submission @jbachorik (take 2)

* Submission @jbachorik (take 2)
part 2

* Second reincarnation

* Launcher tweaks

* Rebase and fix new tests
2024-01-11 22:03:44 +01:00
Xylitol
7c79f235d2
Initial implementation by xylitol (#318) 2024-01-11 21:57:23 +01:00
zerninv
0e420f99e2
use custom container (#305) 2024-01-11 21:53:51 +01:00
Gunnar Morling
5c23f6f224 Leaderboard update 2024-01-11 21:49:58 +01:00
parkertimmins
bd2f7f7a53
First deployed version for parkertimmins (#322)
Version notes:
        - simd search with overlapping words, at most one entry/semicolon parsed per simd word
        - branchless temperature parsing
2024-01-11 21:46:08 +01:00
Gunnar Morling
8c13ce6595 Leaderboard update 2024-01-11 21:39:13 +01:00
Roy van Rijn
4d0586142c
Adding delayed string creation again for (no-) gc, small tweaks (#315) 2024-01-11 21:38:06 +01:00
Jason Nochlin
9f8f8b1985
create_fork.sh: Script to Create a New Fork (#296)
* Script to Create a New Fork

* validate fork name

* use interactive prompt to prevent accidentally overwriting existing fork

* recommend create_fork.sh in the README

* remove mention of additional_builds_steps (obsolete)

---------

Co-authored-by: Jason Nochlin <hundredwatt@users.noreply.github.com>
2024-01-11 21:24:03 +01:00
Jairo Graterón
20e52aaadf
Divide the reading of the file by parts (#254)
* divide the reading of the file by parts

* fix format

* add number of core partition

* fix format

* implement strToDouble

* fix strtodouble

* add locale, fix read file, tests pass

* delete unnecessary method clean
2024-01-11 21:22:58 +01:00
Anthony Goubard
11a740c5d0
One HashMap per thread: 23" to 18" locally but hopefully more on the server (#319) 2024-01-11 21:11:08 +01:00
Artsiom Korzun
8ef8cd2b17
improved artsiomkorzun solution (#321) 2024-01-11 21:08:15 +01:00
Keshavram Kuduwa
1a82c77026
Optimised Code and Fixed Tests (#314)
Co-authored-by: Keshavram Kuduwa <keshavram.kuduwa@apptware.com>
2024-01-11 21:04:50 +01:00
Hallvard Trætteberg
7b4ad1a723
Uses MappedByteBuffer for io, trie instead of map and parallelStream (#234)
* Uses MappedByteBuffer for io, trie instead of map and parallelStream

* Added license
2024-01-11 20:58:42 +01:00
Eve
4b870e6fcb
djb2 single threaded implementation (#308) 2024-01-11 20:50:51 +01:00
Samuel Yvon
56b2a6b53b
First Version (#292)
* First Version

First draft; stole chunking but it's bad

Forgot my changes

No regex building

Clean & optim

I was not benchmarking myself T_T

Faaaster

First Version

* Update calculate_average_samuelyvon.sh

Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>

* Add prepare script

* Fix rounding

* Fix format

* Fixing casing

* Formats of sorts?

* Rename

---------

Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
2024-01-11 20:37:08 +01:00
Marko Topolnik
95459f5640
Entry into the contest, calculate_average_mtopolnik.sh (#246)
* calculate_average_mtopolnik

* short hash (just first 8 bytes of name)

* Remove unneeded checks

* Remove archiving classes

* 2x larger hashtable

* Add "set" to setters

* Simplify parsing temperature, remove newline search

* Reduce the size of the name slot

* Store name length and use to detect collision

* Reduce memory loads in parseTemperature

* Use short for min/max

* Extract constant for semicolon

* Fix script header

* Explicit bash shell in shebang

* Inline usage of broadcast semicolon

* Try vectorization

* Remove vectorization

* Go Unsafe

* Use SWAR temperature parsing by merykitty

* Inline some things

* Remove commented-out MemorySegment usage

* Inline namesMem.asSlice() invocation

* Try out JVM JIT flags

* Implement strcmp

* Remove unused instance variables

* Optimize hashing

* Put station name into hashtable

* Reorder method

* Remove usage of MemorySegment.getUtf8String

Replace with UNSAFE.copyMemory() and new String()

* Fix hashing bug

* Remove outdated comments

* Fix informative constants

* Use broadcastByte() more

* Improve method naming

* More hashing

* Revert more hashing

* Add commented-out code to hash 16 bytes

* Slight cleanup

* Align hashtable at cacheline boundary

* Add Graal Native image

* Revert Graal Native image

This reverts commit d916a42326d89bd1a841bbbecfae185adb8679d7.

* Simplify shell script (no SDK selection)

* Move a constant, zero out hashtable on start

* Better name comparison

* Add prepare_mtopolnik.sh

* Cleaner idiom in name comparison

* AND instead of MOD for hashtable indexing

* Improve word masking code

* Fix formatting

* Reduce memory loads

* Remove endianness checks

* Avoid hash == 0 problem

* Fix subtle bug

* MergeSort of parellel results

* Touch up perf

* Touch up perf

* Remove -Xmx256m

* Extract result printing method

* Print allocation details on OOME

* Single mmap

* Use global allocation arena
2024-01-11 20:02:14 +01:00