blender/tests/gtests
Bastien Montagne f9028a3be1 BLI_task: Add pooled threaded index range iterator.
This code allows to push a set of different operations all based on
iterations over a range of indices, and then process them all at once
over multiple threads.

This commit also adds unit tests for both old un-pooled, and new pooled
`task_parallel_range` family of functions, as well as some basic
performances tests.

This is mainly interesting for relatively low amount of individual
tasks, as expected.

E.g. performance tests on a 32 threads machine, for a set of 10
different tasks, shows following improvements when using pooled version
instead of ten sequential calls to `BLI_task_parallel_range()`:

    | Num Items | Sequential | Pooled  | Speed-up |
    | --------- | ---------- | ------- | -------- |
    |       10K |     365 us |  138 us |   2.5  x |
    |      100K |     877 us |  530 us |   1.66 x |
    |     1000K |    5521 us | 4625 us |   1.25 x |

Differential Revision: https://developer.blender.org/D6189
2019-11-25 11:58:09 +01:00
..
alembic Depsgraph: Pass bmain to depsgraph object creation 2019-09-11 10:43:27 +02:00
blenlib BLI_task: Add pooled threaded index range iterator. 2019-11-25 11:58:09 +01:00
bmesh Fix T63678 Link error of tests with MSVC. 2019-04-17 07:58:48 -06:00
guardedalloc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
testing ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
CMakeLists.txt ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00