Как я могу использовать 100% мощности машины при использовании [Parallel.ForEach]?
long lngSum = 0;
Parallel.ForEach(Partitioner.Create(0L, lngMax + 1), range =>
{
long local = 0;
//4cores : 9 ranges
//64cores : 97 ranges
for (long i = range.Item1; i <= range.Item2 - 1; i++)
{
if (i % 2 == 0)
{
local += i;
}
else
{
local -= i;
}
}
Interlocked.Add(ref lngSum, local);
});
Когда я запускаю этот код C# на 4-ядерном компьютере, общее использование процессора составило 100%.
но
Когда я запускаю этот код C# на 64-ядерном компьютере, общая загрузка ЦП составляла не 100%, а только 50~60%.
Как я могу использовать 100% мощности машины?