Из Википедии, бесплатной энциклопедии
  (Перенаправлено из теста LINPACK )
Перейти к навигации Перейти к поиску

В Linpack контрольные показатели являются мерой системы с плавающей точкой вычислительной мощности. Введенные Джеком Донгаррой , они измеряют, насколько быстро компьютер решает плотную n на n систему линейных уравнений Ax  =  b , что является обычной задачей в инженерии .

Последняя версия этих тестов используется для составления списка TOP500 самых мощных суперкомпьютеров в мире. [1]

Цель состоит в том, чтобы приблизительно оценить, насколько быстро компьютер будет работать при решении реальных проблем. Это упрощение, поскольку ни одна вычислительная задача не может отражать общую производительность компьютерной системы. Тем не менее, производительность теста LINPACK может обеспечить хорошую коррекцию пиковой производительности, предоставленной производителем. Пиковая производительность - это максимальная теоретическая производительность, которую может достичь компьютер, рассчитанная как частота машины в циклах в секунду, умноженная на количество операций за цикл, которые он может выполнить. Фактическая производительность всегда будет ниже максимальной. [2] производительность компьютера является сложным вопросом , который зависит от многих взаимосвязанных переменных. Производительность, измеренная тестом LINPACK, состоит из количества64-битные операции с плавающей запятой , обычно сложения и умножения, которые компьютер может выполнять в секунду, также известные как FLOPS . Однако производительность компьютера при запуске реальных приложений, вероятно, будет намного ниже максимальной производительности, которую он достигает при выполнении соответствующего теста LINPACK. [3]

Название этих тестов происходит от пакета LINPACK , набора алгебраических подпрограмм Fortran, широко используемых в 1980-х годах и изначально тесно связанных с тестом LINPACK. Пакет LINPACK был заменен другими библиотеками.

История [ править ]

Отчет о тестировании LINPACK впервые появился в 1979 году как приложение к руководству пользователя LINPACK . [4]

LINPACK был разработан, чтобы помочь пользователям оценить время, необходимое их системам для решения проблемы с использованием пакета LINPACK , путем экстраполяции результатов производительности, полученных 23 различными компьютерами, решающими матричную задачу размером 100.

Такой размер матрицы был выбран из-за ограничений памяти и процессора на тот момент:

  • 10000 записей с плавающей запятой от -1 до 1 генерируются случайным образом для заполнения общей плотной матрицы,
  • затем для отсчета времени используется разложение LU с частичным поворотом.

Спустя годы были выпущены дополнительные версии с различными размерами задач, такими как матрицы порядка 300 и 1000, и ограничения, что открыло новые возможности оптимизации, поскольку аппаратные архитектуры начали реализовывать операции матрица-вектор и матрица-матрица. [5]

Параллельная обработка была также представлена ​​в тесте LINPACK Parallel в конце 1980-х годов. [2]

В 1991 году LINPACK был модифицирован для [6] решения задач произвольного размера, что позволило высокопроизводительным компьютерам (HPC) приблизиться к своей асимптотической производительности.

Два года спустя этот тест был использован для измерения производительности первого списка TOP500 .

Тесты [ править ]

LINPACK 100 [ править ]

LINPACK 100 очень похож на исходный тест, опубликованный в 1979 году вместе с руководством пользователя LINPACK . Решение получается методом исключения Гаусса с частичным поворотом , с 2 / 3n³ + 2n² операций с плавающей запятой, где n равно 100, порядок плотной матрицы A, который определяет проблему. Его небольшой размер и отсутствие гибкости программного обеспечения не позволяют большинству современных компьютеров достичь предела производительности. Тем не менее, это может быть полезно для прогнозирования производительности в коде, написанном пользователем с интенсивным числовым использованием чисел, с использованием оптимизации компилятора. [2]

LINPACK 1000 [ править ]

LINPACK 1000 может обеспечить производительность, близкую к пределу машины, потому что помимо предложения большего размера проблемы, матрицы порядка 1000, возможны изменения в алгоритме. Единственным ограничением является то, что относительная точность не может быть уменьшена, и количество операций всегда будет считаться равным 2 / 3n³ + 2n², с n = 1000. [2]

HPLinpack [ править ]

Предыдущие тесты не подходят для тестирования параллельных компьютеров [7], и был представлен так называемый тест Linpack Highly Parallel Computing, или тест HPLinpack. В HPLinpack размер проблемы n можно сделать настолько большим, насколько это необходимо для оптимизации результатов производительности машины. Еще раз, 2 / 3n³ + 2n² будет приниматься в качестве количества операций, независимо от используемого алгоритма. Использование алгоритма Штрассена не допускается, поскольку он искажает реальную скорость выполнения. [8] Точность должна быть такой, чтобы выполнялось следующее выражение:

