Так, я працював над додатком, який краще працює під час роботи на машині з відключеною технологією HT .
Що сталося, оригінальний код створив би вдвічі більше, ніж ниток при запуску на гіперточеній машині (ви можете припустити, що це суцільна точка HT). Однак пропускна здатність цих потоків була дуже чутливою до кількості кешу, доступного для потоку. Із вдвічі більшою кількістю потоків, що борються за фіксовану кількість кешу, доступний кеш на одну нитку був занадто низьким, і траплялося обмолот: було б завантаження більше пропусків кешу, завантаження більше доступу до основної пам’яті та продуктивність суттєво вразила порівняно з запуском менше ниток і більше кешу на нитку (що ви отримали, якщо запустили додаток на машині з відключеним HT).
Кінцевим виправленням було те, щоб програма додатково перевіряла HW-платформу та враховувала розміри кешу та кількість кешу, що вважається необхідним для потоку, вирішуючи, скільки ниток створити. У будь-якому випадку проблема швидко зникла з наступним поколінням процесорів, що збільшило розмір кешу (і ми фактично почали бачити скромну вигоду від HT). Однак цілий епізод залишив тривалий і тривалий спадок, коли рекомендувати HT завжди бути відключеним на будь-якій платформі, на якій працює наш SW, і поштовхом колін " що ця машина не ввімкнула HT так? ", Відповіді на будь-яку проблему з продуктивністю. (Я думаю, що основна проблема полягає в тому, що більшість тих, хто не поводиться, просто не розуміють, що саме HT є.)