Go to file
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
.github Revert "Merge branch 'master' into blender-v2.81-release" 2019-10-11 21:31:58 +02:00
build_files Cleanup: remove unused CMake WITH_MOD_CLOTH_ELTOPO option 2019-11-25 14:52:44 +11:00
doc Merge branch 'blender-v2.81-release' 2019-11-16 02:42:33 +11:00
extern Cleanup: remove unused CMake WITH_MOD_CLOTH_ELTOPO option 2019-11-25 14:52:44 +11:00
intern Cleanup: doxygen comments 2019-11-25 01:51:11 +11:00
release Cleanup: remove unused text.selection_set select option 2019-11-24 22:05:59 +11:00
source BLI_task: Add pooled threaded index range iterator. 2019-11-25 11:58:09 +01:00
tests BLI_task: Add pooled threaded index range iterator. 2019-11-25 11:58:09 +01:00
.arcconfig Update for moving blender2.8 to master. 2018-12-21 12:15:21 +01:00
.clang-format clang-format: add particle loop macros 2019-09-26 17:52:49 +02:00
.editorconfig editorconfig: correct indent size 2019-04-17 13:34:46 +02:00
.gitignore Initial implementation of code signing routines 2019-11-13 09:24:41 +01:00
.gitmodules Update for moving blender2.8 to master. 2018-12-21 12:15:21 +01:00
CMakeLists.txt Cleanup: remove unused CMake WITH_MOD_CLOTH_ELTOPO option 2019-11-25 14:52:44 +11:00
COPYING
GNUmakefile Fix make BUILD_CMAKE_ARGS not combining with targets like ninja and lite 2019-11-22 17:38:15 +01:00
make.bat Build: add "make test" command for Windows, output log file 2019-09-12 20:23:03 +02:00
readme.rst readme: separate development links 2019-04-13 14:45:51 +02:00

.. Keep this document short & concise,
   linking to external resources instead of including content in-line.
   See 'release/text/readme.html' for the end user read-me.


Blender
=======

Blender is the free and open source 3D creation suite.
It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing,
motion tracking and video editing.

.. figure:: https://code.blender.org/wp-content/uploads/2018/12/springrg.jpg
   :scale: 50 %
   :align: center


Project Pages
-------------

- `Main Website <http://www.blender.org>`__
- `Reference Manual <https://docs.blender.org/manual/en/latest/index.html>`__
- `User Community <https://www.blender.org/community/>`__

Development
-----------

- `Build Instructions <https://wiki.blender.org/wiki/Building_Blender>`__
- `Code Review & Bug Tracker <https://developer.blender.org>`__
- `Developer Forum <https://devtalk.blender.org>`__
- `Developer Documentation <https://wiki.blender.org>`__


License
-------

Blender as a whole is licensed under the GNU Public License, Version 3.
Individual files may have a different, but compatible license.

See `blender.org/about/license <https://www.blender.org/about/license>`__ for details.