Производительность суперкомпьютеровНазваниегодфлопсыфлопс1941 100килофлопс1949 103мегафлопс1964 106гигафлопс1987 109терафлопс1997 1012петафлопс2008 1015эксафлопс2022 1018зеттафлопс Не ранее 2030Новый поворот Берд Киви, «Мир ПК», № 07, 2012: «Если нынешняя скорость прогресса суперкомпьютеров будет сохраняться, то следующий рубеж производительности в 1 экзафлопс, или квинтиллион (10^18) операций в секунду, ожидается достичь к 2019 г. … полагают, что компьютер производительностью один зеттафлопс (10^21 , или секстиллион операций) можно будет построить примерно к 2030 г. Более того, заранее припасены термины и для следующих вычислительных рубежей — йоттафлопс (10^24) и „ксерафлопс“ (10^27).»Пета, экза, зетта, йотта… Берд Киви, «Компьютерра», Дата: 16 июля 2008 года: «За этим рубежом должны последовать зеттафлопс (10^21), йоттафлопс (10^24) и „ксерафлопс“ (10^27).»1021иоттафлопс Не ранее 2040-х 1024роннафлопс Не ранее 2050-х 1027кветтафлопс Не ранее 2060-х 1030
FLOPS (также flops, flop/s, флопс или флоп/с; акроним от , произносится как флопс) — внесистемная единица, используемая для измерения производительности компьютеров, показывающая, сколько операций с плавающей запятой в секунду выполняет данная вычислительная система. Поскольку современные компьютеры обладают высоким уровнем производительности, более распространены производные величины от флопс, образуемые путём использования приставок СИ.
FLOP или FLOPS Существуют разногласия насчёт того, допустимо ли использовать слово FLOP от в единственном числе (и такие варианты как flop или флоп). Некоторые считают, что FLOP (флоп) и FLOPS (флопс или флоп/с) — синонимы, другие же полагают, что FLOP — это просто количество операций с плавающей запятой (например, требуемое для исполнения данной программы), а FLOPS — мера производительности, способность выполнять определённое количество операций с плавающей запятой за секунду.
Флопс как мера производительности Как и большинство других показателей производительности, данная величина определяется путём запуска на испытуемом компьютере тестовой программы, которая решает задачу с известным количеством операций и подсчитывает время, за которое она была решена. Наиболее популярным тестом производительности на сегодняшний день являются тесты производительности LINPACK, в частности HPL, используемый при составлении рейтинга суперкомпьютеров TOP500.
Одним из важнейших достоинств измерения производительности во флопсах является то, что данная единица до некоторых пределов может быть истолкована как абсолютная величина и вычислена теоретически, в то время как большинство других популярных мер являются относительными и позволяют оценить испытуемую систему лишь в сравнении с рядом других. Эта особенность даёт возможность использовать для оценки результатов работы различных алгоритмов, а также оценить производительность вычислительных систем, которые ещё не существуют или находятся в разработке.
Границы применимости Несмотря на кажущуюся однозначность, в реальности флопс является достаточно плохой мерой производительности, поскольку неоднозначным является уже само его определение. Под «операцией с плавающей запятой» может скрываться масса разных понятий, не говоря уже о том, что существенную роль в данных вычислениях играет разрядность операндов, которая также нигде не оговаривается. Кроме того, флопс подвержен влиянию очень многих факторов, напрямую не связанных с производительностью вычислительного модуля, таких как пропускная способность каналов связи с окружением процессора, производительность основной памяти и синхронность работы кэш-памяти разных уровней.
Всё это, в конечном итоге, приводит к тому, что результаты, полученные на одном и том же компьютере при помощи разных программ, могут существенным образом различаться; более того, с каждым новым испытанием разные результаты можно получить при использовании одного алгоритма. Отчасти эта проблема решается соглашением об использовании единообразных тестовых программ (той же LINPACK) с усреднением результатов, но со временем возможности компьютеров «перерастают» рамки принятого теста и он начинает давать искусственно заниженные результаты, поскольку не задействует новейшие возможности вычислительных устройств. А к некоторым системам общепринятые тесты вообще не могут быть применены, в результате чего вопрос об их производительности остаётся открытым.
Так, 24 июня 2006 года общественности был представлен суперкомпьютер MDGrape-3, разработанный в японском исследовательском институте RIKEN (Йокогама), с рекордной теоретической производительностью в 1 петафлопс. Однако данный компьютер не является компьютером общего назначения и приспособлен для решения узкого спектра конкретных задач, в то время как стандартный тест LINPACK на нём выполнить невозможно в силу особенностей его архитектуры.
Также высокую производительность на специфичных задачах показывают графические процессоры современных видеокарт и игровые приставки. К примеру, заявленная производительность видеопроцессора игровой приставки PlayStation 3 составляет 192 гигафлопса, а видеоускорителя приставки Xbox 360 и вовсе 240 гигафлопсов, что сравнимо с суперкомпьютерами двадцатилетней давности. Столь высокие показатели объясняются тем, что указана производительность над числами 32-разрядного форматаhttp://ixbtlabs.com/articles3/video/rv670-part1-page1.html floating-point ALUs .. support for FP32 precision these are single precision GPU peak numbers, тогда как для суперкомпьютеров обычно указывают производительность на 64-разрядных данных HPL is a software package that solves a dense linear system in double precision (64 bits) HPL Faq entries for precision. Кроме того, данные приставки и видеопроцессоры рассчитаны на операции с трёхмерной графикой, хорошо поддающиеся распараллеливанию, однако эти процессоры не в состоянии выполнять многие задачи общего назначения, и их производительность сложно оценить классическим тестом LINPACKExploiting the Performance of 32 bit FP Arithmetic in Obtaining 64 bit Accuracy (Revisiting Iterative Refinement for Linear Systems) и тяжело сравнить с другими системами.
Пиковая производительность Для подсчёта максимального количества флопсов для процессора нужно учитывать, что современные процессоры в каждом своём ядре содержат несколько исполнительных блоков каждого типа (в том числе и для операций с плавающей запятой), работающих параллельно, и могут выполнять более одной инструкции за такт. Данная особенность архитектуры называется суперскалярность и впервые появилась ещё в ЭВМ CDC 6600 в 1964 году. Массовое производство компьютеров с суперскалярной архитектурой началось с выпуском процессора Pentium в 1993 году. Процессор конца 2000-х годов, Intel Core 2, также является суперскалярным и содержит 2 устройства вычислений над 64-разрядными числами с плавающей запятой, которые могут завершать по 2 связанные операции (умножение и последующее сложение, MAC) в каждый такт, теоретически позволяющих достичь пиковой производительности до 4 операций за 1 такт в каждом ядре. Таким образом, для процессора, имеющего в своём составе 4 ядра (Core 2 Quad) и работающего на частоте 3,5 ГГц, теоретический предел производительности составляет 4×4×3,5=56 гигафлопсов, а для процессора, имеющего 2 ядра (Core 2 Duo) и работающего на частоте 3 ГГц — 2×4×3=24 гигафлопса, что хорошо согласуется с практическими результатами, полученными на тесте LINPACK.
AMD Phenom 9500 sAM2+ с тактовой частотой 2,2 ГГц: 2200 МГц × 4 ядра × 4 = 35,2 гигафлопса Для четырёхъядерного процессора Core 2 Quad Q6600: 2400 МГц × 4 ядра × 4 = 38,4 гигафлопса.
Более новые процессоры могут исполнять до 8 (например, Sandy и Ivy Bridge, 2011—2012 гг, AVX) или до 16 (Haswell и Broadwell, 2013—2014 гг, AVX2 и FMA3) операций над 64-битными числами с плавающей запятой в такт (на каждом ядре). В последующих процессорах ожидается исполнение 32 операций в такт (Intel Xeon Skylake, Xeon *v5, 2015 г, AVX512)Jack Dongarra, Peak Performance — Per Core / A Look at High Performance Computing, 2015-10-15
Sandy и Ivy Bridge c AVX: 8 Флопс/такт двойной точностиhttp://sites.utexas.edu/jdm4372/2016/11/22/sc16-invited-talk-memory-bandwidth-and-system-balance-in-hpc-systems/ http://sites.utexas.edu/jdm4372/files/2016/11/Slide20.png , 16 Флопс/такт одинарной точности Intel Core i7 2700:/Intel Core i7 3770: 8*4*3900 МГц = 124,8 Гфлопс пиковая двойной точности, 16*4*3900 = 249,6 Гфлопс пиковая одинарной точности.
Intel Haswell/Broadwell с AVX2 и FMA3: 16 Флопс/такт двойной точности; 32 одинарной точности Флопса/такт Intel Core i7 4770: 16*4*3900 МГц = 249,6 Гигафлопс пиковая двойной точности, 32*4*3900 = 499,2 Гфлопс пиковая одинарной точности.
Причины широкого распространения Несмотря на большое число существенных недостатков, флопс продолжает с успехом использоваться для оценки производительности, базируясь на результатах теста LINPACK. Причины такой популярности обусловлены, во-первых, тем, что флопс, как говорилось выше, является абсолютной величиной. А во-вторых, очень многие задачи инженерной и научной практики в конечном итоге сводятся к решению систем линейных алгебраических уравнений, а тест LINPACK как раз и базируется на измерении скорости решения таких систем. Кроме того, подавляющее большинство компьютеров (включая суперкомпьютеры) построены по классической архитектуре с использованием стандартных процессоров, что позволяет использовать общепринятые тесты с большой достоверностью.
В различных алгоритмах, кроме возможности выполнять большое количество математических действий в ядре процессора, может потребоваться пересылка больших объёмов данных через подсистему памяти, и их производительность будет сильно ограничена из-за этого, например, как в уровнях 1 и 2 библиотек BLAS. Однако, алгоритмы, используемые в тестах типа LINPACK (уровень 3 BLAS), имеют высокий коэффициент переиспользования данных, пересылка данных между процессором и памятью в них занимает менее 1/10 общего времени, и они обычно достигают типичной производительности до 80-95 % от теоретического максимума.
Обзор производительности реальных систем Из-за высокого разброса результатов теста LINPACK приведены примерные величины, полученные путём усреднения показателей на основе информации из разных источников. Производительность игровых приставок и распределённых систем (имеющих узкую специализацию и не поддерживающих тест LINPACK) приведена в справочных целях в соответствии с числами, заявленными их разработчиками. Более точные результаты с указанием параметров конкретных систем можно получить, например, на сайте The Performance Database Server.
Суперкомпьютеры
Уно Z3 (1941) — 2 флопса ЭВМ М-1 (1951) — 20 флопсов ЭВМ МЭСМ (1950) — 50 флопсов ЭНИАК (1946) — 500 флопсовThe Emergence of Numerical Weather Prediction: from Richardson to the ENIAC , 2011
Кило ЭВМ Стрела (1953) — 3 килофлопса (1957) — 5 килофлопсов БЭСМ-2 (1957) — 10 килофлопсов ЭВМ М-40 (1959) — 40 килофлопсов IBM 7030 Stretch (1960) — 420 килофлопсов
Мега Т340-А и К340-А (НИИ ДАР) — 2,4 мегафлопса (1963) CDC 6600 (1964) — 1 мегафлопс БЭСМ-6 (1968) — 1 мегафлопс (операций сложения) БЭСМ-6 на базе Эльбрус-1К2 (1980-е) — 6 мегафлопсов (операций деления) CDC 7600 (1969) — 10 мегафлопсов Эльбрус-2 (1984) — 125 мегафлопсов Cray-1 (1974) — 133 мегафлопса ПС2000 (1980) — 200 мегафлопсов Электроника СС БИС (1991) — 500 мегафлопсов (двухмашинный вариант) Эльбрус-3-1 (1990) — 550 мегафлопсов
Гига NEC SX-2 (1983) — 1,3 гигафлопса М-13 (1984) — 2,4 гигафлопса ПС2100 (1985—1986) — 1,5 гигафлопса Cray-2 (1985) — 1,9 гигафлопса Cray Y-MP (1988) — 2,3 гигафлопса ETA-10G (1990) — 10 гигафлопс МВС-100 (1995) — 100 гигафлопс Numerical Wind Tunnel (1993) — 124,5 гигафлопса
Тера ASCI Red (1996) — 1 терафлопс МВС-1000М (2001) — 1 терафлопс СКИФ К-1000 (2004) — 2,5 терафлопса МВС-100КФ (2010) — 10 терафлопс ASCI White (2000) — 12,3 терафлопса Earth Simulator (2002) — 35,86 терафлопса ASC Purple (2005) — 100 терафлопсов