Найкращий вибір залежить від системи. Отже, що ви хочете зробити, це запустити обидві версії в реальній системі, а потім перевірити, як система реагує. Чи можете ви ще використовувати браузер, текстовий редактор та інші речі у вашій системі? А ефективність краща при використанні n ниток, а не n-1? Що станеться, якщо ви запускаєте додаток разом з іншим додатком, який намагається використовувати всі процесори?
І тоді вам потрібно подумати про гіпертонус. З чотирма ядрами плюс гіпертретування, ви можете використовувати 8 ядер, або 7 ядер. Знову ж таки, спробуйте систему чуйності та час, щоб закінчити.
І нарешті, подумайте, як розділити свою роботу на більше блоків, ніж на потоки. Причина полягає в тому, що різні потоки закінчать роботу в різний час, і тоді ви хочете, щоб деякі роботи залишилися, щоб передати швидші потоки. Інакше вам доведеться почекати, поки не закінчиться остання нитка.
PS. "Hyperthreading не може допомогти з інтенсивним кодом FPU, оскільки є лише один FPU". Абсолютно неправильно. Неймовірно складно, навіть з інтенсивним кодом FPU, повною мірою використовувати FPU через затримки. Hyperthreading допомагає, оскільки для планування доступно вдвічі більше незалежних операцій.