Предположительно, ваш "8-ядерный" компьютер поддерживает SMT (Hyperthreading), что означает, что он имеет 16 потоков выполнения или "логических процессоров". Если вы запускаете 8 процессов, связанных с процессором, вы занимаете 8 из этих 16, что приводит к 50% использования / 50% простоя.
Это немного вводит в заблуждение, поскольку SMT-потоки aren ' t независимые ядра; они делят ресурсы со своими «братьями по SMT» на том же ядре. Использование только половины из них не означает, что вы получаете только половину доступной вычислительной мощности. В зависимости от рабочей нагрузки, занятость обоих потоков SMT может получить 150% пропускной способности при использовании только одного; на самом деле это может быть медленнее из-за борьбы с кешем или где-то между ними.
Так что вам нужно проверить себя; Лучшее место для вашего приложения может быть между 8 и 16 параллельными процессами. Единственный способ узнать - это измерить.