История изменений
Исправление AntonI, (текущая версия) :
Ну и приплыли. Правая граница по данным является общей для обеих потоков, ее нужно либо делать атомиком либо ее декремент оборачивать в критическую секцию. Прощай производительность.
Насколько я понимаю, поскольку тут никаких вычислений не производится вообще, дефрагментацию можно делать в один тред, это типичная memory-bound задача.
И насколько я знаю задачи thunar (моделирование плазмы методом PIC) эта дефрагментация отнюдь не является узким местом, там есть более другие места которые действительно стоит пооптимизировать.
Исходная версия AntonI, :
Ну и приплыли. Правая граница по данным является общей для обеих потоков, ее нужно либо делать атомиком либо ее декремент оборачивать в критическую секцию. Прощай производительность.
Насколько я понимаю, поскольку тут никаких вычислений не производится вообще, дефрагментацию можно делать в один тред.
И насколько я знаю задачи thunar (моделирование плазмы методом PIC) эта дефрагментация отнюдь не является узким местом, там есть более другие места которые действительно стоит пооптимизировать.