, Где это точность аппарата, а п является размером задачи, [9] является матрица нормы и соответствует обозначениям большого-O .

Для каждой компьютерной системы указываются следующие количества: [2]

  • R max : производительность в GFLOPS для самой большой проблемы, выполняемой на машине.
  • N max : размер самой большой проблемы, выполняемой на машине.
  • N 1/2 : размер, при котором достигается половина скорости выполнения Rmax.
  • Пик R : теоретическая пиковая производительность, GFLOPS для машины.

Эти результаты используются для составления списка TOP500 дважды в год с использованием самых мощных компьютеров в мире. [1] TOP500 измеряет их в формате с плавающей запятой двойной точности (FP64).

Реализации тестов LINPACK [ править ]

В предыдущем разделе описаны основные правила для тестов. Фактическая реализация программы может отличаться, некоторые примеры доступны на Фортране , [10] C [11] или Java . [12]

HPL [ править ]

HPL - это переносимая реализация HPLinpack, которая изначально была написана на C в качестве руководства, но теперь широко используется для предоставления данных для списка TOP500, хотя могут использоваться и другие технологии и пакеты. HPL генерирует линейную систему уравнений порядка n и решает ее, используя LU-разложение с частичным поворотом строк. Для работы требуются установленные реализации MPI, а также BLAS или VSIPL . [13]

Примерно алгоритм имеет следующие характеристики: [14] [15]

  • циклическое распределение данных в 2D-блоках
  • Факторизация LU с использованием правильного варианта с различной глубиной упреждения
  • рекурсивная факторизация панели
  • шесть различных вариантов панельного вещания
  • алгоритм сокращения полосы пропускания своп-вещания
  • обратная подстановка с опережением глубины 1

Критика [ править ]

Тест LINPACK считается успешным благодаря масштабируемости [16] HPLinpack, тому факту, что он генерирует одно число, что делает результаты легко сопоставимыми, и обширной исторической базой данных, с которой он связан. [17] Однако вскоре после выпуска тест LINPACK подвергся критике за обеспечение уровней производительности, «которые, как правило, недостижимы для всех, кроме очень небольшого числа программистов, которые утомительно оптимизируют свой код для этой машины и только для этой машины», [18] потому что он только тестирует разрешение плотных линейных систем , которые не являются репрезентативными для всех операций, обычно выполняемых в научных вычислениях. [19] Джек Донгарра, основная движущая сила тестов LINPACK, заявили, что, хотя они подчеркивают только «пиковую» скорость ЦП и количество ЦП, локальной пропускной способности и сети уделяется недостаточно внимания. [20]

Том Даннинг-младший , директор Национального центра суперкомпьютерных приложений , так сказал о тесте LINPACK: «Тест Linpack - одно из тех интересных явлений - почти любой, кто знает о нем, будет высмеивать его полезность. Они понимают его ограничения, но он имеет важное значение, потому что это единственное число, которое мы все купили за эти годы ». [21]

По словам Донгарра, «организаторы Top500 активно стремятся расширить объем отчетов по тестам», потому что «важно включить больше характеристик производительности и сигнатур для данной системы». [22] Одной из возможностей, которая рассматривается для расширения эталонного теста для TOP500, является HPC Challenge Benchmark Suite. [23] С появлением petascale компьютеров , пройденные ребра в секунду начали появляться в качестве альтернативы метрики флопов измеряются LINPACK. Другой альтернативой является тест HPCG , предложенный Донгаррой. [24]

Проблема времени работы [ править ]

По словам Джека Донгарра , ожидается, что время работы, необходимое для получения хороших результатов с HPLinpack, увеличится. На конференции, состоявшейся в 2010 году, он сказал, что ожидает, что продолжительность работы составит 2,5 дня за «несколько лет». [25]

См. Также [ править ]

  • ЛАПАК

