Научная статья на тему 'Применение современных процессоров для персональных компьютеров в параллельных вычислениях'

Применение современных процессоров для персональных компьютеров в параллельных вычислениях Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
104
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МНОГОЯДЕРНЫЕ ПРОЦЕССОРЫ / ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / ТЕХНОЛОГИЯ INTEL TURBO BOOST

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сазонов Максим Николаевич

Рассматриваются современные многоядерные процессоры, предназначенные для применения в персональных компьютерах. В графическом виде показаны преимущества многоядерных процессоров в параллельных вычислениях. Описывается технология Intel Turbo Boost, реализованная в процессорах Intel Core i5 и Intel Core i7, преимущество использования таких процессоров в параллельных вычислениях.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Применение современных процессоров для персональных компьютеров в параллельных вычислениях»

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

Библиографический список

1. Андрейчиков, А. В. Анализ, синтез, планирование решений в экономике / А. В. Андрейчиков, О. Н. Андрейчикова. - М. : Финансы и статистика, 2004.

2. Коганов, А. В. Векторные меры сложности, энтропии, информации / А. В. Коганов. - М. : Прогресс-Традиция, 2000. - Вып. 7, ч. 2. - (Математика. Компьютер. Образование).

3. Костюченко, В. В. Менеджмент строительства / В. В. Костюченко, К. М. Крюков, О. А. Кудинов. - Ростов н/Д. : Феникс, 2002.

4. Петухов, О. А. Моделирование: системное, имитационное, аналитическое : учеб. пос. / О. А. Петухов, А. В. Морозов и др. - 2-е изд., испр. и доп. - СПб. : Изд-во СЗТУ, 2008.

5. Полумордвинова, А. О. Информационная система анализа сетевых и иерархических данных в строительной области / А. О. Полумордвинова // Вестник АГТУ. - 2010 - № 1. - 161 с.

6. Саати, Т. Принятие решений. Метод анализа иерархий / Т. Саати. - М. : Радио и связь, 1993.

УДК 004.75

ПРИМЕНЕНИЕ СОВРЕМЕННЫХ ПРОЦЕССОРОВ ДЛЯ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ В ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЯХ

М.Н. Сазонов

Рассматриваются современные многоядерные процессоры, предназначенные для применения в персональных компьютерах. В графическом виде показаны преимущества многоядерных процессоров в параллельных вычислениях. Описывается технология Intel Turbo Boost, реализованная в процессорах Intel Core i5 и Intel Core i7, преимущество использования таких процессоров в параллельных вычислениях.

Ключевые слова: многоядерные процессоры, параллельные вычисления, технология Intel Turbo Boost.

Key words: multi-core processors, parallel computing, technology Intel Turbo Boost.

На протяжении длительного времени прогресс в области микропроцессоров фактически отождествлялся со значением тактовой частоты. В 2001 г. в корпоративных планах производителей микропроцессоров значилось, что уже к концу десятилетия будет преодолен барьер 10 ГГц [4]. Увы, планы эти оказались недостижимы вследствие физических ограничений существующих материалов и техпроцессов. Для повышения производительности пришлось разрабатывать многоядерные архитектуры.

В настоящее время практически невозможно встретить в продаже новые одноядерные процессоры. Крупнейшие производители(АМБ и Intel) снимают или давно сняли с производства одноядерные модели для персональных компьютеров. Таким образом, даже в нише бюджетных решений найти одноядерный процессор можно, только если он каким-либо об-

разом завалялся на складе. Большинство же процессоров являются двухъядерными. Растут продажи четырехъядерных процессоров. В настоящий момент в массовое производство поступают шестиядерные процессоры для персональных компьютеров, но стоимость позволяет использовать их только энтузиастам и не рассчитана на создание массовых систем. В серверном же сегменте шестиядерные процессоры существуют относительно давно. В настоящее время начались продажи серверов с восьмиядерными процессорами.

Все это приводит к тому, что в настоящий момент использование параллельных вычислений даже на неспециализированных компьютерах является все более и более привлекательным. Проблема заключается лишь в том, что большинство программного обеспечения написано для использования на одноядерных процессорах и совершенно не использует преимущества многоядерности. Хотя в наиболее распространенных и ресурсоемких приложениях (научные и графические пакеты программ) наблюдается тенденция реализации использования возможностей многоядерных процессоров. В некоторых приложениях, кроме того, реализована возможность использования графических ускорителей для расчетов (например, технологии nVIDIA CUD А и ATI Stream Computing).

Проведем сравнительный анализ распространенных на настоящий момент многоядерных процессоров и технологий на пригодность использования их в параллельных вычислениях.

В таблице приведены сравнительные характеристики современных многоядерных процессоров архитектуры х86. Рассматриваются процессоры для настольных персональных компьютеров среднего ценового диапазона. Определенный интерес представляют процессоры Intel с их технологией Turbo Boost.

Таблица

