aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Removing superfluous time callsGunnar Morling2024-01-102-2/+2
|
* Leaderboard updateGunnar Morling2024-01-101-2/+4
|
* Add CalculateAverage_couragelee Java class and shell scriptCourageLee2024-01-102-0/+355
| | | This commit introduces a new java class, CalculateAverage_couragelee, and a shell script for calculating averages. The java class utilizes NIO's memory-mapping and parallel computing techniques to perform calculations. These changes should improve the efficiency and speed of average calculations.
* Implementation by rprabhu Prabhu R2024-01-102-0/+157
| | | Co-authored-by: Prabhu R <prabhu.rengaswamy@outlook.com>
* gabrielreid take 2greid2024-01-101-162/+141
| | | | | Clear up some TODOS, simplify the code a bit, which appears to result in a 25% performance increase.
* Second submission by flippingbits - 50% performance improvementStefan Sprenger2024-01-101-92/+90
| | | | | | | | | | | * feat(flippingbits): Improve parsing of measurement and few cleanups * feat(flippingbits): Reduce chunk size to 10MB * feat(flippingbits): Improve parsing of station names * chore(flippingbits): Remove obsolete import * chore(flippingbits): Few cleanups
* merykitty's second attemptQuan Anh Mai2024-01-102-192/+139
|
* Leaderboard updateGunnar Morling2024-01-101-3/+3
|
* Consume four bytes at a time from buffer using getInt. Store key with unsafe ↵Elliot Barlas2024-01-102-84/+143
| | | | int array rather than byte array. Use custom equals rather than Arrays equals.
* Leaderboard updateGunnar Morling2024-01-101-2/+2
|
* Second tuning for thomaswueThomas Wuerthinger2024-01-101-96/+103
| | | | | | | | | | | | | | | * Optimize checking for collisions by doing this a long at a time always. * Use a long at a time scanning for delimiter. * Minor tuning. Now below 0.80s on Intel i9-13900K. * Add number parsing code from Quan Anh Mai. Fix name length issue. * Include suggestion from Alfonso Peterssen for another 1.5%. * Optimize hash collision check compare for ~4% gain. * Add perf stats based on latest version.
* Removing nstng's entry as he's retracting from the challengeGunnar Morling2024-01-101-1/+0
|
* Revert "Adding Nils Semmelrock's submission"Nils Semmelrock2024-01-102-290/+0
| | | | This reverts commit 12ae36ad
* Leaderboard update -- Backfilling remaining entriesGunnar Morling2024-01-101-7/+33
|
* 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
|