- Mentioned In
- R37:985fd222185e: Merge remote-tracking branch 'origin/master' into akamakin/T8628-multithreading…
R37:4734559a58cd: Merge branch 'akamakin/T8628-multithreading-optimization' into my-work-branch
R37:e2834ea579d8: Merge remote-tracking branch 'origin/master' into akamakin/T8628-multithreading…
R37:d9dce0b93ca7: Merge branch 'akamakin/T8628-multithreading-optimization'
R37:e4c03b2f0912: Merge remote-tracking branch 'origin/master' into akamakin/T8628-multithreading…
R37:a95bd277ccbd: Merge branch 'master' into akamakin/T8628-multithreading-optimization
R37:6954a2029fef: Merge branch 'master' into akamakin/T8628-multithreading-optimization
Current project state: I guess that project is done by 2/3. I managed to add lock free hash table to fix thread waiting on blocking one, there are still some bugs there that I'm currently trying to fix. That was the first part. Then there were 3 locks in KisTiledDataManager class, they also were fixed and tested. The last one is associated with scheduling jobs, there are 4 hotspots that had to be fixed, I managed to get rid of 2 of them, but last 2 are quite deeply connected with scheduling algorithm. I tried making classes lock free and introduce RW locks, but it was a week of segfauls and errors... There is some work on that, but last 2 spots are really tough, maybe they must be fixed on higher level by introducing new interfaces.
Here are some drafts on performance gain during different coding period:
My PC (2 cores 4 threads): https://docs.google.com/spreadsheets/d/1744goPIfc51j49Nlm8othm2599ozOAYEICV64wabKYk/edit#gid=0
Black monster (10 cores 20 threads): https://docs.google.com/spreadsheets/d/1lmrh37o_nPkRjFCjCEaqyuX0UyIhNC3VxIjMvhmK1c4/edit#gid=0
Vtune output with all latest fixes.