КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Тест LINPACK
Что имело бы смысл взять в качестве подобного теста? Что-то несложное и известное всем. Таким тестом стал LINPACK. Эта программа предназначена для решения системы линейных алгебраических уравнений с плотной матрицей с выбором главного элемента по строке. Простой алгоритм, регулярные структуры данных, значительная вычислительная емкость, возможность получения показателей производительности, близких к пиковым, — все эти черты сделали тест исключительно популярным. Во втором варианте теста размер матрицы увеличивается до 1000x1000. С появлением больших массово параллельных вычислительных систем вопрос подбора размера матрицы стал исключительно актуальным. На матрицах 100x100 1000x1000 никаких разумных показателей получить не удавалось. Эти задачи были слишком малы. Матрица размера 1000x1000 занимает лишь 0,01—0,001% всей доступной оперативной памяти вычислительной системы. Первые эксперименты с тестом LINPACK на реальных массово параллельных вычислительных системах показали, что и фиксировать какой-либо один размер задачи тоже нельзя. В последнем варианте теста разрешено использовать матрицы сколь угодно большого размера. Сколько есть оперативной памяти на всех вычислительных узлax системы, столько и можно использовать. Для современных вычислительных систем размер матрицы уже перевалил за миллионы. Разрешается как внесение изменений в текст подпрограммы, реализующей заложенный авторами метод решения системы, так и изменение самого метода. Единственное ограничение — это использование стандартной вызывающей части теста, которая выполняет инициализацию матрицы, вызывает подпрограмму решения системы и проверяет корректность результатов. В этой же части вычисляется и показанная вычислительной системой производительность, исходя из формулы для числа операций 2n3/3 + 2n2 (n — это размер матрицы), вне зависимости от вычислительной сложности реально использованного алгоритма. В данном варианте теста достигались значения производительности, близкие к пиковой. Этому способствовали и значительный размер матрицы, и возможность внесения изменений в программу или алгоритм. Отсюда появись и специальное название данного варианта — LINPACK TPP, Toward Performance. Для работы теста LINPACK на вычислительных системах с распределенной оперативной памятью была создана специальная версия HPL (High-Performance LINPACK). В отличие от стандартной реализации, в HPL пользователь могут управлять большим числом параметров для достижения высокой производительности на своей установке. В настоящее время тест LINPACK используется для формирования списка TOP500 — пятисот самых мощных вычислительных систем мира (www.top500.org). Кроме пиковой производительности Rpeak для каждой вычислительной системы указывается величина Rmax, равная производительности вычислительной системы на тесте LINPACK с матрицей максимального для данной вычислительной системы размера Nmax. По значению Rmax отсортирован весь список. Как показывает анализ представленных данных, величина Rmax составляет 50—70% от значения Rpeak. Интерес для анализа функционирования вычислительной системы представляет и указанное значение N1/2, показывающее, на матрице какого размера достигается половина производительности Rmax. Что же показывают данные теста LINPACK? Только одно — насколько хорошо вычислительная система может решать системы уравнений с плотной матрицей указанным методом. Поскольку задача имеет хорошие свойства, то и корреляция производительности на тесте LINPACK с пиковой производительностью вычислительной системы высока. Операции ввода-вывода не затрагиваются, отношение числа выполненных операций к объему используемых данных высокое, регулярность структур данных и вычислений, простая коммуникационная схема, относительно небольшой объем передач между процессорами, и другие свойства программы делают данный тест "удобным". Безусловно, по данным этого теста можно получить много полезной информации о вычислительной системе и с этим никто не спорит. Но нужно ясно понимать и то, что высокая производительность на тесте LINPACK совершенно не означает того, что и на конкретной программе потребителя будет достигнута высокая производительность. Данных одного теста LINPACK для получения всей картины о возможностях вычислительной системы мало. Неплохим дополнением к тесту LINPACK является набор тестов STREAM. Этот набор содержит четыре небольших цикла, работающих с очень длинными векторами. Основное назначение тестов STREAM состоит в оценке сбалансированности скорости работы процессора и скорости доступа к оперативной памяти. Ключевыми в тесте являются следующие следующие операции:
a(i) = q * b(i) a(i) = b(i) + q * c(i)
Размеры массивов подбираются таким образом, чтобы ни один из них целиком не попадал в кэш-память. Форма записи тестовой программы исключает возможность повторного использования данных, что также могло бы исказить реальную картину. Результатом работы тестов являются вычисленные значения реальной скорости передачи данных и производительности. Первый тест предназначен для определения скорости передачи данных в отсутствии какой-либо арифметики. Во втором тесте добавлена одна дополнительная операция. Поскольку вторым аргументом является скалярная переменная, то объем передаваемых данных между процессором и оперативной памятью останется на прежнем уровне. Возможное различие в получаемых результатах будет определяться способностью вычислительной системы выполнять арифметические операции с одновременным доступом к оперативной памяти. В третьем тесте появляется второй входной вектор, что увеличивает нагрузку на тракт процессор - оперативная память. В последнем тесте добавляется еще одна операция. Все тесты работают с 64-разрядными вещественными числами. Предполагается, что в хорошо сбалансированной структуре скорость выполнения арифметических операций должна быть согласована со скоростью доступа в оперативную память. В современных высокопроизводительных вычислительных системах это выполняется, но, как правило, только при работе с верхними уровнями иерархии памяти. Если данные попали в кэш-память первого уровня, то все будет хорошо. А что делать в других случаях? Именно по этой причине тесты STRЕАМ работают с очень большими векторами, хранящимися в оперативной памяти. Попробуйте на доступной вам вычислительной системе провести следующий эксперимент. С помощью, например, четвертого теста определите реальную скорость передачи данных между процессором и оперативной памятью. Разделите пиковую производительность вычислительной системы на только что полученное значение. Чем больше полученное вами число, тем менее сбалансированы в структуре скорости обработки и передачи данных (меньше единицы данное значение бывает далеко не всегда). Характеристики вычислительных систем, полученные на тех или иных тестах, всегда вызывали и будут вызывать недоверие и критику. Единственная характеристика, которая по-настоящему интересует пользователя — это насколько эффективно вычислительная система будет выполнять его собственную программу. Каждая программа уникальна. В каждой программе своя смесь команд, задействующая определенные компоненты вычислительной системы. Повторить или смоделировать поведение каждой программы тест не может, поэтому и остаётся у пользователя сомнение в адекватности полученных характеристик. Это в полной мере касается таких простых тестов, как LINPACK или STRЕАМ. Однако, если задуматься, то возникает замкнутый круг. С одной стороны, тесты должны быть легко переносимыми с платформы на платформу, а потому должны быть простыми. Чтобы поместиться в оперативной памяти каждой вычислительной системы, структуры данных должны быть небольшими. Более того, чтобы получить широкое признание, тест должен иметь понятную формулировку решаемой задачи. Перемножение матриц, метод Гаусса решения системы линейных уравнений, быстрое преобразование Фурье, метод Монте-Карло — это все доступно, компактно, используется многими, легко переносится. С другой стороны, к подобным программам всегда было отношение, как к чему-то несерьезному, как к "игрушкам". Фиксированный размер задачи, характерное вычислительное ядро, отсутствие интенсивного ввода-вывода, упрощенный код и другие свойства тестов дают веские основания для подобного отношения. Доля истины в таких рассуждениях, безусловно, есть. Жизнь всегда намного богаче и разнообразнее, чем теория. Точно так же и реальные программы по отношению к тестам. Что же в результате мы имеем? Средства для оценки производительности вычислительных систем необходимы. Чтобы использоваться широко, они должны быть простыми. Простые тесты не дают полной картины и в каждом случае нужно использовать дополнительные средства. Простота необходима, но простота не приводит к искомому результату.
Дата добавления: 2014-01-04; Просмотров: 3376; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |