blender/tests/gtests/blenlib
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
..
stubs Cleanup: missing declaration warnings 2019-10-20 16:42:49 +11:00
BLI_array_ref_test.cc BLI: new C++ ArrayRef, Vector, Stack, ... data structures 2019-09-12 14:23:21 +02:00
BLI_array_store_test.cc ClangFormat: format '#if 0' code in source/ 2019-04-17 08:24:14 +02:00
BLI_array_test.cc BLI: new C++ ArrayRef, Vector, Stack, ... data structures 2019-09-12 14:23:21 +02:00
BLI_array_utils_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_delaunay_2d_test.cc Cleanup: clang-format, spelling 2019-10-10 10:29:50 +11:00
BLI_edgehash_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_expr_pylike_eval_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_ghash_performance_test.cc Cleanup: comment line length (tests) 2019-04-20 10:08:59 +02:00
BLI_ghash_test.cc Cleanup: comment line length (tests) 2019-04-20 10:08:59 +02:00
BLI_hash_mm2a_test.cc Cleanup: comment line length (tests) 2019-04-20 10:08:59 +02:00
BLI_heap_simple_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_heap_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_index_range_test.cc BLI: new C++ ArrayRef, Vector, Stack, ... data structures 2019-09-12 14:23:21 +02:00
BLI_kdopbvh_test.cc Cleanup: clang-format, trailing space 2019-10-23 01:06:15 +11:00
BLI_linklist_lockfree_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_listbase_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_map_test.cc Cleanup: missing declaration warnings 2019-10-20 16:42:49 +11:00
BLI_math_base_test.cc BLI: new C++ hash table data structures 2019-09-13 10:06:02 +02:00
BLI_math_color_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_math_geom_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_memiter_test.cc Cleanup: quiet warnings 2019-10-07 12:22:05 +11:00
BLI_path_util_test.cc Cleanup: clang-format, sort structs & cmake files 2019-08-15 01:34:58 +10:00
BLI_polyfill_2d_test.cc GTest: test cases for polyfill2d bug T67109 2019-08-05 22:44:16 +10:00
BLI_ressource_strings.h ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_set_test.cc BLI: Improve forwarding semantics of some data structures 2019-09-14 12:11:14 +02:00
BLI_stack_cxx_test.cc BLI: Improve forwarding semantics of some data structures 2019-09-14 12:11:14 +02:00
BLI_stack_test.cc ClangFormat: apply to source, most of intern 2019-04-17 06:21:24 +02:00
BLI_string_map_test.cc BLI: Improve forwarding semantics of some data structures 2019-09-14 12:11:14 +02:00
BLI_string_ref_test.cc BLI: new StringRef and StringRefNull data structures 2019-09-12 16:55:35 +02:00
BLI_string_test.cc Cleanup: missing declaration warnings 2019-10-20 16:42:49 +11:00
BLI_string_utf8_test.cc Cleanup: comment line length (tests) 2019-04-20 10:08:59 +02:00
BLI_task_performance_test.cc BLI_task: Add pooled threaded index range iterator. 2019-11-25 11:58:09 +01:00
BLI_task_test.cc BLI_task: Add pooled threaded index range iterator. 2019-11-25 11:58:09 +01:00
BLI_vector_set_test.cc BLI: rename SetVector to VectorSet 2019-09-14 12:37:58 +02:00
BLI_vector_test.cc Cleanup: missing declaration warnings 2019-10-20 16:42:49 +11:00
CMakeLists.txt BLI: rename SetVector to VectorSet 2019-09-14 12:37:58 +02:00