You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2020/06/23 16:40:05 UTC
[GitHub] [arrow] wesm edited a comment on pull request #7525: ARROW-9214: [C++] Use separate functions for valid/not-valid values in VisitArrayDataInline
wesm edited a comment on pull request #7525:
URL: https://github.com/apache/arrow/pull/7525#issuecomment-648279829
Here's the sort benchmarks prior to the initial visitor_inline.h changes
gcc-8:
```
benchmark baseline contender change % counters
2 SortToIndicesInt64Count/32768/1/min_time:1.000 4.578 GiB/sec 5.269 GiB/sec 15.096 {'iterations': 209972, 'null_percent': 100.0}
0 SortToIndicesInt64Compare/32768/1/min_time:1.000 4.604 GiB/sec 5.282 GiB/sec 14.722 {'iterations': 212391, 'null_percent': 100.0}
3 SortToIndicesInt64Compare/1048576/1/min_time:1.000 4.596 GiB/sec 5.108 GiB/sec 11.149 {'iterations': 6619, 'null_percent': 100.0}
9 SortToIndicesInt64Count/1048576/1/min_time:1.000 4.612 GiB/sec 5.098 GiB/sec 10.548 {'iterations': 6632, 'null_percent': 100.0}
11 SortToIndicesInt64Count/8388608/1/min_time:1.000 4.331 GiB/sec 4.745 GiB/sec 9.561 {'iterations': 782, 'null_percent': 100.0}
4 SortToIndicesInt64Compare/8388608/1/min_time:1.000 4.336 GiB/sec 4.742 GiB/sec 9.357 {'iterations': 775, 'null_percent': 100.0}
7 SortToIndicesInt64Count/32768/10000/min_time:1.000 1.922 GiB/sec 2.101 GiB/sec 9.299 {'iterations': 87523, 'null_percent': 0.01}
10 SortToIndicesInt64Count/32768/2/min_time:1.000 836.548 MiB/sec 862.251 MiB/sec 3.073 {'iterations': 37646, 'null_percent': 50.0}
15 SortToIndicesInt64Compare/32768/2/min_time:1.000 244.171 MiB/sec 251.494 MiB/sec 2.999 {'iterations': 10912, 'null_percent': 50.0}
1 SortToIndicesInt64Compare/32768/10/min_time:1.000 157.085 MiB/sec 159.112 MiB/sec 1.290 {'iterations': 7038, 'null_percent': 10.0}
5 SortToIndicesInt64Compare/32768/0/min_time:1.000 151.208 MiB/sec 152.825 MiB/sec 1.069 {'iterations': 6831, 'null_percent': 0.0}
13 SortToIndicesInt64Compare/32768/10000/min_time:1.000 149.768 MiB/sec 150.096 MiB/sec 0.219 {'iterations': 6664, 'null_percent': 0.01}
12 SortToIndicesInt64Compare/32768/100/min_time:1.000 149.783 MiB/sec 149.835 MiB/sec 0.035 {'iterations': 6716, 'null_percent': 1.0}
6 SortToIndicesInt64Count/32768/0/min_time:1.000 2.440 GiB/sec 2.317 GiB/sec -5.020 {'iterations': 107181, 'null_percent': 0.0}
14 SortToIndicesInt64Count/32768/100/min_time:1.000 1.866 GiB/sec 1.607 GiB/sec -13.895 {'iterations': 86112, 'null_percent': 1.0}
8 SortToIndicesInt64Count/32768/10/min_time:1.000 1.795 GiB/sec 1.337 GiB/sec -25.485 {'iterations': 81140, 'null_percent': 10.0}
```
clang-8
```
benchmark baseline contender change % counters
8 SortToIndicesInt64Count/32768/10000/min_time:1.000 1.582 GiB/sec 2.017 GiB/sec 27.429 {'iterations': 71240, 'null_percent': 0.01}
4 SortToIndicesInt64Compare/32768/10000/min_time:1.000 150.179 MiB/sec 151.637 MiB/sec 0.971 {'iterations': 6727, 'null_percent': 0.01}
1 SortToIndicesInt64Compare/32768/100/min_time:1.000 150.667 MiB/sec 151.708 MiB/sec 0.691 {'iterations': 6799, 'null_percent': 1.0}
15 SortToIndicesInt64Compare/32768/0/min_time:1.000 154.512 MiB/sec 155.255 MiB/sec 0.481 {'iterations': 6960, 'null_percent': 0.0}
14 SortToIndicesInt64Compare/8388608/1/min_time:1.000 4.288 GiB/sec 4.298 GiB/sec 0.216 {'iterations': 721, 'null_percent': 100.0}
3 SortToIndicesInt64Compare/32768/1/min_time:1.000 4.759 GiB/sec 4.765 GiB/sec 0.135 {'iterations': 219030, 'null_percent': 100.0}
5 SortToIndicesInt64Count/1048576/1/min_time:1.000 4.586 GiB/sec 4.589 GiB/sec 0.064 {'iterations': 6584, 'null_percent': 100.0}
6 SortToIndicesInt64Compare/1048576/1/min_time:1.000 4.581 GiB/sec 4.581 GiB/sec -0.004 {'iterations': 6543, 'null_percent': 100.0}
11 SortToIndicesInt64Count/8388608/1/min_time:1.000 4.296 GiB/sec 4.295 GiB/sec -0.014 {'iterations': 772, 'null_percent': 100.0}
7 SortToIndicesInt64Compare/32768/2/min_time:1.000 255.324 MiB/sec 253.514 MiB/sec -0.709 {'iterations': 11541, 'null_percent': 50.0}
2 SortToIndicesInt64Compare/32768/10/min_time:1.000 162.353 MiB/sec 161.194 MiB/sec -0.714 {'iterations': 7318, 'null_percent': 10.0}
9 SortToIndicesInt64Count/32768/1/min_time:1.000 4.772 GiB/sec 4.737 GiB/sec -0.720 {'iterations': 216649, 'null_percent': 100.0}
0 SortToIndicesInt64Count/32768/0/min_time:1.000 2.156 GiB/sec 2.091 GiB/sec -3.013 {'iterations': 98848, 'null_percent': 0.0}
12 SortToIndicesInt64Count/32768/100/min_time:1.000 1.549 GiB/sec 1.463 GiB/sec -5.500 {'iterations': 71249, 'null_percent': 1.0}
13 SortToIndicesInt64Count/32768/2/min_time:1.000 688.856 MiB/sec 618.472 MiB/sec -10.218 {'iterations': 30030, 'null_percent': 50.0}
10 SortToIndicesInt64Count/32768/10/min_time:1.000 1.339 GiB/sec 1.110 GiB/sec -17.101 {'iterations': 61191, 'null_percent': 10.0}
```
I suspect the counting sort implementation can be further improved
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org