Bug/performance issue when running an optimization

 

So, I'd like to know if someone also faces a bug like this.


I'm running an optimization where the cores of my computer are used:



As you can see, the tasks sent to cores 1, 2 and 3 are finished. The tasks sent to the 4th core, however, are still being processed, but only because more tasks were passed to this specific core than to the others (it's common to have a few more tasks on one core than the others, but in this case 100 tasks were way too much).

As I could observe, new tasks are not enqueued until all cores have processed all pending tasks. This would not be a problem if all cores received a similar amount of tasks. If they don't, however, the optimization speed is severely affected - in this example, a single core must process 100 tasks more than all the others so new tasks are sent to the processor. In the meanwhile, the 'finished' cores are set to a waiting status and do nothing until then (in this case, it took me some minutes until this core processed all the tasks, which would probably have taken a few seconds if all cores were used).


I just would like to ask if you guys observe the same behavior (that is, that new tasks are only enqueued when all the old tasks have been processed) and if in some occasions some cores receive a significant amount of tasks than the others.