aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update test*.sh to support input file patternAlexander Yastrebov2024-01-102-11/+40
| | | | This is useful for testing fork(s) against subset of test samples
* New leaderboard (WIP) after environment changeGunnar Morling2024-01-101-13/+57
|
* more robust error messageJason Nochlin2024-01-101-1/+1
|
* catch hyperfine command failedJason Nochlin2024-01-101-0/+5
|
* Add small test casesAlexander Yastrebov2024-01-106-0/+10
| | | | For https://github.com/gunnarmorling/1brc/issues/276
* remove debug lineJason Nochlin2024-01-101-1/+0
|
* Validate that ./calculate_average_<fork>.sh exists for each forkJason Nochlin2024-01-101-0/+8
|
* grep returns exit code 1 when no match, `|| true` prevents the script from ↵Jason Nochlin2024-01-101-1/+2
| | | | exiting early
* Fix test.sh to use prepare scriptAlexander Yastrebov2024-01-1017-17/+21
|
* Update README.mdGunnar Morling2024-01-101-0/+2
|
* #281 Trimming slowest/fastest run, not first/last in evaluate2.shGunnar Morling2024-01-101-2/+2
|
* evaluate2.sh improvements - leaderboard, default SDKJason Nochlin2024-01-103-11/+145
| | | | | | | | | | | | | | | | | | | * reset the JDK to the default (21.0.1-open) when no prepare script is provided * leaderboard improvements - sorting and content * run sdk install once at the beginning of the script for all the SDKs detected in any of the evaluated prepare scripts * remove unnecessary code and tweak doc comments * one more nit * Don't print rankings values when only 1 fork is being evaluated * It's been a few hours, so I now have some more rate limit :) --------- Co-authored-by: Jason Nochlin <hundredwatt@users.noreply.github.com>
* Hyperfine: Script re-orgGunnar Morling2024-01-0974-123/+369
|
* Use hyperfine and jq to improve evaluate.shJason Nochlin2024-01-091-0/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * create new version of evaluate.sh using hyperfine + jq * output the raw times for each command * nit: s/command/fork/ * update evaluate2.sh for new fork file structure * review changes * use numactl on linux * 1 warmup * verify output * leaderboard * do not early exit on hyperfine error * check if SMT and turbo boost are disabled * fix bug --------- Co-authored-by: Jason Nochlin <hundredwatt@users.noreply.github.com>
* Update README.mdGunnar Morling2024-01-091-1/+9
|
* Committing line separator changes on Linux systems (enforced by gitattr).Dimitar Dimitrov2024-01-081-205/+205
|
* Added UseTransparentHugePages after testing on a boxDimitar Dimitrov2024-01-071-4/+7
|
* Add davery22 implDaniel Avery2024-01-072-0/+335
|
* Leaderboard updateGunnar Morling2024-01-071-1/+1
|
* isolgpus: submission 2 - about a 25% improvement on submission 1. (#168)Jamie Stansfield2024-01-071-47/+51
| | | | | | | | | | | | | * isolgpus: fix chunk sizing when not at 8 threads use as many cores as are available don't buffer the station name, only use it when we need it. get rid of the main branch move variables inside the loop * isolgpus: optimistically assume we can read a whole int for the station name, but roll back if we get it wrong. This should be very beneficial on a dataset where station names are mostly over 4 chars --------- Co-authored-by: Jamie Stansfield <jalstansfield@gmail.com>
* Leaderboard updateGunnar Morling2024-01-071-3/+5
|
* Use SIMD for search for delimiter and name compareThomas Wuerthinger2024-01-071-52/+100
|
* Add yehwankim23 (#148)김예환 Ye-Hwan Kim (Sam)2024-01-072-0/+125
|
* My implementation is in dev.morling.onebrc.CalculateAverage_obourgain and ↵Olivier Bourgain2024-01-072-0/+512
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | runnable with provided script calculate_average_obourgain.sh (#75) Runs with standard JDK 21. On my computers (i5 13500, 20 cores, 32GB ram) my best run is (file fully in page cache): 49.78user 0.69system 0:02.81elapsed 1795%CPU A bit older version of the code on Mac pro M1 32 GB: real 0m2.867s user 0m23.956s sys 0m1.329s As I wrote in comments in the code, I have a few different roundings that the reference implementation. I have seend that there is an issue about that, but no specific rule yet. Main points: - use MemorySegment, it's faster than ByteBuffer - split the work in a lot of chunks and distribute to a thread pool - fast measurement parser by using a lot of domain knowledge - very low allocation - visit each byte only once Things I tried that were in fact pessimizations: - use some internal JDK code to vectorize the hashCode computation - use a MemorySegment to represent the keys instead of byte[], to avoid copying Hope I won't have a bad surprise when running on the target server 😱
* Leaderboard updateGunnar Morling2024-01-071-2/+2
|
* Roy: Adding a bit of unsafe...Roy van Rijn2024-01-071-254/+155
| | | Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
* Removing App CDS from Roy's submissionGunnar Morling2024-01-071-7/+2
|
* Leaderboard updateGunnar Morling2024-01-071-0/+1
|
* first attemptags2024-01-072-0/+272
|
* Leaderboard updateGunnar Morling2024-01-071-0/+1
|
* Initial Implementation - coolmineman (#196)Cool_Mineman2024-01-072-0/+310
| | | | | | | | | | | | | | | | | | | | | * start * slower * still bad * finally faster than baseline :) * starting to go fast * improve * we ball * fix race condition an newline * change threadpool * ~18sec on my machine
* Update pull_request_template.mdGunnar Morling2024-01-071-3/+4
|
* Leaderboard updateGunnar Morling2024-01-071-0/+2
|
* 1brc submission - Kevin McMurtrie (#195)Kevin McMurtrie2024-01-072-0/+539
| | | | | * v1 * Fix sorting
* An implementation optimised for simplicity/readability.John2024-01-072-0/+340
|
* Leaderboard updateGunnar Morling2024-01-072-5/+10
|
* CalculateAverage semotpan attempt 1Serghei Motpan2024-01-072-0/+219
|
* Implements CalculateAverage_santanu.javaSantanu Barua2024-01-072-0/+82
| | | | | | Execution time: 1 minute and 27.863 seconds System specs: Apple M1, 8 cores, 16GB RAM Co-authored-by: santanu barua <santanu@host109.private.net>
* Optimised Code to use FileSegments with ByteBuffer (#184)Keshavram Kuduwa2024-01-071-48/+156
| | | | | | | | | | | | | | | | | * Keshavram Kuduwa's Submission * Resolves #102 and Code Optimizations * Resolves #102 and Code Optimizations * Optimised Code with Roy's Reference * Fixed Tests * Clean Up Code --------- Co-authored-by: Keshavram Kuduwa <keshavram.kuduwa@apptware.com>
* Continue unrolling and inlining value parser. Make targeted use of ↵Elliot Barlas2024-01-072-44/+79
| | | | ByteBuffer.getInt() instead of ByteBuffer.get(). Switch from GraalVM CE to GraalVM. (#201)
* Add entry by Andrew SunAndrew Sun2024-01-072-0/+352
|
* Experiment from entangled90Carlo2024-01-072-0/+348
| | | | | | | | | | | | | | | | | | | | | * single thread memory mapped file reader, pool of processors * cleanup of inner classes of MetricProcessor * doubles are parsed without external functions, strings are lazily created from byte arrays * remove load() MappedByteBuffer in memory * fixed handling of newline * fix a bug & correct locale used * MappedByteBuffer size set to 1MB * fixed rounding * Do not use ArrayBlockingQueue.offer since it drops elements when queue is full * MappedByteBuffer size = 32 MB
* Adding kgeri's solution (#137)Gergely Kiss2024-01-072-0/+249
| | | | | | | | | | | | | | | | | | | * Adding kgeri's solution * parallelizing CalculatorAverage_kgeri * fixing aggregation bugs, chunk size calc for small files * removed GC logging Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com> * fix for when there's no newline at end of input * fix for when the final record ends on the chunk boundary --------- Co-authored-by: Gunnar Morling <gunnar.morling@googlemail.com>
* InfraGunnar Morling2024-01-071-1/+1
|
* InfraGunnar Morling2024-01-071-0/+22
|
* Leaderboard updateGunnar Morling2024-01-061-1/+3
|
* ddimtirov - supporting hash collisions, should have fixed #101Dimitar Dimitrov2024-01-063-102/+194
| | | | * ddimtirov - supporting hash collisions, should have fixed #101 * Make life easier for Windows user who need to use WSL to run the tests
* Improvement in CalculateAverage_yavuztas (#162)Yavuz Tas2024-01-061-55/+82
| | | | | | | | | | | | | | | | | | | * improve double reading by eleminating string parsing in between, make calculations over on integer instead of double, parse into double at the end only once * more improvements, sharing a single StringBuilder to build all toStrings, minor performance gain. * micro optimizations on reading temperature * a small skip for redundant traverses, micro optmization * micro optimization, eleminate some if cases, saves 0.5 seconds more * micro optimization, calculate key hash ahead eleminates more more loop, saves 0.5 seconds more :) * optimize key equals and handling the case when a region is larger than max integer size --------- Co-authored-by: Yavuz Tas <yavuz.tas@ing.com>
* Mudit/initial attempt (#41)Mudit Saxena2024-01-062-0/+176
| | | | | | | | | | | * Initial version with multiple ideas * Added virtual thread implementation based on certain task size * Removed evaluate file * Fixed test issues * Added a custom input split
* Updating leaderboardGunnar Morling2024-01-061-0/+1
|