Task scheduler: Add minimum number of iterations per thread in parallel range
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 8 Jan 2018 11:08:18 +0000 (12:08 +0100)
committerSergey Sharybin <sergey.vfx@gmail.com>
Tue, 9 Jan 2018 15:09:33 +0000 (16:09 +0100)
commitc4e42d70a4949352f1233574cfc2da30c097439d
tree01dd50d86510f84ec90a8d9fcf9e680599ec9ef0
parent3144f0573a24a29363995d0fefeb8eeba1320f24
Task scheduler: Add minimum number of iterations per thread in parallel range

The idea is to support following: allow doing parallel for on a small range,
each iteration of which takes lots of compute power, but limit such range to
a subset of threads.

For example, on a machine with 44 threads we can occupy 4 threads to handle
range of 64 elements, 16 elements per thread, where each block of 16 elements
is very complex to compute.

The idea should be to use this setting instead of global use_threading flag,
which is only based on size of array. Proper use of the new flag will improve
threadability.

This commit only contains internal task scheduler changes, this setting is not
used yet by any areas.
source/blender/blenlib/BLI_task.h
source/blender/blenlib/intern/task.c