Сравнительные характеристики

сов ременных многоядерных процессе ров архитектуры x86

Модель Intel Core 2 Quad 9550 Intel Core i5-750 Intel Core i7-930 AMD Athlon II X4 640 AMD Phenom II X4 965 AMD Phenom II X6 1055T

Тактовая частота, ГГц 2,83 2,66 2,8 3,0 3,4 2,8

-Ядро Yorkfield Lynnfield Bloomfield Propus Deneb Thuban

Техпроцесс, мкм 0,045 0,045 0,045 0,045 0,045 0,045

Количество ядер 4 4 4 4 4 6

Объем кэша Ь1, Кб 64 x 4 64 x 4 64 x 4 128 x 4 128 x 4 128 x 6

Объем кэша Ь2, Кб 6144 x 2 256 x 4 256 x 4 512 x 4 512 x 4 512 x 6

Рассеиваемая мощность, Вт 95 95 130 95 140 125

Дополнительно TurboBoost TurboBoost, Hyper Threading

Цена, долл. 250 210 290 150 190 220

Turbo Boost - технология компании Intel для автоматического увеличения тактовой частоты процессора свыше номинальной, если при этом не превышаются ограничения мощности, температуры и тока в составе расчетной мощности (TDP). Это приводит к увеличению производительности однопоточных и многопоточных приложений.

Время работы системы в режиме Turbo Boost зависит от рабочей нагрузки, условий эксплуатации и конструкции платформы.

В чем заключается преимущество Turbo Boost в параллельных вычислениях? Не секрет, что не все вычисления можно «распараллелить» и часть кода может исполняться только

в однопоточном режиме. Рассмотрим выполнение некоторой абстрактной программы с элементами параллельных вычислений в графическом виде.

Представим объем вычислений в виде площади фигуры. По оси у будем считать производительность процессора в операциях в секунду (оп/сек), которая зависит от тактовой частоты процессора, ось х представляет собой время, за которое выполнился определенный блок программы.

На графике блоки программы, которые могут выполняться параллельно, представлены прямоугольниками с буквенным индексом Р,. а блок, который может быть выполнен только последовательно, - прямоугольником с индексом Л',. Предполагается, что каждый блок может выполняться одним ядром процессора.

На одноядерном процессоре график будет представлен следующим образом (см. рис. 1).

р(оп/сен)

Г ПГ ~Г ^__ГГ

р1 р2 рЗ р4 з1 р5 рб

—I—I—Ц—I—I—I—1-*-|—I—I—I—I—I—I—I—I—"—I——

г(сек)

Рис. I. График выполнения программы на одноядерном процессоре р(оп/сек)

Рис. 2. График выполнения программы на двухъядерном процессоре

На двухъядерном процессоре вид графика меняется (см. рис. 2).

На четырехъядерном процессоре график может выглядеть так, как представлено на рис. 3.

р(оп/сек)

--

р4 j

-- рЗ

Р2 j рб

р1 S1 р5

t(ceK)

Рис. 3. График выполнения программы на четырехъядерном процессоре

На четырехъядерном процессоре с использованием технологии Intel Turbo Boost график может иметь вид, представленный ниже (см. рис. 4).

р(оп/сек)

р4

рЗ

- Р2

Р1

і---+

t(cen)

Рис. 3. График выполнения программы на четырехъядерном процессоре использованием технологии Intel Turbo Boost

В данном случае процессор, обнаружив, что выполняется только один последовательный поток команд, повышает тактовую частоту ядра, на котором производятся вычисления, чем сокращает время выполнения блока кода. То же самое применимо, если выполняется только два потока команд.

Таким образом, исходя из предложения на рынке процессоров, можно предположить, что разработка программного обеспечения для персональных компьютеров с поддержкой параллельных вычислений, например, с использованием ОрепМР, является перспективным направлением. Особенно если учесть, что существуют относительно недорогие (в своем классе, конечно) платформы для сборки мощных двухпроцессорных рабочих станций. Стоимость и технические характеристики такой станции на основе двух четырехъядерных или шестиядерных процессоров будет ниже, чем создание кластера аналогичной производительности из одноядерных решений.

В средних размеров организациях с небольшим бюджетом это может являться достаточно важным фактором для принятия решений о приобретении и использовании такой системы. Применение многоядерных процессоров не обеспечит линейного роста производи-

тельности по сравнению с одноядерными, но позволит сократить время, необходимое для получения результатов расчетов.

Разумеется, для наиболее распространенных задач были разработаны алгоритмы и программы, позволяющие их решить. Тем не менее это не говорит о том, что разработку нового программного обеспечения для решения этих задач нужно оставить.

Большинство существующего программного обеспечения разрабатывается на основе унаследованного кода, написанного в то время, когда многоядерные процессоры были исключением, существующим на специальных разработках мало распространенных архитектур, что приводит к тому, что оно не задействует всех возможностей существующего аппаратного обеспечения. Частично эта проблема компенсируется разработчиками компиляторов исходного кода, позволяющих автоматически генерировать исполняемый код, пригодный для выполнения в параллельном режиме [1].

