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