You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Wes McKinney (JIRA)" <ji...@apache.org> on 2019/08/01 17:36:00 UTC

[jira] [Closed] (ARROW-6098) [C++] Partially mitigating CPU scaling effects in benchmarks

     [ https://issues.apache.org/jira/browse/ARROW-6098?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Wes McKinney closed ARROW-6098.
-------------------------------
    Resolution: Not A Problem

Got it, thanks

> [C++] Partially mitigating CPU scaling effects in benchmarks
> ------------------------------------------------------------
>
>                 Key: ARROW-6098
>                 URL: https://issues.apache.org/jira/browse/ARROW-6098
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Wes McKinney
>            Priority: Major
>
> We have a lot of benchmarks that return results based on a single iteration
> {code}
> (arrow-3.7) 10:46 ~/code/arrow/cpp/build  (master)$ ./release/arrow-builder-benchmark --benchmark_filter=Dict
> 2019-08-01 10:46:03
> Running ./release/arrow-builder-benchmark
> Run on (12 X 4400 MHz CPU s)
> CPU Caches:
>   L1 Data 32K (x6)
>   L1 Instruction 32K (x6)
>   L2 Unified 256K (x6)
>   L3 Unified 12288K (x1)
> ***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
> ---------------------------------------------------------------------------
> Benchmark                                    Time           CPU Iterations
> ---------------------------------------------------------------------------
> BuildInt64DictionaryArrayRandom      622889286 ns  622864485 ns          1   411.004MB/s
> BuildInt64DictionaryArraySequential  546764048 ns  545992395 ns          1   468.871MB/s
> BuildInt64DictionaryArraySimilar     737759293 ns  737696850 ns          1   347.026MB/s
> BuildStringDictionaryArray           985433473 ns  985363901 ns          1   346.608MB/s
> (arrow-3.7) 10:46 ~/code/arrow/cpp/build  (master)$ ./release/arrow-builder-benchmark --benchmark_filter=Dict
> 2019-08-01 10:46:09
> Running ./release/arrow-builder-benchmark
> Run on (12 X 4400 MHz CPU s)
> CPU Caches:
>   L1 Data 32K (x6)
>   L1 Instruction 32K (x6)
>   L2 Unified 256K (x6)
>   L3 Unified 12288K (x1)
> ***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
> ---------------------------------------------------------------------------
> Benchmark                                    Time           CPU Iterations
> ---------------------------------------------------------------------------
> BuildInt64DictionaryArrayRandom      527063570 ns  527044023 ns          1   485.728MB/s
> BuildInt64DictionaryArraySequential  566285427 ns  566270336 ns          1   452.081MB/s
> BuildInt64DictionaryArraySimilar     762954193 ns  762332297 ns          1   335.812MB/s
> BuildStringDictionaryArray           991095766 ns  991018875 ns          1    344.63MB/s
> {code}
> I'm sure the result here is being heavily affected by CPU scaling but I think we can mitigate the impact of CPU scaling by using the `MinTime`. I find that adding `MinTime(1.0)` to these particular benchmarks makes them more consistent



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)