23-10-2023
Производительность суперкомпьютеров | ||
---|---|---|
Название | год | FLOPS |
флопс | 1941 | 100 |
килофлопс | 1949 | 103 |
мегафлопс | 1964 | 106 |
гигафлопс | 1987 | 109 |
терафлопс | 1997 | 1012 |
петафлопс | 2008 | 1015 |
эксафлопс | ~2016 | 1018 |
зеттафлопс | − | 1021 |
йоттафлопс | − | 1024 |
FLOPS (также flops, flop/s, флопс или флоп/с) (акроним от англ. FLoating-point Operations Per Second, произносится как флопс) — внесистемная единица, используемая для измерения производительности компьютеров, показывающая, сколько операций с плавающей запятой в секунду выполняет данная вычислительная система. Существуют разногласия насчёт того, допустимо ли использовать слово FLOP, и что оно может означать. Некоторые считают, что FLOP и FLOPS — синонимы, другие же полагают, что FLOP (или flop или флоп, от англ. FLoating point OPeration) — это просто количество операций с плавающей запятой (например, требуемое для исполнения данной программы).
Поскольку современные компьютеры обладают высоким уровнем производительности, более распространены производные величины от FLOPS, образуемые путём использования стандартных приставок системы СИ.
Содержание |
Как и большинство других показателей производительности, данная величина определяется путём запуска на испытуемом компьютере тестовой программы, которая решает задачу с известным количеством операций и подсчитывает время, за которое она была решена. Наиболее популярным тестом производительности на сегодняшний день является программа TOP500.
Одним из важнейших достоинств показателя флопс является то, что он до некоторых пределов может быть истолкован как абсолютная величина и вычислен теоретически, в то время как большинство других популярных мер являются относительными и позволяют оценить испытуемую систему лишь в сравнении с рядом других. Эта особенность даёт возможность использовать для оценки результаты работы различных алгоритмов, а также оценить производительность вычислительных систем, которые ещё не существуют или находятся в разработке.
Несмотря на кажущуюся однозначность, в реальности флопс является достаточно плохой мерой производительности, поскольку неоднозначным является уже само его определение. Под «операцией с плавающей запятой» может скрываться масса разных понятий, не говоря уже о том, что существенную роль в данных вычислениях играет разрядность операндов, которая также нигде не оговаривается. Кроме того, величина флопс подвержена влиянию очень многих факторов, напрямую не связанных с производительностью вычислительного модуля, таких как: пропускная способность каналов связи с окружением процессора, производительность основной памяти и синхронность работы кэш-памяти разных уровней.
Всё это, в конечном итоге, приводит к тому, что результаты, полученные на одном и том же компьютере при помощи разных программ, могут существенным образом отличаться, более того, с каждым новым испытанием разные результаты можно получить при использовании одного алгоритма. Отчасти эта проблема решается соглашением об использовании единообразных тестовых программ (той же LINPACK) с усреднением результатов, но со временем возможности компьютеров «перерастают» рамки принятого теста и он начинает давать искусственно заниженные результаты, поскольку не задействует новейшие возможности вычислительных устройств. А к некоторым системам общепринятые тесты вообще не могут быть применены, в результате чего вопрос об их производительности остаётся открытым.
Так, например, 24 июня 2006 года общественности был представлен суперкомпьютер MDGrape-3, разработанный в японском исследовательском институте RIKEN (Йокогама), с рекордной теоретической производительностью в 1 Пфлопс. Однако данный компьютер не является компьютером общего назначения и приспособлен для решения узкого спектра конкретных задач, в то время как стандартный тест LINPACK на нём выполнить невозможно в силу особенностей его архитектуры.
Также высокую производительность на специфичных задачах показывают графические процессоры современных видеокарт и игровые приставки. К примеру, заявленная производительность игровой приставки Xbox 360 составляет 1 Тфлопс, а приставки PlayStation 3 и вовсе 2 Тфлопс, что ставит их в один ряд с суперкомпьютерами начального уровня. Столь высокие показатели объясняются тем, что указана производительность над числами 32-битного формата[1][2], тогда как для суперкомпьютеров обычно указывают производительность на 64-разрядных данных[3][4]. Кроме того, данные приставки и видео-процессоры рассчитаны на операции с трёхмерной графикой, хорошо поддающиеся распараллеливанию, однако эти процессоры не в состоянии выполнять многие задачи общего назначения, и их производительность сложно оценить классическим тестом LINPACK[5] и тяжело сравнить с другими системами.
Несмотря на большое число существенных недостатков, показатель флопс продолжает с успехом использоваться для оценки производительности, базируясь на результатах теста LINPACK. Причины такой популярности обусловлены, во-первых, тем, что флопс, как говорилось выше, является абсолютной величиной. А во-вторых, очень многие задачи инженерной и научной практики в конечном итоге сводятся к решению систем линейных алгебраических уравнений, а тест LINPACK как раз и базируется на измерении скорости решения таких систем. Кроме того, подавляющее большинство компьютеров (включая суперкомпьютеры) построены по классической архитектуре с использованием стандартных процессоров, что позволяет использовать общепринятые тесты с большой достоверностью.
Для подсчета максимального количества FLOPS для процессора нужно учитывать, что современные процессоры в каждом своём ядре содержат несколько исполнительных блоков каждого типа (в том числе и для операций с плавающей точкой), работающих параллельно, и могут выполнять более одной инструкции за такт. Данная особенность архитектуры называется суперскалярность и впервые появилась ещё в самом первом процессоре Pentium в 1993 году. Современное ядро Intel Core 2 так же является суперскалярным и содержит 2 устройства вычислений над 64-битными числами с плавающей запятой, которые могут завершать по 2 связанные операции (умножение и последующее сложение, MAC) в каждый такт, теоретически позволяющих достичь пиковой производительности до 4-х операций за 1 такт в каждом ядре[6][7]. Таким образом, для процессора, имеющего в своём составе 4 ядра (Core 2 Quad) и работающего на частоте 3.5ГГц, теоретический предел производительности составляет 4х4х3.5=56 гигафлопс, а для процессора, имеющего 2 ядра (Core 2 Duo) и работающего на частоте 3ГГц — 2х4х3=24 гигафлопс, что хорошо согласуется с практическими результатами, полученными на тесте LINPACK. Типичная производительность теста LINPACK составляет 80-95 % от теоретического максимума.
Из-за высокого разброса результатов теста LINPACK, приведены примерные величины, полученные путём усреднения показателей на основе информации из разных источников. Производительность игровых приставок и The Performance Database Server.
Планы:
Данные приведены по состоянию на 26 июля 2011 года
Указаны операции с плавающей точкой над 32-разрядными данными
Теоретическая производительность (FMA; гигафлопсы):
GPU | GFLOPS с точностью 32 бита | GFLOPS с точностью 64 бита | Источник |
---|---|---|---|
GeForce GTX 590 | 2x1253,4 = 2507.4 | 2x 156,7 = 313.4 | [32] |
GeForce GTX 580 | 1581,1 | 197,6 | [32] |
Radeon HD 7970 | 3789 | 947 | [33] |
Radeon HD 6990 | 2x2550 = 5100 | 2x 637 = 1274 | [33] |
Radeon HD 5970 (AIB vendors) | 2x 2320 = 4640 | 2x 464 = 928 | [33] |
Калькулятор не случайно попал в одну категорию вместе с человеком, поскольку хотя он и является электронным устройством, содержащим процессор, память и устройства ввода/вывода, режим его работы кардинально отличается от режима работы компьютера. Калькулятор выполняет одну операцию за другой с той скоростью, с какой их запрашивает человек-оператор. Время, проходящее между операциями, определяется возможностями человека и существенно превышает время, которое затрачивается непосредственно на вычисления. Можно сказать, что в среднем производительность обычного карманного калькулятора составляет 10 флопс.
Человек, пользуясь лишь ручкой и бумагой, выполняет операции с плавающей запятой очень медленно и часто с большой ошибкой. Говоря о производительности нашего вычислительного аппарата, придётся использовать такие единицы как миллифлопс и даже микрофлопс.
Петафлопс.