Blender Git Commit Log

Git Commits -> Revision e43b74d

Revision e43b74d by Sergey Sharybin (master)
November 3, 2014, 17:44 (GMT)
Optimization of parallel range

It now supports different scheduling schemas: dynamic and static.
Static one is the default and it splits work into equal number of
range iterations.

Dynamic one allocates chunks of 32 iterations which then being
dynamically send to a thread which is currently idling.

This gives slightly better performance. Still some tricks are
possible to have. For example we can use some smarter static scheduling
when one thread might steal tasks from another threads when it runs
out of work to be done.

Also removed unneeded spin lock in the mesh deform evaluation,
on the first glance it seemed to be a reduction involved here but
int fact threads are just adding value to the original vertex
coordinates. No write access to the same element of vertexCos
happens from separate threads.

Commit Details:

Full Hash: e43b74d87a43ab919b86434db9881608c5b9f762
Parent Commit: 4b3f1b7
Lines Changed: +39, -28

3 Modified Paths:

/source/blender/blenlib/BLI_task.h (+2, -1) (Diff)
/source/blender/blenlib/intern/task.c (+36, -19) (Diff)
/source/blender/modifiers/intern/MOD_meshdeform.c (+1, -8) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021