Цитата:
И вы думаете разные потоки будут крутится на разных ядрах? А вот и нетушки.
|
Таки да. В любой нормальной ОС при наличии свободных ядер (а если активно занимает процессор только эта программа, то таковые имеются) потоки будут запущены на разных ядрах. Не далее, как неделю назад, запускал подсчет инфы от большого числа файлов: имел 24 ядра, запустил в 24 потока. Стало примерно в 20 раз быстрее. И загрузка процессора стала не 4%, а все 100%.
А потому можно сделать функцию, которая принимает агрументы и адерс функции вычисления (ведь все функции одинаковые по количеству и типу параметров), вызывает и сохраняет результат. После чего запустить много потоков (по числу ядер), передав соответствующие функции подсчета и аргументы.
А граф процессор, конечно, можно, но это уже не за 10 минут делается, это надо очень много курить все эти OpenMP и прочую жесть.