You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Weston Pace (Jira)" <ji...@apache.org> on 2021/04/15 17:36:00 UTC

[jira] [Assigned] (ARROW-12395) [C++]: Create RunInSerialExecutor benchmark

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

Weston Pace reassigned ARROW-12395:
-----------------------------------

    Assignee: Weston Pace

> [C++]: Create RunInSerialExecutor benchmark
> -------------------------------------------
>
>                 Key: ARROW-12395
>                 URL: https://issues.apache.org/jira/browse/ARROW-12395
>             Project: Apache Arrow
>          Issue Type: Improvement
>            Reporter: Weston Pace
>            Assignee: Weston Pace
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> It should be pretty comparable to the other task schedulers.  I've drafted something already and it seems to be somewhere between the spawn/serial task group benchmarks (which are pretty optimized) and the submit benchmark (which is pretty slow)
>  
> Example output
> {code:java}
> -----------------------------------------------------------------------------------------------------------------
> Benchmark                                                       Time             CPU   Iterations UserCounters...
> -----------------------------------------------------------------------------------------------------------------
> ReferenceWorkloadCost/task_cost:1000/real_time                693 ns          692 ns       940807 items_per_second=1.4437M/s
> ReferenceWorkloadCost/task_cost:10000/real_time              6930 ns         6929 ns        95882 items_per_second=144.297k/s
> ReferenceWorkloadCost/task_cost:100000/real_time            69740 ns        69724 ns         9719 items_per_second=14.3391k/s
> SerialTaskGroup/task_cost:1000/real_time                  6969856 ns      6968315 ns          105 items_per_second=1.43489M/s
> SerialTaskGroup/task_cost:10000/real_time                 6510709 ns      6509131 ns           96 items_per_second=153.747k/s
> SerialTaskGroup/task_cost:100000/real_time                6599298 ns      6597857 ns           95 items_per_second=15.3047k/s
> RunInSerialExecutor/task_cost:1000/real_time                 1221 ns         1221 ns       563428 items_per_second=818.804k/s
> RunInSerialExecutor/task_cost:10000/real_time                7768 ns         7766 ns        88250 items_per_second=128.735k/s
> RunInSerialExecutor/task_cost:100000/real_time              72916 ns        72898 ns         9395 items_per_second=13.7145k/s
> ThreadPoolSpawn/threads:1/task_cost:1000/real_time      199102152 ns     78682656 ns            4 items_per_second=1004.51k/s
> ThreadPoolSpawn/threads:1/task_cost:10000/real_time     148326220 ns      5915479 ns            5 items_per_second=134.845k/s
> ThreadPoolSpawn/threads:1/task_cost:100000/real_time    144870312 ns       805224 ns            5 items_per_second=13.8124k/s
> ThreadedTaskGroup/threads:1/task_cost:1000/real_time      9177560 ns        18874 ns           73 items_per_second=1089.72k/s
> ThreadedTaskGroup/threads:1/task_cost:10000/real_time     6899864 ns        21636 ns           90 items_per_second=145.075k/s
> ThreadedTaskGroup/threads:1/task_cost:100000/real_time    7307121 ns        24868 ns           95 items_per_second=13.8221k/s
> ThreadPoolSubmit/threads:1/task_cost:1000/real_time      33442213 ns     21155761 ns           20 items_per_second=299.053k/s
> ThreadPoolSubmit/threads:1/task_cost:10000/real_time     11966838 ns      1763623 ns           56 items_per_second=83.6478k/s
> ThreadPoolSubmit/threads:1/task_cost:100000/real_time    10652720 ns       244028 ns           59 items_per_second=9.48115k/s
> {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)