Почему "физические (да и логические) ядра не стоит называть потоками"?
Потому что архитектура современных процессоров давно является конвеерной. Грубо говоря, это означает, что машинный код раскладывается на более простые операции, которые раскидываются по конвеерам даже в рамках одной последовательности команд. Производительность выполнения при этом зависит в т.ч. и от того, насколько эффективно эти операции удается раскидать - т.е. чтобы разнотиповые конвееры меньше простаивали. Также используется технология MultiThreading, по сути представляющая из себя возможность одновременного выполнения двух последовательностей команд на одном и том же наборе конвееров - понятно, что эффективность данного подхода резко ограничивается, особенно если обе последовательности используют один и тот же тип конвееров. Эта технология в общем-то ничем не выделяется от иных оптимизаций, кроме того, что в системе виртуально удваиваются ядра - потому о ней люди больше знают, чем о других. Другими словами, перед тем, чтоб склонять слово поток, надо определиться, что вы под этим понимаете.
-- 05.01.2017, 02:54 --А чем ещё (кроме кол-ва ядер, охлаждения, частоты RAM)?
С эволюцией процессоров можно отследить падение цены отдельных операций в тактах. Т.е. то, что когда-то занимало 30 тактов, потом стало занимать 10, 5, 3, а потом один (например, умножение).
Кроме того, появились SIMD-инструкции, вышеупомянутые конвееры, разложение CISC-кового кода в RISC, перестановка выполнения команд, предсказатели условных переходов и др. делающее оценку производительности достаточно сложной, не совсем линейной, статистической задачей, на практике, часто выполняющуюся эмпирически.
Существуют эмпирические оценщики производительности, например
passmark. Там, например, можете заметить, что у более новых процессоров удельная скалярная оценка производительности на килогерц растет.
-- 05.01.2017, 03:05 --за счёт распараллеливания до многих десятков/сотен/тысяч подзадач выиграть могут
Или проиграть, за счет чрезвычайно низкой удельной производительности на ядро при сложно распараллеливаемых задачах, принципиально ограниченного набора типов инструкций, сложности программирования, проблемах с переносом на другие платформы.
Надо отдавать себе отчет, что производительность вычислительного узла - на самом деле есть величина векторная. И только из-за того, что в выделенном подклассе x86-процессоров дикие перекосы встречаются редко, как и в подклассе ARM-процессоров, или видеокарт - имеют место быть скалярные оценки в рамках похожего типа вычислительных узлов. Объективные в рамках собственной испорченности.