Ссылки [ править ]

  1. ^ a b «Тест Linpack, TOP500 суперкомпьютерных сайтов» . Проверено 10 февраля 2015 . CS1 maint: discouraged parameter (link)
  2. ^ a b c d e Донгарра, Джек Дж .; Лущек, Петр; Petitet, Антуан (2003), "The LINPACK Benchmark: прошлое, настоящее и будущее" (PDF) , параллелизм и Исчисление: практика и опыт , John Wiley & Sons, Ltd., 15 (9): 803-820, DOI : 10.1002 /cpe.728 , S2CID 1900724  
  3. ^ Джек Dongarra Интервью Sander Олсон , архивируются с оригинала на 2016-03-04 , извлекаться 2012-01-13
  4. ^ Донгарра, JJ; Молер, CB; Букет, младший; Стюарт, GW (1979), LINPACK: руководство пользователя , SIAM , ISBN 9780898711721
  5. ^ Dongarra, Джек (1988), "The LINPACK тест: объяснение" (PDF) , Суперкомпьютерный , Lecture Notes в области компьютерных наук, Springer Berlin / Heidelberg, 297 : 456-474, DOI : 10.1007 / 3-540-18991-2_27 , ISBN  978-3-540-18991-6
  6. ^ High Performance Linpack Benchmark (PDF) , получено 10 февраля 2015 г. CS1 maint: discouraged parameter (link)
  7. ^ Бейли, DH; Barszcz, E .; Бартон, JT; Браунинг, Д.С. Картер, Р.Л .; Dagum, L .; Фатухи, РА; Frederickson, PO; Ласинский, Т.А.; Schreiber, RS; Саймон, HD; Венкатакришнан, В .; Виратунга, SK (1991), "НАН Украины параллельные тесты резюме и предварительные результаты" , Суперкомпьютерный : 158-165, DOI : 10,1145 / 125826,125925 , ISBN 0897914597, S2CID  18046345
  8. ^ «Часто задаваемые вопросы о LINPACK - Могу ли я использовать метод Штрассена при вычислении множителей матриц в тесте HPL или в тесте Top500?» . Проверено 10 февраля 2015 . CS1 maint: discouraged parameter (link)
  9. ^ "LINPACK FAQ - Какой точности должно соответствовать решение?" . Проверено 10 февраля 2015 . CS1 maint: discouraged parameter (link)
  10. ^ "Тестовая программа Linpack в Фортране" . Проверено 10 февраля 2015 . CS1 maint: discouraged parameter (link)
  11. ^ "Тестовая программа Linpack на C" . Проверено 10 февраля 2015 . CS1 maint: discouraged parameter (link)
  12. ^ "Тестовая программа Linpack на Java" . Проверено 10 февраля 2015 . CS1 maint: discouraged parameter (link)
  13. ^ «HPL - портативная реализация высокопроизводительного теста Linpack для компьютеров с распределенной памятью» . Проверено 10 февраля 2015 . CS1 maint: discouraged parameter (link)
  14. ^ "Алгоритм HPL" .
  15. ^ "Обзор HPL" . Проверено 10 февраля 2015 . CS1 maint: discouraged parameter (link)
  16. ^ "Интервью с легендой суперкомпьютеров Джеком Донгарра" . 2012-05-24. Архивировано из оригинала на 2013-02-03.
  17. ^ Хей, Томас (2004). «Интервью с Джеком Дж. Донгаррой» (PDF) . LINPACK - это эталонный тест, который люди часто цитируют, потому что там есть такая база исторических данных, потому что его довольно легко запустить, его довольно легко понять и он в некотором смысле отражает лучшее и худшее из программирования.
  18. ^ Хаммонд, Стивен (1995), Beyond Machoflops: Получение MPPs в производственной среде , заархивированные с оригинала на 2012-07-13
  19. ^ Гахвари, Хормозд; Hoemmen, Марк; Деммель, Джеймс; Йелик, Кэтрин (2006), «Тестирование умножения разреженной матрицы на вектор за пять минут», семинар по тестированию SPEC (PDF)
  20. ^ Донгарра, Джек Дж. (2007), «Тест HPC Challenge: кандидат на замену Linpack в Top500?», Семинар по тестам SPEC (PDF)
  21. ^ Кристофер Мимс (2010-11-08). «Почему новый суперкомпьютер в Китае является самым быстрым в мире только с технической точки зрения» . Проверено 22 сентября 2011 . CS1 maint: discouraged parameter (link)
  22. ^ Meuer, Martin (2002-05-24). «Интервью с легендой суперкомпьютеров Джеком Донгаррой» . Архивировано из оригинала на 2013-02-03 . Проверено 10 февраля 2015 . CS1 maint: discouraged parameter (link)
  23. ^ Luszczek, Петр; Донгарра, Джек Дж .; Кестер, Дэвид; Рабенсейфнер, Рольф; Лукас, Боб; Кепнер, Джереми; Маккалпин, Джон; Бейли, Дэвид; Такахаши, Дайсуке (2005 г.), Введение в набор тестов HPC Challenge (PDF)
  24. ^ Hemsoth, Николь (26 июня 2014). «Новый тест HPC дает многообещающие результаты» . HPCWire . Проверено 8 сентября 2014 . CS1 maint: discouraged parameter (link)
  25. ^ Донгарра, Джек Дж. (2010), LINPACK Benchmark с ограничениями по времени для многоядерных ускорителей и ускорителей на базе GPU (PDF)

Внешние ссылки [ править ]

  • TOP500 LINPACK
  • веб-тест LINPACK
  • Оптимизированный тест Intel® LINPACK