Существует немало специализированных прикладных пакетов: АЫ8У8. САМЕ88. АВАСШ8. 8ТАЯ-С0 и др. В общем случае их использование является наиболее экономичным и эффективных способом решения задач. Тем не менее нужно быть уверенным, что используемый пакет позволит решить задачу верно и эффективным образом. Дело в том, что реальные задачи разные, а прикладной пакет ориентирован на усредненный вариант [3]. Могут возникнуть ситуации, когда при некоторых критических значениях параметров задачи пакет не сможет предоставить правильный результат. Таким образом, перед применением пакета необходимо произвести оценку математики, методов, точности, диапазона входных данных и допустимых параметров моделей, заложенных в пакете. Второй вопрос - эффективность использования пакета на конкретной реализации кластера и конкретном наборе входных данных. Насколько хорошо пакет может масштабироваться по количеству процессоров? Сможет ли задействовать всю имеющуюся оперативную память? Какая производительность коммуникационной среды необходима для решения задачи [2]?

Основываясь на этих критериях при проектировании кластера, необходимо проанализировать задачи, которые будут на нем решаться. Из этого рассчитывается экономическая эффективность той или иной организации. При построении «бюджетных» кластеров можно использовать уже имеющееся оборудование, например, персональные компьютеры, соединенные сетью ЕЙ1ете1;, либо приобретать более новое оборудование, оснащенное многоядерными процессорами в многопроцессорных конфигурациях.

Расчет экономической эффективности здесь должен опираться на приведенные выше факторы. Например, преимущество использования многопроцессорных многоядерных узлов кластера может свести к минимуму высокие требования алгоритма решаемой задачи к оперативной памяти, так как на материнской плате может быть распаяно недостаточное количество слотов оперативной памяти, которое могла бы задействовать с максимальной эффективностью данная конфигурация. Пришлось бы менять/приобретать модули памяти более высокой емкости, которые стоят намного дороже, чем пара модулей с аналогичной суммарной емкостью. Масштабируемость по числу процессоров тоже может быть ограничена экономическим фактором. Например, чтобы добавить новый узел в кластер, необходимо приобрести материнскую плату с поддержкой двух/четырех процессоров и, как минимум, один процессор для введения ее в работу кластера. Позже можно докупать процессоры и память. Но серии процессоров сменяются достаточно часто, и есть риск не найти впоследствии такой же процессор.

В гетерогенной среде это решается проще, так как ограниченность в выборе оборудования там исключена с момента проектирования кластера. Оборудование может быть разнородным [6]. Но это преимущество может быть нивелировано высокими требованиями алгоритма решаемой задачи к пропускной способности сети. Тогда экономичность использования такого кластера перечеркнет требование приобретать более производительное сетевое

оборудование, например, адаптеры и коммутаторы Myrinet, Infiniband или SCI. При использовании многоядерной многопроцессорной конфигурации, собранной на одной материнской плате, скорость вычислений будет намного выше, так как обмен данными между процессорами и оперативной памятью будет более быстрым вследствие использования высокоскоростной шины «процессор-память» [5].

Таким образом, при разработке требований к созданию/приобретению программного и аппаратного обеспечения необходимо анализировать класс решаемых задач, строить математическую модель, выбирать и разрабатывать параллельный алгоритм решения и только после этого принимать окончательное решение. К тому же не всегда условия задачи позволяют описать ее одной моделью, тогда приходится находить границы, при которых меняется поведение модели и пересматривать способы решения задачи.

Библиографический список

1. Букатов, А. А. Программирование многопроцессорных вычислительных систем / А. А. Бу-катов, В. Н. Дацюк, А. И. Жегуло. - М. : Изд-во ООО «ЦВВР», 2003.

2. Воеводин, В. В. Параллельные вычисления / В. В. Воеводин, Вл. В. Воеводин. - СПб. : БХВ-Петербург, 2002.

3. Воеводин Вл. В. Вычислительное дело и кластерные системы / Вл. В. Воеводин, С. А. Жу-матий. - М. : Изд-во МГУ, 2007.

4. Гергелъ, В. П. Основы параллельных вычислений для многопроцессорных вычислительных систем / В. П. Гергель, Р. Г. Стронгин. - Нижний Новгород : Изд-во ННГУ им. Н. И. Лобачевского, 2003.

5. Немнюгин, С. Параллельное программирование для многопроцессорных вычислительных систем / С. Немнюгин, О. Стесик. - СПб. : БХВ-Петербург, 2002.

6. Lastovetsky, A. Parallel Computing on Heterogeneous Networks / A. Lastovetsky. - New York, NY : John Wiley & Sons Inc., 2003.

i Надоели баннеры? Вы всегда можете отключить рекламу.