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)