Там действительно нет путаницы.
Ядро - это процессор на кристалле. Вы можете иметь процессор, который представляет собой одно ядро в одном пакете.
Вы также можете иметь двухъядерный процессор, который представляет собой 1 пакет с несколькими процессорами. То же самое касается любого многоядерного. Вы могли бы иметь 1000-ядерный процессор, его еще один пакет с 1000 процессоров.
Мультипроцессор - это несколько сокетов и физических пакетов ЦП. Вы можете иметь 2 одноядерных процессора или более. Вы также можете иметь несколько многоядерных процессоров, предполагая, что процессор поддерживает это. Четырехъядерные процессоры - это то же самое, что иметь 16 процессоров в отдельных пакетах или 1 16-ядерный пакет с точки зрения мощности и производительности. Это просто 4 пакета и 4 ядра для каждого пакета.
Потоки - это количество отдельных процессов, которые могут выполняться одновременно. Проще говоря, большинство процессоров могут обрабатывать 1 поток одновременно, а Hyperthreading может выполнять 2 потока одновременно. HTT (Hyperthreading) означает, что каждое ядро (не имеет значения, если его 2 на 1 или 1 на 2) может выполнять 2 потока. Таким образом, четырехъядерный HTT-процессор теоретически может делать 8 потоков. Это не всегда правильно, и некоторые программы очень плохо справляются с HTT.
Что касается вашего процесса, сложно сказать. Если у вас было 10 ядер с Hyper-многопоточностью, и приложение могло работать только в одном потоке, то вы, вероятно, могли бы иметь 20 отдельных экземпляров, предполагая: у вас достаточно оперативной памяти. Дисководы могут не отставать от операций ввода-вывода. Ничто другое не прерывает и не берет на себя
Если процесс не может заполнить весь ЦП сам по себе (скажем, он загружен на 50%), вы также можете добавить несколько дополнительных потоков / заданий в пул.