f9028a3be1
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 |
||
---|---|---|
.. | ||
stubs | ||
BLI_array_ref_test.cc | ||
BLI_array_store_test.cc | ||
BLI_array_test.cc | ||
BLI_array_utils_test.cc | ||
BLI_delaunay_2d_test.cc | ||
BLI_edgehash_test.cc | ||
BLI_expr_pylike_eval_test.cc | ||
BLI_ghash_performance_test.cc | ||
BLI_ghash_test.cc | ||
BLI_hash_mm2a_test.cc | ||
BLI_heap_simple_test.cc | ||
BLI_heap_test.cc | ||
BLI_index_range_test.cc | ||
BLI_kdopbvh_test.cc | ||
BLI_linklist_lockfree_test.cc | ||
BLI_listbase_test.cc | ||
BLI_map_test.cc | ||
BLI_math_base_test.cc | ||
BLI_math_color_test.cc | ||
BLI_math_geom_test.cc | ||
BLI_memiter_test.cc | ||
BLI_path_util_test.cc | ||
BLI_polyfill_2d_test.cc | ||
BLI_ressource_strings.h | ||
BLI_set_test.cc | ||
BLI_stack_cxx_test.cc | ||
BLI_stack_test.cc | ||
BLI_string_map_test.cc | ||
BLI_string_ref_test.cc | ||
BLI_string_test.cc | ||
BLI_string_utf8_test.cc | ||
BLI_task_performance_test.cc | ||
BLI_task_test.cc | ||
BLI_vector_set_test.cc | ||
BLI_vector_test.cc | ||
CMakeLists.txt |