[
https://issues.apache.org/jira/browse/ARROW-12395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Weston Pace updated ARROW-12395:
--------------------------------
Description:
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}
was: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)
> [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
> Priority: Major
>
> 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)