Blender Git Commit Log

Git Commits -> Revision 01e8e7d

Revision 01e8e7d by Sergey Sharybin (master)
November 20, 2018, 13:58 (GMT)
Task scheduler: Optimize parallel loop over lists

The goal is to address performance regression when going from
few threads to 10s of threads. On a systems with more than 32
CPU threads the benefit of threaded loop was actually harmful.

There are following tweaks now:

- The chunk size is adaptive for the number of threads, which
minimizes scheduling overhead.

- The number of tasks is adaptive to the list size and chunk
size.

Here comes performance comparison on the production shot:

Number of threads DEG time before DEG time after
44 0.09 0.02
32 0.055 0.025
16 0.025 0.025
8 0.035 0.033

Commit Details:

Full Hash: 01e8e7dc6d9dd3710e0e3872b2d70196ac654d14
Parent Commit: 9bc2570
Lines Changed: +42, -21

1 Modified Path:

/source/blender/blenlib/intern/task.c (+42, -21) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021