Как заставить один поток работать на все ядра?

У меня есть программа для вычислений, есть 1 проблема - она работает на одном ядре и заполняет его на 100%, не трогая остальные ядра, сама программа может работать только в 1 потоке (Вычисления нельзя делать асинхронно). Я же хочу что бы она работала на всех ядрах (Можно и без полной работы, хотя бы 200% на всех ядрах), искал в инете инфу - везде разная, но ни один метод не сработал. Может у кого такая проблема была? Можете помочь. введите сюда описание изображения


Ответы (1 шт):

Автор решения: Yotic

Я в коде использовал SetThreadInfinityMask, из-за чего у меня поток работал только на первое ядро, по стандарту и поток делится (Переходит) на различные ядра https://i.stack.imgur.com/9NZRb.png Вероятнее всего @S.H был прав, нужно запустить 4 потока и на каждый поток с помощью SetThreadInfinityMask наложить своё ядро.

Заметил кстати что с SetThreadInfinityMask получается менее потребляющий поток, ибо ему не нужно постоянно переходить на другие ядра ради балансировки.

→ Ссылка