У меня есть код c, который я хочу работать так же быстро, как я могу на Windows
Этот код работает в диапазоне номеров, и для каждого числа выполняйте большую работу процессора.
Каждый номер независим от других чисел.
Поскольку я хочу это быстрее всего, я хочу запустить его на всех своих ядрах процессора.
Что я делаю сейчас, например, мне нужно работать в диапазоне 0-1000, и у меня есть 10 ядер, я создаю 10 процессов из моего кода c и разделяю работу между ними.
Процесс1 работает в диапазоне 0-100, процесс2 работает в диапазоне 100-200 и т. Д.
Мы знаем, что нужно разделить каждый процесс на отдельное ядро (потому что каждый процесс использует много процессора), поэтому, когда я смотрю на диспетчер задач, все мои ядра используются на 100%.
Таким образом, каждый процесс выполняется как 5 часов (поэтому время выделения незначительно)
Если я создам поток для каждого ядра (а не процесс для каждого ядра), я знаю, что ОС будет знать, как разделить поток на ядра, это будет быстрее?
Возможно, процесс имеет другой планировщик или что-то еще, поэтому поток будет работать быстрее.
Возможно, много процессов замедляют работу ОС против потока в 1 процессе