Lines Matching refs:grainsize

7 Chunking is controlled by a *partitioner* and a *grainsize.*\  To gain
15 - Specify the grainsize when constructing the range. The thread
17 ``blocked_range<T>(begin,end,grainsize)``. The default value of
18 ``grainsize`` is 1. It is in units of loop iterations per chunk.
26 use an explicit grainsize ``G``.
41 The grainsize sets a minimum threshold for parallelization. The
49 grainsize for the range, but use an ``auto_partitioner`` and
51 partitioner. Both partitioners implement the automatic grainsize
57 explicit grainsize may occasionally be useful to prevent these
62 Because of the impact of grainsize on parallel loops, it is worth
64 and ``affinity_partitioner`` to choose the grainsize automatically.
81 The above figure illustrates the impact of grainsize by showing the
84 shows how too small a grainsize leads to a relatively high proportion of
85 overhead. Case B shows how a large grainsize reduces this proportion, at
87 of useful work depends upon the grainsize, not on the number of grains.
89 number of processors when setting a grainsize.
92 A rule of thumb is that ``grainsize`` iterations of ``operator()``
94 single iteration takes 100 clocks, then the ``grainsize`` needs to be at
98 #. Set the ``grainsize`` parameter higher than necessary. The grainsize
101 ``grainsize``\ =100,000. The rationale is that each iteration
109 #. Iteratively halve the ``grainsize`` parameter and see how much the
113 A drawback of setting a grainsize too high is that it can reduce
114 parallelism. For example, if the grainsize is 1000 and the loop has 2000
124 You do not have to set the grainsize too precisely.
128 versus grainsize, based on the floating point ``a[i]=b[i]*c``
143 that with a grainsize of one, most of the overhead is parallel
144 scheduling overhead, not useful work. An increase in grainsize brings a
147 large grainsize. At the end on the right, the curve turns up because the
149 threads. Notice that a grainsize over the wide range 100-100,000 works