Knowing the smallest grainsize used before execution
I would like to know if it exists a way to get (or guess) what will be the grainsize that TBB will use (not the one we give to it and expect it will use).
Indeed, I need to allocate a certain number of data in function of the smallest grainsize used. So far I thought the smallest grainsize used was the one I give to TBB, but I tried some configurations and I found out that the smallest grainsize can be smaller than the grainsize we give to TBB, in certain circumstances.
Is there a "trick" or a simple way to know/guess what will be the smallest grainsize TBB will use in function of the given grainsize BEFORE running the parallel code, i.e typically after the init ? In other words : how TBB chose the grainsize ?
Grainsize is the largest (sub)range size that TBB will not subdivide, so, given large-enough input range size, chunk size will not be smaller than about grainsize/2. Please don't use the word grainsize to mean chunk size.