I applied intel TBB's flow_graph(TBB version is tbb_2020_v3) into my project in android platform(ARMv8).
I found its cpu-usage is higher than previous version.
cpu-usage of non_flow_graph version is about 20%, and the flow_graph version is about 32%.
sum of nodes' computation time cost is very similar with previous, non_flow_graph version and flow_graph version are almost the same.
there are 20+ nodes in my project(I guess there are 20+ threads), and, they are serial, instead of concurrent. so, I think its cpu-usage should be the same as non_flow_graph version.
Unfortunately， they are not the same.
I guess the context switch is frequent if the task_schedule's frequency is high, and then, the cpu-usage will be high. Is there any guys would tell me my guess is right or wrong?
so, I change the graph's priority as "priority_low" through TBB's interface, unfortunately, the result is the same as before.
TBB's code about task_schedule in user-space is very difficult for me, I cannot understand its principle and the detail logic, so, I don't know how to modify the time unit(or say: task's timeslice).
I know we just can specify the task's timeslice in kernel-space, so, I just can specify the thread's priority in user-space as above, but the result is useless.
I just want to reduce the cpu-usage, is there any expert would tell me how to do?
There is a separate forum for TBB related queries(https://community.intel.com/t5/Intel-oneAPI-Threading-Building/bd-p/oneapi-threading-building-blocks).
We are moving this thread to that forum.