HyperThreading и разработка приложений:

анализ текущего состояния



Введение



Intel очень сильно рассчитывает на успех своей технологии HyperThreading (HT). Фактически, основным фокусом недавно выпущенной линейки компиляторов от Intel является HT, компания говорит: "мы прокладываем путь для технологии Intel HyperThreading". К тому же, новые компиляторы успокоят недовольство обозревателей по поводу отсутствия готовых компиляторов на момент выпуска первых HT процессоров. Как утверждает Intel, при работе приложений на HT процессорах Pentium 4 достигается 25% улучшение производительности, однако этот прирост по большей части связан с использованием нужного компилятора. В отношении программ технология Intel HT, позволяющая одному физическому процессору создавать второй логический процессор для параллельной работы с первым, даст ощутимый прирост производительности к 3,06 ГГц и более быстрым процессорам Pentium 4, независимо от тактовой частоты и в широком спектре приложений. Если в словах Intel содержится истина, преимущество от HT получат предположительно все программы с "тяжелыми" вычислениями. Сюда включены массивные транзакционные вычисления, финансовые, инженерные и научные расчеты, игры и приложения по созданию спецэффектов, или, говоря кратко, все приложения, полностью загружающие процессор и имеющие более одного потока. Максимальный 25% прирост производительности наблюдается с помощью стандартных тестов, например, по числу кадров в секунду в графических приложениях.



Однако HT не даст ощутимого прироста приложениям, незначительно нагружающим процессор. Это электронные таблицы, текстовые редакторы или почтовые программы - а ведь именно с такими приложениями работает средний пользователь. В общем, толку от HT мало, если процессор не загружается под самое горло и приложение не использует несколько потоков.



HT приложения



Intel описывает главный признак ориентированных на HT приложений с точки зрения многозадачности следующим образом: поток планировщика работает на процессоре все время для максимизации использования ресурсов процессора. Каждому процессу выдается временной промежуток, во время которого он выполняется. Создание процесса включает генерацию адресного пространства и образа приложения в памяти, где содержится секция кода, секция данных и стек. Параллельное программирование включает создание двух или более процессов и механизма связи между процессами для координации параллельной работы. Потоки - это задания, работающие независимо друг от друга в контексте процесса. Поток разделяет код и данные с родительским процессом, но имеет свой уникальный стек и архитектурное состояние, которое включает указатель инструкций. Потоки требуют меньше системных ресурсов, чем процессы. К примеру, связь внутри процесса осуществляется намного "дешевле", чем связь между процессами.



Преимущества



Как утверждает Intel, разбиение приложения на потоки может привести к увеличению производительности на однопроцессорной машине или на многопроцессорной системе. Потоки повышают время реакции графического интерфейса. Они также помогают улучшить взаимосвязь между операциями ввода/вывода и вычислениями. Если в системе присутствует несколько процессоров, то многопоточные приложения получают ощутимый прирост производительности.

 

Copyright @ by Lehach, 2009