Skip to content

Commit d85f93c

Browse files
author
Arnaud Bouchez
committed
include latest numbers for @paweld
1 parent 63d8e36 commit d85f93c

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

entries/abouchez/README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,14 @@ You will find in the [`src` sub-folder](./src) several implementations of the ch
8181

8282
The following table gives you an overview of these versions, in time implementation order. The first column gives direct access to each project source code:
8383

84-
project | shared | full | nobranch | submap | 41K | 400
85-
-------------------------------------------- |:------:|:----:|:--------:|:------:| ----:| ----:
86-
[`old`](./src/brcmormotold.lpr) | | `X` | | | 1814 | 1127
87-
[`sharedht`](./src/brcmormotsharedht.lpr) | `X` | | | | 1169 | 976
88-
[`fullcheck`](./src/brcmormotfullcheck.lpr) | | `X` | `X` | `X` | 1295 | 991
89-
[`perthreadht`](./src/brcmormotperthreadht.lpr) | | | `X` | `X` | 933 | 952
90-
[*final* `-a`](./src/brcmormot.lpr) | `X` | | `X` | `X` | 913 | 885
91-
[*final* `-f -a`](./src/brcmormot.lpr) | `X` | `X` | `X` | `X` | |
84+
project | shared | full | nobranch | submap | 41K | 400
85+
----------------------------------------------- |:------:|:----:|:--------:|:------:| ----:| ----:
86+
[`old`](./src/brcmormotold.lpr) | | `X` | | | 1350 | 1102
87+
[`sharedht`](./src/brcmormotsharedht.lpr) | `X` | | | | 1135 | 923
88+
[`fullcheck`](./src/brcmormotfullcheck.lpr) | | `X` | `X` | `X` | 1261 | 760
89+
[`perthreadht -a`](./src/brcmormotperthreadht.lpr) | | | `X` | `X` | 779 | 745
90+
[*final* `-a`](./src/brcmormot.lpr) | `X` | | `X` | `X` | 817 | 738
91+
[*final* `-f -a`](./src/brcmormot.lpr) | `X` | `X` | `X` | `X` | 1424 | 759
9292

9393
Here are the columns meaning:
9494

@@ -97,11 +97,11 @@ Here are the columns meaning:
9797
- "full" indicates that the full station name is checked, byte-per-byte, to detect any hash collision (not required by our Pascal challenge, but required by the original Java challenge) - so no `X` here states that the ["perfect hash trick"](#perfect-hash-trick) is used by this solution;
9898
- "nobranch" indicates that the temperature parsing is using a branchless algorithm;
9999
- "submap" indicates that `mmap()` is not called for the whole 16GB input file, but for each chunk in its own worker thread;
100-
- "41K" and "400" are the time (in milliseconds) reported on OVH public cloud by `paweld` in [the "Alternative results" discussion thread](https://github.com/gcarreno/1brc-ObjectPascal/discussions/103#discussioncomment-9273061) for 41343 or 400 stations - so it is on AMD CPU, but not the "official" timing.
100+
- "41K" and "400" are the time (in milliseconds) reported on OVH public cloud by `paweld` in [the "Alternative results" discussion thread](https://github.com/gcarreno/1brc-ObjectPascal/discussions/103#discussioncomment-9307532) for 41343 or 400 stations - so it is on AMD CPU, but not the "official" timing.
101101

102102
So we have a good coverage on what should be the best solution to propose.
103103

104-
Note that those timings differs from what I got on my own Intel Core i5 computer, on which the 400 stations version is much faster than the 41K stations. Seems to be because of diverse CPU cache sizes - [see below](#analysis).
104+
Note that those timings differs from what I got on my own Intel Core i5 computer, on which the 400 stations version is much faster than the 41K stations, and the *final* project is always faster (by a noticeable margin). Seems to be because of diverse CPU cache sizes - [see below](#analysis).
105105

106106
## Why L1 Cache Matters
107107

0 commit comments

Comments
 (0)