Поскольку вы включили тег F # и вас интересует параллельная производительность, я предполагаю, что вы используете асинхронный ввод-вывод F #, поэтому потоки никогда не блокируются, они просто переключаются между задачами, связанными с ЦП.
В этом случае идеально иметь такое же количество потоков, как и количество виртуальных ядер (по крайней мере, на основе моих экспериментов с F # в Ubuntu под Virtualbox под управлением Windows 7).Наличие большего количества потоков немного снижает производительность, а меньшее уменьшает производительность немного.
Кроме того, наличие большего количества виртуальных ядер, чем физических, немного снижает производительность.Но если это то, что вы не можете контролировать, просто убедитесь, что у вас есть активный рабочий поток для каждого виртуального ядра.