Тесты LINPACK
Оригинальный автор(ы) | Джек Донгарра , Джим Банч, Клив Молер и Гилберт Стюарт |
---|---|
Первоначальный выпуск | 1979 |
Веб-сайт | нетлиб |
Тесты LINPACK Benchmarks являются мерой вычислительной мощности системы с плавающей запятой . Введенные Джеком Донгаррой , они измеряют, насколько быстро компьютер решает плотную n на n систему линейных уравнений размера Ax = b , что является распространенной задачей в инженерии .
Последняя версия этих тестов используется для составления списка TOP500 самых мощных суперкомпьютеров в мире. [1]
Цель состоит в том, чтобы приблизительно оценить, насколько быстро компьютер будет работать при решении реальных задач. Это упрощение, поскольку ни одна вычислительная задача не может отразить общую производительность компьютерной системы. Тем не менее, производительность теста LINPACK может обеспечить хорошую корректировку пиковой производительности, заявленной производителем. Пиковая производительность — это максимальная теоретическая производительность, которую может достичь компьютер, рассчитываемая как частота машины в циклах в секунду, умноженная на количество операций за цикл, которые он может выполнить. Фактическая производительность всегда будет ниже максимальной производительности. [2] Производительность компьютера — это сложный вопрос, который зависит от многих взаимосвязанных переменных. Производительность, измеряемая тестом LINPACK, состоит из количества 64-битных операций с плавающей запятой , обычно сложения и умножения, которые компьютер может выполнить в секунду, также известных как FLOPS . Однако производительность компьютера при запуске реальных приложений, скорее всего, будет сильно отставать от максимальной производительности, которую он достигает при выполнении соответствующего теста LINPACK. [3]
Название этих тестов происходит от пакета LINPACK , набора алгебраических подпрограмм Фортрана, широко используемых в 1980-х годах и изначально тесно связанных с тестом LINPACK. Пакет LINPACK с тех пор был заменен другими библиотеками.
История
[ редактировать ]Отчет о тестировании LINPACK впервые появился в 1979 году как приложение к LINPACK . руководству пользователя [4]
LINPACK был разработан, чтобы помочь пользователям оценить время, необходимое их системам для решения проблемы с использованием пакета LINPACK, путем экстраполяции результатов производительности, полученных 23 различными компьютерами, решающими матричную задачу размером 100.
Этот размер матрицы был выбран из-за ограничений памяти и процессора на тот момент:
- 10 000 записей с плавающей запятой от -1 до 1 генерируются случайным образом для заполнения общей плотной матрицы.
- затем LU-разложение с частичным поворотом. для синхронизации используется
С годами были выпущены дополнительные версии с различными размерами задач, такими как матрицы порядка 300 и 1000, а также ограничениями, что открыло новые возможности оптимизации, поскольку аппаратные архитектуры начали реализовывать матрично-векторные и матрично-матричные операции. [5]
Параллельная обработка была также представлена в тесте LINPACK Parallel в конце 1980-х годов. [2]
В 1991 году LINPACK был модифицирован для [6] решение задач произвольного размера, позволяющее высокопроизводительным компьютерам (HPC) приблизиться к их асимптотической производительности.
Два года спустя этот тест был использован для измерения эффективности первого списка TOP500 .
Ориентиры
[ редактировать ]ЛИНПАК 100
[ редактировать ]LINPACK 100 очень похож на оригинальный тест, опубликованный в 1979 году вместе с руководством пользователя LINPACK .Решение получено методом исключения Гаусса с частичным поворотом , с 2/3n 3 + 2н 2 операции с плавающей запятой, где n равно 100, порядок плотной матрицы A , определяющей проблему. Его небольшой размер и отсутствие гибкости программного обеспечения не позволяют большинству современных компьютеров достичь предела производительности. Тем не менее, прогнозирование производительности в коде, написанном пользователем, с интенсивным числом вычислений все равно может быть полезно с помощью оптимизации компилятора. [2]
ЛИНПАК 1000
[ редактировать ]LINPACK 1000 может обеспечить производительность, близкую к пределу возможностей машины, поскольку в дополнение к задаче большего размера и матрице порядка 1000 возможны изменения в алгоритме. Единственным ограничением является то, что относительная точность не может быть уменьшена, а количество операций всегда будет считаться равным 2/3 n. 3 + 2 н 2 , при n = 1000. [2]
HPLinpack
[ редактировать ]Предыдущие тесты не подходят для тестирования параллельных компьютеров, [7] и был представлен так называемый тест Linpack's Highly Parallel Computing, или тест HPLinpack. В HPLinpack размер n задачи можно сделать настолько большим, насколько это необходимо для оптимизации результатов производительности машины. Еще раз, 2/3n 3 + 2н 2 будет считаться количеством операций независимо от используемого алгоритма. Использование алгоритма Штрассена не допускается, поскольку он искажает реальную скорость выполнения. [8] Точность должна быть такой, чтобы выполнялось следующее выражение:
- ,
где
- это точность машины, и
- n — размер проблемы, [9]
- – матричная норма (наибольшая сумма строк [10] ) и
- соответствует обозначению big-O .
Для каждой компьютерной системы сообщаются следующие количества: [2]
- R max : производительность в гигафлопсах для самой крупной проблемы, выполняемой на машине.
- N max : размер самой большой проблемы, возникшей на машине.
- N 1/2 : размер, при котором достигается половина скорости выполнения Rmax.
- Rpeak . : теоретическая пиковая производительность машины в гигафлопсах
Эти результаты используются для составления списка TOP500 два раза в год, включающего самые мощные компьютеры в мире. [1] TOP500 измеряет их в формате двойной точности с плавающей запятой (FP64). Отношение Rmax к Rpeak называется параллельной эффективностью или эффективностью HPL. [11] Обычно оно тем ниже, чем больше узлов имеет система из-за накладных расходов на связь. Например, Cray Y-MP 1990-х годов достигает эффективности HPL около 90%. [12] в то время как Frontier достигнет около 70% в 2023 году. [13]
Реализации тестов LINPACK
[ редактировать ]В предыдущем разделе описаны основные правила для тестов. Фактическая реализация программы может отличаться, некоторые примеры доступны на Фортране . [14] С [15] или Ява . [16]
HPL
[ редактировать ]HPL — это переносимая реализация HPLinpack, написанная на языке C первоначально в качестве руководства, но теперь широко используемая для предоставления данных для списка TOP500, хотя можно использовать и другие технологии и пакеты. HPL генерирует линейную систему уравнений порядка n и решает ее, используя LU-разложение с частичным поворотом строк. Для его работы требуются установленные реализации MPI и BLAS или VSIPL . [17]
Грубо говоря, алгоритм имеет следующие характеристики: [18] [19]
- циклическое распределение данных в 2D-блоках
- Факторизация LU с использованием правого варианта с различной глубиной просмотра вперед
- рекурсивная панельная факторизация
- шесть различных панельного вещания вариантов
- Алгоритм своп-вещания, уменьшающий полосу пропускания
- обратная замена с просмотром на глубину 1
Критика
[ редактировать ]Говорят, что тест LINPACK оказался успешным благодаря масштабируемости. [20] HPLinpack, тот факт, что он генерирует одно число, что делает результаты легко сопоставимыми, и обширную базу исторических данных, с которой он связан. [21] Однако вскоре после выпуска тест LINPACK подвергся критике за обеспечение уровня производительности, «обычно недостижимого для всех, за исключением очень немногих программистов, которые утомительно оптимизируют свой код для этой машины и только для этой машины». [22] потому что он проверяет только разрешение плотных линейных систем , которые не отражают все операции, обычно выполняемые в научных вычислениях. [23] Джек Донгарра , основная движущая сила тестов LINPACK, сказал, что, хотя они подчеркивают только «пиковую» скорость процессора и количество процессоров, недостаточной нагрузки уделяется локальной пропускной способности и сети. [24]
Том Даннинг-младший , директор Национального центра суперкомпьютерных приложений , так сказал о тесте LINPACK: «Бенч-тест Linpack — это один из тех интересных феноменов: почти любой, кто знает о нем, будет высмеивать его полезность. ограничения, но у него есть мнение, потому что это единственное число, на которое мы все верили на протяжении многих лет». [25]
По словам Донгарры, «организаторы Top500 активно стремятся расширить объем отчетов о тестировании», поскольку «важно включать больше характеристик производительности и сигнатур для конкретной системы». [26] Одной из возможностей, которая рассматривается для расширения эталонного теста для TOP500, является пакет HPC Challenge Benchmark Suite. [27] С появлением компьютеров петамасштабных количество пройденных ребер в секунду начало становиться дополнительным показателем к FLOPS, измеряемому LINPACK. Еще одна такая метрика — бенчмарк HPCG , предложенный Донгаррой. [28]
Проблема со временем работы
[ редактировать ]По словам Джека Донгарры , ожидается, что время работы, необходимое для получения хороших результатов производительности с помощью HPLinpack, увеличится. На конференции, состоявшейся в 2010 году, он заявил, что ожидает, что время работы составит 2,5 дня через «несколько лет». [29]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Тест Linpack, ТОП500 суперкомпьютерных сайтов» . Проверено 10 февраля 2015 г.
- ^ Перейти обратно: а б с д и Донгарра, Джек Дж.; Лущек, Петр; Петите, Антуан (2003), «Показатель LINPACK: прошлое, настоящее и будущее» (PDF) , Параллелизм и вычисления: практика и опыт , 15 (9), John Wiley & Sons, Ltd.: 803–820, doi : 10.1002 /cpe.728 , S2CID 1900724
- ^ Интервью Джека Донгарры с Сандером Олсоном , заархивировано из оригинала 4 марта 2016 г. , получено 13 января 2012 г.
- ^ Донгарра, Джей Джей; Молер, CB; Банч, младший; Стюарт, GW (1979), LINPACK: Руководство пользователя , CREATION , ISBN 9780898711721
- ^ Донгарра, Джек (1988), «Бенчмарк LINPACK: объяснение», Суперкомпьютеры (PDF) , Конспекты лекций по информатике, том. 297, Springer Berlin/Heidelberg, стр. 456–474, doi : 10.1007/3-540-18991-2_27 , ISBN. 978-3-540-18991-6
- ^ Тест высокой производительности Linpack (PDF) , получено 10 февраля 2015 г.
- ^ Бейли, Д.Х.; Барщ, Э.; Бартон, Джей Ти; Браунинг, Д.С.; Картер, РЛ; Дагум, Л.; Фатухи, РА; Фредериксон, ПО; Ласински, Т.А.; Шрайбер, Р.С.; Саймон, HD; Венкатакришнан, В.; Виратунга, СК (1991). «Параллельные тесты NAS — краткие и предварительные результаты». Материалы конференции ACM/IEEE 1991 года по суперкомпьютерам — Supercomputing '91 . Суперкомпьютеры '91. Материалы конференции ACM/IEEE 1991 года. стр. 158–165. дои : 10.1145/125826.125925 . ISBN 0897914597 . S2CID 18046345 .
{{cite book}}
: CS1 maint: местоположение ( ссылка ) CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ «Часто задаваемые вопросы по LINPACK. Могу ли я использовать метод Штрассена при умножении матриц в тесте HPL или при тестировании Top500?» . Проверено 10 февраля 2015 г.
- ^ «Часто задаваемые вопросы по LINPACK — какой точности должно соответствовать решение?» . Проверено 10 февраля 2015 г.
- ^ «ЛИНПАК Дланге» . Проверено 9 марта 2024 г.
- ^ «Сравнительный анализ высокопроизводительных систем Linpack (HPL) — теоретическая пиковая производительность» . Проверено 15 ноября 2023 г.
- ^ «Y-MP C916/12256» . ТОП500 . 01.12.1995 . Проверено 15 ноября 2023 г.
- ^ «Frontier — HPE Cray EX235a, оптимизированный AMD EPYC 64C 3-го поколения, 2 ГГц, AMD Instinct MI250X, Slingshot-11» . ТОП500 . 12.11.2023 . Проверено 15 ноября 2023 г.
- ^ «Программа тестирования Linpack на Фортране» . Проверено 10 февраля 2015 г.
- ^ «Программа тестирования Linpack на C» . Проверено 10 февраля 2015 г.
- ^ «Программа тестирования Linpack на Java» . Проверено 10 февраля 2015 г.
- ^ «HPL — портативная реализация высокопроизводительного теста Linpack для компьютеров с распределенной памятью» . Проверено 10 февраля 2015 г.
- ^ «Алгоритм HPL» .
- ^ «Обзор HPL» . Проверено 10 февраля 2015 г.
- ^ «ИНТЕРВЬЮ С ЛЕГЕНДОЙ СУПЕРКОМПЬЮТЕРОВ ДЖЕКОМ ДОНГАРРА» . 24 мая 2002 г.
- ^ Хей, Томас (2004). «Интервью с Джеком Дж. Донгаррой» (PDF) .
LINPACK — это эталон, на который люди часто ссылаются, потому что там есть такая историческая база данных, потому что его довольно легко использовать, его довольно легко понять, и он в некотором смысле отражает лучшее и худшее в программировании.
- ^ Хаммонд, Стивен (1995), За пределами махофлопсов: внедрение MPP в производственную среду
- ^ Гахвари, Хормозд; Хёммен, Марк; Деммель, Джеймс; Йелик, Кэтрин (2006), «Сравнительный анализ умножения разреженной матрицы на вектор за пять минут», Семинар SPEC Benchmark (PDF)
- ^ Донгарра, Джек Дж. (2007), «Эталон HPC Challenge: кандидат на замену Linpack в списке Top500?», Семинар SPEC Benchmark (PDF)
- ^ Кристофер Мимс (08 ноября 2010 г.). «Почему новый китайский суперкомпьютер является самым быстрым в мире только технически» . Проверено 22 сентября 2011 г.
- ^ Мойер, Мартин (24 мая 2002 г.). «ИНТЕРВЬЮ С ЛЕГЕНДОЙ СУПЕРКОМПЬЮТЕРОВ ДЖЕКОМ ДОНГАРРА» . Проверено 1 декабря 2022 г.
- ^ Лущек, Петр; Донгарра, Джек Дж.; Кестер, Дэвид; Рабенсейфнер, Рольф; Лукас, Боб; Кепнер, Джереми; Маккалпин, Джон; Бейли, Дэвид; Такахаши, Дайсуке (2005), Введение в пакет тестов HPC Challenge (PDF)
- ^ Хемсот, Николь (26 июня 2014 г.). «Новый тест высокопроизводительных вычислений дает многообещающие результаты» . HPCWire . Проверено 1 декабря 2022 г.
- ^ Донгарра, Джек Дж. (2010). Тест LINPACK с ограничениями по времени для многоядерных ускорителей и графических процессоров (PDF) . Международная конференция по суперкомпьютерам.