Да, я работал над приложением, которое работало лучше при работе на компьютере с отключенным HT .
В результате исходный код создавал вдвое больше потоков при запуске на многопоточном компьютере (что, как вы предполагаете, является чем-то вроде HT). Однако пропускная способность этих потоков была очень чувствительна к объему кэша, доступного для потока. При вдвое большем количестве потоков, борющихся за фиксированный объем кеша, доступный кеш на каждый поток был слишком низким, и происходило перебивание: было бы загружено больше пропусков кеша, загружалось бы больше обращений к основной памяти, а производительность значительно снижалась по сравнению с работой с меньше потоков и больше кеша на поток (это то, что вы получаете, если запускаете приложение на компьютере с отключенным HT).
Окончательное решение состояло в том, чтобы приложение лучше проверяло платформу HW и учитывало размеры кеша и объем кеша, который считался необходимым для каждого потока, при определении количества создаваемых потоков. В любом случае проблема быстро исчезла с последующим поколением процессоров, которые удвоили размер кэша (и тогда мы фактически начали видеть скромную выгоду от HT). Тем не менее, весь эпизод оставил долгое и длительное наследие рекомендации всегда отключать HT на любой платформе, на которой работало наше ПО, и коленный рефлекс «на машине не включен HT, не так ли? » Реагировал на любые проблемы с производительностью. (Я думаю, что основная проблема заключается в том, что большинство не-гиков просто не понимают, что такое HT).