`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Дуальный Athlon: тестируем альтернативно

0 
 

Любая тестовая лаборатория, "оккупировавшая" какую-то определенную тему и ставшая в ней "локальным законодателем мод", неизбежно попадает в ситуацию одновременно приятную и опасную -- да, есть признание среди коллег и читателей, есть авторитет, есть методики и свои маленькие "ноу-хау"... А что если вдруг где-то проскочит ошибка?
От редакции: тема, вынесенная в заголовок статьи, для нашей Тестовой лаборатории является именно одной из вышеупомянутых "оккупированных" -- без ложной скромности можно сказать, что такое количество материалов по исследованию производительности SMP-систем, как в "Компьютерном Обозрении" и на сайте ITC Online, где-то еще найти будет, пожалуй, сложно. Однако подобная ситуация имеет и обратную сторону -- довольно трудно получить независимое подтверждение правильности полученных результатов и сделанных выводов, так сказать, "взглянуть на свои статьи со стороны".

Именно поэтому мы с очень большим интересом отнеслись к присланному в редакцию материалу, посвященному именно тестированию, и именно дуальных систем. И пусть даже его нельзя назвать полностью соответствующим реалиям сегодняшнего дня (автор скорее всего просто не смог получить в свое распоряжение современную тестовую платформу на базе Intel Xeon), но все равно объем проделанной работы, воистину "академическая" основательность подхода и даже некоторая дотошность (но в самом хорошем смысле этого слова!), безусловно, вызывают уважение. А если еще учесть, что методика была выбрана совершенно "поперек" тому, что обычно делаем мы, то интерес становится еще больше.

Собственно, вот на этих строках наша Тестовая лаборатория и умолкает, давая читателям возможность ознакомиться с оригинальным авторским материалом, из одного названия которого сразу же становится понятно, о чем именно и как именно пойдет речь. Итак, представляем вам "Сравнительное тестирование эффективности параллельных вычислений дуальными конфигурациями Athlon MP/XP и Pentium III под управлением Windows XP и Linux".
Введение

Вычислительная установка собрана на базе материнской платы Tyan Tiger MP S2460 (чипсет AMD-760MP), двух процессоров Athlon MP 1900+ и 512 MB Registered DDR SDRAM. В связи с ориентацией исследования на разработку алгоритмов параллельных вычислений традиционная стратегия выбора и использования готовых тестовых программ была отвергнута. Вместо этого разработаны несколько алгоритмов, предполагающих возможность эффективного распараллеливания, и на их основе написана собственная тестовая программа. Основные задачи, которые ставил перед собой автор, следующие:
  • Оценить эффективность распараллеливания вычислений двухпроцессорным компьютером, построенным на платформе AMD, при выполнении им обработки числовых массивов.
  • Проверить возможность совместного функционирования в мультипроцессорном режиме процессоров Athlon 1900+ XP, базирующихся на том же ядре, что и Athlon MP, но для которых работа в SMP-системах компанией AMD не гарантирована.
  • Сопоставить полученные результаты с данными аналогичного тестирования двухпроцессорных компьютеров на платформе Intel.
  • Сравнить эффективность распределения ресурсов двух CPU в двух операционных системах, поддерживающих многопроцессорные конфигурации -- Windows XP и Linux (использовался дистрибутив Red Hat 7.3).

Краткое описание тестов

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

1. Программа написана в средах программирования Delphi 3 (для ОС Windows) и в Kylix 2 (для Linux) с применением стандартных средств распараллеливания вычислений посредством организации многопоточности.

2. Все тесты запрограммированы в виде отдельных процедур, которые могут вызываться для выполнения как одним, так и несколькими различными потоками. Количество последних не ограничено и задается пользователем.

3. Все вычисления производятся с данными, генерируемыми случайным образом, которые хранятся в массивах, выделяемых динамически. Это позволяет пользователю задавать размерность массивов, участвующих в вычислениях. Число потоков и размерность структур данных ограничивается исключительно размерами оперативной и дисковой памяти.

4. Тесты запускались на компьютере непосредственно после его загрузки (перезагрузки), причем число потоков последовательно изменялось от 1 до 6. Хронометрирование осуществлялось программно, объем работы вычислялся кратным числу потоков. Таким образом, отношение числа потоков к суммарному времени, затраченному на прохождение каждого из тестов, использовалось как характеристика производительности.

5. Сравнение полученных при тестировании результатов представлено на графиках, где по горизонтальной оси отложено число генерируемых программой потоков, а по вертикальным осям -- производительность компьютера в относительных единицах. За единицу производительности принят результат, получаемый при запуске одного потока.


Тестирование

Предваряя описание проведенных тестов и полученных результатов, отметим, что во всех представленных ниже испытаниях дуальные конфигурации на базе процессоров Athlon MP и XP вели себя совершенно идентично. Пара Athlon 1900+ XP продемонстрировала те же способности к совместной работе, что и их серверные аналоги. Различия во всех проведенных тестах, в основном, не превышали 2% и лишь в нескольких точках -- 5%, что лежит в пределах разброса данных, получаемых при тестировании. На графиках кривые для пар MP и XP практически неразличимы, в связи с чем результаты будут отображены одной линией.


Эффективность вычислений с плавающей точкой

В данном тесте выделяются три двумерных динамических массива A, B, C одинаковой размерности с одним и тем же количеством элементов по обоим направлениям (общие для всех потоков). Массивы А и В заполняются данными вещественного типа Single (длина 4 байта) с помощью генератора псевдослучайных чисел, в результате чего формируются две квадратные матрицы одинакового порядка. Следующим этапом является перемножение матриц А и В с занесением результата в С. Данная процедура производится в цикле наперед заданное число раз.

Дуальный Athlon тестируем альтернативно
Рис. 1
Дуальный Athlon тестируем альтернативно
Рис. 2

Было выполнено два теста. В первом использованы массивы малой размерности 100 x 100, которые все вместе заняли в памяти объем 118,3 KB (меньше, чем размер L2-кэша любого из применяемых CPU). Расчет повторялся в цикле 500 раз, каждый из которых проводился с новым набором данных, генерируемых случайно. Здесь преследовалась цель оценить возможности процессорного блока вычислений с плавающей точкой (FPU), поскольку предполагалось, что все данные полностью разместятся в быстрой кэш-памяти, а также координацию работы нескольких FPU в мультипроцессорных системах. Во втором тесте использованы большие массивы (500 x 500), которые в общей сложности разместились в памяти объемом 2935 KB. Этот объем значительно больше размера кэша, что, предположительно, должно привести к изменению зависимости продуктивности вычислений от числа потоков из-за необходимости постоянной адресации разными потоками одних и тех же областей памяти. С целью сокращения времени прохождения теста число итераций здесь было уменьшено до 5. Результаты расчетов представлены на рис. 1, 2. Из них видно, что, как в одном, так и в другом случае, дуальная конфигурация компьютера при числе потоков больше двух использует в вычислениях второй процессор, что при четном числе потоков (2, 4, 6) увеличивает производительность практически вдвое (в среднем в 1,9 раза) по сравнению с однопоточной программой. Незначительное падение быстродействия по мере увеличения числа потоков является неизбежным следствием накладных расходов, обусловленных реализацией многопоточной обработки. При нечетном числе потоков (3, 5) и малой размерности обрабатываемых данных происходит падение скорости (по отношению к случаю с четным числом потоков), что вызвано невозможностью разделить обработку одного потока несколькими процессорами. Результат -- кривая на рис. 1.

Указанный выше эффект устраняется при увеличении размерности массивов данных. В результате (см. рис. 2) зависимость производительности компьютера от числа потоков при их числе больше двух имеет вид пологой "ступеньки". Это объясняется уменьшением нагрузки на вычислительные блоки CPU и увеличением работы, связанной с адресацией общей области памяти. Можно видеть, что в случае больших массивов дуальная конфигурация эффективнее для нечетного числа потоков, чем при обработке массивов малой размерности, не обнаруживая падения быстродействия при смене четного числа потоков программы на нечетное.

Для сравнения на рис. 1, 2 приведены зависимости, снятые в результате запуска данного теста при тех же условиях, но лишь с одним процессором Athlon 1900+ MP. Нетрудно видеть, что в однопроцессорном компьютере увеличение числа потоков ведет к незначительному падению быстродействия в результате разделения вычислительных ресурсов одного процессора разными потоками.


Эффективность целочисленных вычислений

Дуальный Athlon тестируем альтернативно
Рис. 3
Дуальный Athlon тестируем альтернативно
Рис. 4

Стратегия проведения этого теста практически аналогична описанной выше. Единственное отличие заключается в типе обрабатываемых данных -- здесь применяется целочисленный тип word. Поскольку длины данных типов single и word совпадают, то с точки зрения объемов занимаемой памяти тест идентичен предыдущему, но основная нагрузка здесь ложится на блок целочисленной арифметики процессора (ALU), который значительно эффективнее FPU. Тем не менее, как следует из приведенных диаграмм (рис. 3, 4), результаты обнаруживают тенденции, аналогичные предыдущему тесту. Таким образом, целочисленные вычисления распараллеливаются так же эффективно, как и обработка данных с плавающей точкой. Прирост производительности за счет многопроцессорности составляет от 47 до 98,5% в зависимости от количества потоков.


Эффективность работы с памятью (разные области для различных потоков)

Данный тест обрабатывает в каждом из потоков по два динамических массива А и В размерностью 400 x 400, между которыми внутри всех потоков передаются данные таким образом, чтобы работу кэш-памяти сделать максимально неэффективной. Это достигается тем, что данные поэлементно из первой четверти массива А считываются по строкам (слева направо, сверху вниз) и заносятся в столбцы четвертой четверти массива В (снизу вверх, справа налево). Затем в том же цикле данные из первой четверти массива В считываются по столбцам (сверху вниз, слева направо) и заносятся в строки четвертой четверти массива А (справа налево, сверху вниз). Далее в том же цикле проводятся подобные перекрестные пересылки между данными второй и третей четвертей обрабатываемых массивов. Никаких вычислительных преобразований с пересылаемыми данными не производится. Описанная выше процедура повторяется циклически 500 раз. При занимаемом каждым потоком объеме оперативной памяти 1879,8 KB, значительно превышающем размер процессорного кэша, данная стратегия перетасовки данных, хранящихся в массивах А и В, позволяет оценить эффективность мультипроцессорной обработки с точки зрения адресации не связанных между потоками данных, которые, хотя и расположены в общей оперативной памяти, но занимают там различные адресные пространства.

Дуальный Athlon тестируем альтернативно
Рис. 5

По данным, приведенным на рис. 5, нетрудно видеть, что в этом случае эффективность многопоточности снижается по сравнению с чисто вычислительными тестами. Так, для двух потоков при параллельной обработке их двумя процессорами Athlon производительность уже не удваивается, как в вычислительных тестах, а возрастает лишь в 1,58 раза (т. е. на 58%). Объясняется данный эффект, по-видимому, задержками, вызванными необходимостью обработки параллельных запросов процессоров к общей памяти, а также низкой скоростью выборки данных из нее по отношению к производительности работы самих CPU. Другими словами, канал "процессоры--память" здесь становится "бутылочным горлышком". Аналогичный вывод следует и из рассмотрения кривой, полученной в результате запуска этого теста на однопроцессорном компьютере. Потери, обусловленные увеличением числа потоков, составляют 9--13%. Нечетность количества потоков в данном тесте также является отрицательным фактором, снижающим производительность.


Эффективность работы с памятью (смежная область чтения)

Дуальный Athlon тестируем альтернативно
Рис. 6

Массивы, обрабатываемые данным тестом, имеют ту же размерность, что и в предыдущем (400 x 400), однако дополнительно в ОЗУ выделяются еще два массива D и E той же размерности -- общих и видимых для всех запущенных потоков. В отличие от предыдущего теста именно эти общие массивы и используются всеми потоками для чтения из них данных в соответствии с той же стратегией выборки. Запись же по-прежнему производится в массивы А и В. Таким образом, в этом тесте у разных потоков возникает необходимость параллельного чтения из общей области данных, что еще больше усложняет работу параллельных алгоритмов, в результате чего производительность при увеличении числа потоков до двух возрастает лишь в 1,48 раза по сравнению с однопоточным случаем (рис. 6). Таким образом, параллельные запросы к общей области памяти сопряжены, по-видимому, с большим количеством задержек, которые снижают производительность (хоть и весьма незначительно в сравнении с раздельными областями расположения данных в ОЗУ). Потери, обусловленные увеличением числа потоков на однопроцессорном компьютере, в этом тесте составляют 12--15%. В остальном тенденции изменения производительности являются сходными с результатами предыдущего теста.


Эффективность работы с памятью (смежная область записи)

Дуальный Athlon тестируем альтернативно
Рис. 7

Этот тест, как и предыдущий, использует массивы А и В (400 x 400), генерируемые в каждом из запускаемых потоков, и общие массивы D и E той же размерности. В отличие от предыдущего теста в них осуществляется запись данных, выбираемых из А и В всеми потоками. Таким образом, здесь производится параллельная запись всеми потоками в общую область памяти. Это еще больше, чем при многопоточном чтении из общей области, усложняет работу параллельных алгоритмов, в результате чего быстродействие при увеличении числа потоков до двух возрастает в данном тесте лишь в 1,38 раза по сравнению с однопоточным случаем (рис. 7). Потери, обусловленные увеличением числа потоков на однопроцессорном компьютере, в этом случае достигают 18%, что больше, чем в любом из тестов, проведенных ранее.


Эффективность работы с памятью (смежные области записи и чтения)

Дуальный Athlon тестируем альтернативно
Рис. 8

Комбинация двух предыдущих методов. Здесь каждый из потоков обращается за данными и записывает их параллельно с другими потоками в одну и ту же общую область ОЗУ, содержащую массивы D и E (400 x 400). Тенденции изменения зависимости производительности компьютера от числа потоков предельно близки к результатам предыдущего теста (рис. 8). Их отличительной особенностью является достаточно четко прослеживаемый монотонный рост быстродействия по мере увеличения числа потоков. Максимальный прирост производительности в данном тесте составил 59%, максимальная потеря, обусловленная многопоточностью при однопроцессорном тестировании, не превысила 10%.


Комплексный тест (неоднотипные операции)

Дуальный Athlon тестируем альтернативно
Рис. 9

Этот тест сочетает в себе несколько разнотипных операций, исследовавшихся по отдельности выше. Вначале производится чтение данных из общей области оперативной памяти (массивы D и E) в массивы А и В каждого потока. Затем матрицы А и В перемножаются. После этого выполняется перетасовка данных между А и В, после чего матрица В умножается на матрицу А. Наконец, матрица А в каждом из потоков складывается с матрицей D из общей для всех потоков области оперативной памяти. Описанная процедура повторяется 500 раз в цикле. Цель данного теста -- оценить интегрированную производительность параллельного алгоритма, близкого по характеру выполняемых операций к структуре прикладных задач математической физики, предполагающих итерационный процесс вычислений. В итоге (рис. 9) были обнаружены тенденции, сходные с результатами вычислительных тестов (падение производительности для нечетного числа потоков). Рост быстродействия, обусловленный мультипроцессорной обработкой данного теста, составил 1,7 раза по сравнению с однопоточной реализацией, что является близким к средневзвешенному значению прироста производительности составляющих его операций, рассмотренных по отдельности ранее.


Эффективность дуальных архитектур AMD и Intel

Дуальный Athlon тестируем альтернативно
Рис. 10

В данном разделе сопоставляются результаты выполнения теста вычислений с плавающей точкой, полученные на дуальной платформе от AMD, с аналогичными результатами на двухпроцессорных системах с CPU от Intel -- Pentium II 400 MHz, Pentium III 450 MHz и Pentium III 1,13 GHz. Intel-системы были построены на базе чипсета i440BX. Результаты сопоставления (рис. 10) показывают сходную, хотя и неидентичную динамику полученных кривых. Это позволяет нам сказать, что двухпроцессорная платформа AMD по крайней мере не уступает с точки зрения эффективности распараллеливания вычислений дуальным конфигурациям от Intel.


Эффективность распараллеливания вычислений в Windows XP и Linux

Данный этап исследования был предпринят с целью сравнения эффективности функционирования многопоточных программ под управлением ОС различной архитектуры -- Windows XP и Linux. Выбор Linux как альтернативы по отношению к Windows XP обусловлен тем обстоятельством, что именно для этой ОС у компании Borland (разработчика Delphi, в которой создавалась использовавшаяся в предыдущих тестах программа) имеется аналогичная среда Kylix. Тестовая программа была перенесена в Kylix и адаптирована под особенности организации многопоточности под Linux. В результате мы получили две эквивалентные по функциональным возможностям тестовые программы, откомпилированные в средах разработки одного производителя, но для двух принципиально различных операционных систем. Выбор дистрибутива (Red Hat 7.3) обусловливался тем, что в соответствии с документацией Kylix эта среда разработки гарантированно на нем работает.

Дуальный Athlon тестируем альтернативно
Рис. 11
Дуальный Athlon тестируем альтернативно
Рис. 12

Результаты запуска данной программы на двухпроцессорном компьютере, функционирующем под управлением Linux, показали, что производительность работы с оперативной памятью характеризуется, в отличие от Windows XP, плохой повторяемостью. В связи с этим здесь результаты тестов не приводятся. Тесты, в которых оценивается скорость вычислений, демонстрируют хорошую воспроизводимость оценок, и именно они представлены на рис. 11 и 12 совместно с данными, полученными в Windows XP. Для того чтобы сопоставить не только относительную, но и абсолютную производительность в различных ОС, все результаты, полученные в Linux, "обезразмеривались" по показателям аналогичного теста в однопоточном режиме под управлением Windows XP. Для сравнения выбраны результаты вычислений с плавающей точкой (рис. 11) и с целыми числами (рис. 12), в которых размерность массивов была 500 500, при пятикратном числе повторов.

Нетрудно видеть, что результаты Windows XP и Linux обнаруживают в целом сходную динамику. Тем не менее хочется обратить внимание на следующие особенности. Как в вычислениях с плавающей точкой, так и в целочисленных, быстродействие двухпроцессорного компьютера под управлением Linux приблизительно на 3-7% меньше, нежели в Windows XP. В то же время для однопроцессорного компьютера обнаруживается противоположный эффект, заключающийся в росте производительности в Linux в сравнении с Windows XP приблизительно на 11% для обоих видов вычислений. Чтобы отразить это обстоятельство на рис. 11, 12, результаты однопроцессорного тестирования Athlon MP под управлением Linux "обезразмеривались" по значению, полученному в тестировании двухпроцессорной конфигурации, в результате чего даже для однопоточного теста результат получился превышающим единицу. Таким образом, Linux вполне может рассматриваться в качестве альтернативы Windows XP при ориентации на многопроцессорные системы, поскольку его способность к распараллеливанию вычислений сопоставима с возможностями флагманского продукта компании Microsoft.


Выводы

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

  • Эффективность (подразумевается прирост от задействования второго CPU) двухпроцессорной платформы от AMD не уступает аналогичным решениям от Intel.
  • Во всех проведенных тестах сколь-нибудь значительные различия в параллельной работе процессоров Athlon MP и Athlon XP отсутствовали.
  • Многопоточное программирование является действительно прогрессивной технологией увеличения производительности, с успехом реализуемой, к примеру, посредством использования интегрированных сред разработки Delphi и Kylix.
  • Потери быстродействия, связанные с программной реализацией параллельного алгоритма посредством многопоточности, при числе потоков не более шести не превышают 12%. Прирост же производительности практически пропорционален числу процессоров в компьютере (за вычетом оцененных выше потерь).
  • Программирование четного числа потоков в целом обеспечивает большую производительность, чем при нечетном их количестве.
  • Операционная система Linux демонстрирует хорошие показатели масштабируемости при наращивании числа процессоров, почти не уступающие аналогичным показателям Windows XP.

E-mail автора: [email protected]
Оборудование для тестирования было предоставлено автору компанией ЕПОС

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

0 
 

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT