Что такое тфлопс. IPhone против суперкомпьютеров из прошлого. Кто кого

Значение, происхождение слова терафлопс. Формула, вычисление производительности компьютера в терафлопсах. Teraflops = tera – греческое слово обозначающее математическую величину 10 в 12 степени (1 000 000 x 1 000 000) + английский акроним flops – fl oating point o perations p er s econd (с англ. – количество операций над числом с плавающей запятой в секунду).

Терафлопс – терафлоп (TFLOPS – Teraflops) – это величина, значение дающее оценку производительности компьютера, показатель вычислительной мощи компьютера в расчетах с плавающей запятой за секунду. Один Teraflops – Терафлопс равен одному триллиону операций за одну секунду или тысяче миллиардов операций. 1 Терафлопс = 1 000 000 000 000 операций в секунду.

Формула расчета производительности Teraflops.
Расчет пиковой производительности компьютера выполняется по формуле:
1 терафлопс = F x N x I x 10 6 . Где:

F – тактовая частота процессора в MHz,
N – число процессоров (ядер),
I – количество обрабатываемых инструкций за такт,
10 6 = 1 000 000.

Реальная производительность компьютера будет, находится в районе 70-80% от пиковой Терафлопс.

На сегодняшний день самым мощным суперкомпьютером является Cray XT (Jaguar). Его производительность составляет 1 790 терафлопс.

MILKY WAY ONE – Супер Компьютер в Китае. Терафлопсы наступают.
Национальный Университет (с суровыми дядьками) Оборонных Технологий объявил о запуске программы по созданию суперкомпьютера с расчетной мощностью на уровне 1 петафлопса (терафлопс 10 12 flops, петафлопс = 10 15 flops). Китай станет 2 государством, на шарике Земля, с такой «игрушкой». В основе суперкомпьютера – 6144 4-х ядерных CPU Intel — Xeon Quad-Core E5450 (50%) и Xeon Quad-Core E5540 (50%). Добавим сюда 5120 GPU AMD/ ATI в лице 2560 видеокарт ATI Radeon HD 4870 Х2 575МГц.

Суммарная мощность этой гремучей смеси 1,206 петафлопса или 1206 терафлопс (teraflops). Вес супер железяки 155 тонн, занимает помещение площадью 1000 кв. метров. Обойдется Китаю в 88 млн. долларов. Невольно вспомнился Терминатор.

Первой видеокартой (графический процессор), покорившей рубеж производительности в 1 Терафлопс, является ATI Radeon HD 4850.

Самой производительной видеокартой современности (на начало 2010 года) является ATI Radeon HD 5870, с быстродействием 2,72 Teraflops (Терафлопс).

Власть меняется. К лету 2010 компания Asus выпускает сдвоенную видеокарту Asus Ares Radeon HD 5870 x2. Тандем двух полноценных Radeon HD5870 развивают мощность 5,44 терафлопс. Видео карта Asus ARES/2DIS/4GD5 — .

Teraflops — максимальное, пиковое значение производительности процессора — терафлопс . Вычисляем производительность в терафлопсах.

С наилучшими $ пожеланиями
Denker.

С тех самых времён, когда появился самый первый компьютер (его подобие), началась погоня за мозностями, производительностью и в наши дни по прежднему ничего в этом плане не изменилось, ведь каждый владелец персонального компьютера чья работа связана с нагрузкой на вычислительные мощности ПК мечтает о ещё более производительном железе.

Все компьютеры которые существуют разделяются на несколько категорий, начиная от микрочипов и заканчивая суперкомпьютерами, которые потребляют десятки киловатт электроэнергии и являются топовыми в вычислительных можностях. В этом материале вы узнаете как можно измерить производительность персонального компьютера.

С самых ранних пор для того чтобы измерять производительность того или иного компьютера, решили использовать количество выполняемых операций с плавающей точкой за 1 секунду времени. На практике это оказалось действительно весьма показательным результатом. Единицу измерения 1 операции назвали Flops (Флопс). Однако компьютеры являются весьма производительными устройствами, поэтому перед флопс используется приставка кило/мега/Гига/Пета/Экса и тд. Каждая перечисленная операция больше предыдущей в 1000 раз. Для конечной оценки выдаются результаты Флопс/с, т.е. флопс в секунду. Если вы хотите почитать про Flops больше, то вам сюда .

Замер производительности персонального ПК

Существует немало инструментов для того чтобы измерить производительность во флопсах персонального компьютера или ноутбука. Однако все инструменты основаны на одном и том же принципе работы.

Из возможных интерфейсов есть анализ производительности через командную строку, через компиляторы Фортран и С++ и тд. Но мы пойдём более лёгким путём и будем использовать уже скомпилированный exe файл программв Linpack, которая является самой популярной в замерах производительности компьютеров на Windows.

Ниже мы представляем вашему вниманию 2 версии программы Linpack, которая поможет вам определить сколько ваш компьютер делает операций с плавающей точкой в секунду времени.

Как проверить?

Сначала распакуйте архив и запустите программу (файл LinX.exe). Интерфейс программы очень прост и вы легко с ним разберётесь. Для начала зайдите в настройки и дайте пргграмме самый высокий приоритет. После этого постарайтесь выключить ресурсоёмие программы. В интерфейсе LinX вы можете выбрать сколько раз или минут проводить тест и каким объёмом данных орудовать во время его проведения. Когда все настройки выставлены - жмите Тест . После завершения вы скорее всего увидите результат в GFlops/s (Гигафлопсов в секунду).

Для того чтобы представлять сколько это: 1 Флопс=1 Операция с плавающей точкой; 1ГФлопс= 1 000 000 000 Операций с плавающей точкой.

) - величина, используемая для измерения производительности компьютеров, показывающая, сколько операций с плавающей запятой в секунду выполняет данная вычислительная система. 1 терафлопс = 1 триллион операций в секунду = 1000 миллиардов операций в секунду. Обычно имеются в виду операции над вещественными числами разрядностью 64 бита в формате IEEE 754 .

При измерении производительности кластеров и суперкомпьютеров часто используется 2 варианта: пиковая производительность - теоретический предел производительности (выражаемый через операции с плавающий запятой) для данных процессоров и максимальная производительность , которую данный кластер или компьютер достигает при решении практических задач. В качестве эталонной задачи часто выступает задача решения системы СЛАУ методом LU-разложения. Для измерений на кластерах используется реализация HPL - High performance linpack.

Чтобы найти пиковую производительность ЭВМ R , терафлопс, нужно тактовую частоту F , МГц, умножить на число процессоров (процессорных ядер) n , домножить на количество инструкций с плавающей запятой на такт (4 для процессоров Core2 - 2 операции Float Multiple Add ; 8 для процессоров Intel с AVX) и поделить на 1000000:

F × n × 4·10 −6 = R

Например, суперкомпьютер американской корпорации IBM , (на май 2008 года был самым производительным на планете), который работает в , штат Калифорния, США, обладает теоретической пиковой производительностью 596,4 терафлопс. Максимальная производительность , достигнутая в тесте LINPACK (HPL) - 478,2 терафлопс - составила 80 % от пиковой .

Эта суперЭВМ собрана на базе 212992 процессоров PowerPC 440 , тактовая частота каждого из которых 700 МГц. Его производительность:

700 МГц × 212992 процессоров × 4·10 −6 = 596,4 трлн операций в секунду = 596,4 терафлопс.

В общем случае, соотношение максимальной и пиковой производительности , поэтому по указанной формуле можно вычислять лишь пиковую производительность суперЭВМ. Так, например, пиковая производительность компьютера на базе четырехъядерного процессора AMD Phenom 9500 sAM2+ с тактовой частотой 2,2 ГГц равна:

2200 МГц × 4 ядра × 4·10 −6 = 35,2 млрд операций в секунду = 0,0352 терафлопс.

Для четырехъядерного процессора Core 2 Quad Q6600:

2400 МГц × 4 ядра × 4·10 −6 = 38,4 млрд операций в секунду = 0,0384 терафлопс.

Кроме того, AMD представила вычислительную систему FireStream 9250, занимающую один разъем PCI, общая производительность которой превосходит терафлопс, но только на 32-х разрядных данных, тогда как для суперкомпьютеров принято считать производительность на 64-х разрядных данных.

В 2012 году суммарная мощность компьютеров Гидрометцентра составляла 27 терафлопс, а в конце того же года в Гидрометцентре начал работать компьютер мощностью ещё 30 терафлопс .

1000 терафлопс = 1 петафлопс.

Напишите отзыв о статье "Терафлопс"

Примечания

См.также

Отрывок, характеризующий Терафлопс

– Ну, сейчас, – сказал он на слова фельдшера, указывавшего ему на князя Андрея, и велел нести его в палатку.
В толпе ожидавших раненых поднялся ропот.
– Видно, и на том свете господам одним жить, – проговорил один.
Князя Андрея внесли и положили на только что очистившийся стол, с которого фельдшер споласкивал что то. Князь Андрей не мог разобрать в отдельности того, что было в палатке. Жалобные стоны с разных сторон, мучительная боль бедра, живота и спины развлекали его. Все, что он видел вокруг себя, слилось для него в одно общее впечатление обнаженного, окровавленного человеческого тела, которое, казалось, наполняло всю низкую палатку, как несколько недель тому назад в этот жаркий, августовский день это же тело наполняло грязный пруд по Смоленской дороге. Да, это было то самое тело, та самая chair a canon [мясо для пушек], вид которой еще тогда, как бы предсказывая теперешнее, возбудил в нем ужас.
В палатке было три стола. Два были заняты, на третий положили князя Андрея. Несколько времени его оставили одного, и он невольно увидал то, что делалось на других двух столах. На ближнем столе сидел татарин, вероятно, казак – по мундиру, брошенному подле. Четверо солдат держали его. Доктор в очках что то резал в его коричневой, мускулистой спине.
– Ух, ух, ух!.. – как будто хрюкал татарин, и вдруг, подняв кверху свое скуластое черное курносое лицо, оскалив белые зубы, начинал рваться, дергаться и визжат ь пронзительно звенящим, протяжным визгом. На другом столе, около которого толпилось много народа, на спине лежал большой, полный человек с закинутой назад головой (вьющиеся волоса, их цвет и форма головы показались странно знакомы князю Андрею). Несколько человек фельдшеров навалились на грудь этому человеку и держали его. Белая большая полная нога быстро и часто, не переставая, дергалась лихорадочными трепетаниями. Человек этот судорожно рыдал и захлебывался. Два доктора молча – один был бледен и дрожал – что то делали над другой, красной ногой этого человека. Управившись с татарином, на которого накинули шинель, доктор в очках, обтирая руки, подошел к князю Андрею. Он взглянул в лицо князя Андрея и поспешно отвернулся.
– Раздеть! Что стоите? – крикнул он сердито на фельдшеров.
Самое первое далекое детство вспомнилось князю Андрею, когда фельдшер торопившимися засученными руками расстегивал ему пуговицы и снимал с него платье. Доктор низко нагнулся над раной, ощупал ее и тяжело вздохнул. Потом он сделал знак кому то. И мучительная боль внутри живота заставила князя Андрея потерять сознание. Когда он очнулся, разбитые кости бедра были вынуты, клоки мяса отрезаны, и рана перевязана. Ему прыскали в лицо водою. Как только князь Андрей открыл глаза, доктор нагнулся над ним, молча поцеловал его в губы и поспешно отошел.
После перенесенного страдания князь Андрей чувствовал блаженство, давно не испытанное им. Все лучшие, счастливейшие минуты в его жизни, в особенности самое дальнее детство, когда его раздевали и клали в кроватку, когда няня, убаюкивая, пела над ним, когда, зарывшись головой в подушки, он чувствовал себя счастливым одним сознанием жизни, – представлялись его воображению даже не как прошедшее, а как действительность.
Около того раненого, очертания головы которого казались знакомыми князю Андрею, суетились доктора; его поднимали и успокоивали.
– Покажите мне… Ооооо! о! ооооо! – слышался его прерываемый рыданиями, испуганный и покорившийся страданию стон. Слушая эти стоны, князь Андрей хотел плакать. Оттого ли, что он без славы умирал, оттого ли, что жалко ему было расставаться с жизнью, от этих ли невозвратимых детских воспоминаний, оттого ли, что он страдал, что другие страдали и так жалостно перед ним стонал этот человек, но ему хотелось плакать детскими, добрыми, почти радостными слезами.

Несмотря на то, что VTune имеет множество встроенных профилей, специального профиля для измерения FLOPS у него пока нет. Но никто не мешает нам создать наш собственный пользовательский профиль за 30 секунд. Не утруждая вас основами работы с интерфейсом VTune (их можно изучить в прилагающимся к нему Getting Started Tutorial), сразу опишу процесс создания профиля и сбора данных.

  1. Создаем новый проект и указываем в качестве target application наше приложение matrix .
  2. Выбираем профиль Lightweight Hotspots (который использует технологию сэмплирования счетчиков процессора Hadware Event-based Sampling) и копируем его для создания пользовательского профиля. Обзываем его My FLOPS Analysis.
  3. Редактируем профиль, добавляем туда новые процессорные счетчики событий процессора Sandy Bridge (Events). На них остановимся чуть подробнее. В их названии зашифрованы исполнительные устройства (x87, SSE, AVX) и тип данных, над которыми выполнялась операция. Каждый такт процессора счетчики складывают количество вычислительных операций, назначенных на исполнение. На всякий случай мы добавили счетчики на все возможные операции с FP:
  • FP_COMP_OPS_EXE. SSE_PACKED_DOUBLE – векторы (PACKED) данных двойной точности (DOUBLE)
  • FP_COMP_OPS_EXE. SSE_PACKED_SINGLE – векторы данных одинарной точности
  • FP_COMP_OPS_EXE. SSE_SCALAR_DOUBLE – скалярые DP
  • FP_COMP_OPS_EXE. SSE_ SCALAR _SINGLE – скалярные SP
  • SIMD_FP_256.PACKED_DOUBLE – векторы AVX данных DP
  • SIMD_FP_256.PACKED_SINGLE – векторы AVX данных SP
  • FP_COMP_OPS_EXE.x87 – скалярые данные x87
Нам остается только запустить анализ и подождать результатов. В полученных результатах переключаемся в Hardware Events viewpoint и копируем количетво events, собранных для функции multiply3 : 34,648,000,000.

Далее мы просто подсчитываем значения FLOPS по формулам. Данные у нас были собраны для всех процессоров, поэтому умножение на их количество здесь не требуется. Операции данными двойной точности выполняются одновременно над четырмя 64-битными DP операндами в 256-битном регистре, поэтому умножаем на коэффициент 4. Данные с одинарной точностью, соответственно, умножаем на 8. В последней формуле не умножаем количество инструкций на коэффициент, так как операции сопроцессора x87 выполняются только со скалярными величинами. Если в программе выполняется несколько разных типов FP операций, то их количество, умноженное на коэффициенты, суммируется для получения результирующего FLOPS.

FLOPS = 4 * SIMD_FP_256.PACKED_DOUBLE / Elapsed Time
FLOPS = 8 * SIMD_FP_256.PACKED_SINGLE / Elapsed Time
FLOPS = (FP_COMP_OPS_EXE.x87) / Elapsed Time

В нашей программе выполнялись только AVX инструкции, поэтому в результатах есть значение только одного счетчика SIMD_FP_256.PACKED_DOUBLE.
Удостоверимся, что данные события собраны для нашего цикла в функции multiply3 (переключившись в Source View):

FLOPS = 4 *34.6Gops/7s = 19.7 GFlops
Значение вполне соответствует оценочному, подсчитанному в предыдущем пункте. Поэтому с достаточной долей точности можно говорить о том, что результаты оценочного метода и измерительного совпадают. Однако, существуют случаи, когда они могут не совпадать. При определенном интересе читателей, я могу заняться их исследованием и рассказать, как использовать более сложные и точные методы. А взамен очень хочется услышать о ваших случаях, когда вам требуется измерение FLOPS в программах.

Заключение
FLOPS – единица измерения производительности вычислительных систем, которая характеризует максимальную вычислительную мощность самой системы для операций с плавающей точкой. FLOPS может быть заявлена как теоретическая, для еще не существующих систем, так и измерена с помощью бенчмарков. Разработчики высокопроизводительных программ, в частности, решателей систем линейных дифференциальных уравнений, оценивают производительность реализации своих алгоритмов в том числе и по значению FLOPS программы, вычисленному с помощью теоретически/эмпирически известного количества FP операций, необходимых для выполнения алгоритма, и измеренному времени выполнения теста. Для случаев, когда сложность алгоритма не позволяет оценить количество FP операций алгоритма, их можно измерить с помощью счетчиков производительности, встроенных в микропроцессоры Intel.

Несмотря на то, что VTune имеет множество встроенных профилей, специального профиля для измерения FLOPS у него пока нет. Но никто не мешает нам создать наш собственный пользовательский профиль за 30 секунд. Не утруждая вас основами работы с интерфейсом VTune (их можно изучить в прилагающимся к нему Getting Started Tutorial), сразу опишу процесс создания профиля и сбора данных.

  1. Создаем новый проект и указываем в качестве target application наше приложение matrix .
  2. Выбираем профиль Lightweight Hotspots (который использует технологию сэмплирования счетчиков процессора Hadware Event-based Sampling) и копируем его для создания пользовательского профиля. Обзываем его My FLOPS Analysis.
  3. Редактируем профиль, добавляем туда новые процессорные счетчики событий процессора Sandy Bridge (Events). На них остановимся чуть подробнее. В их названии зашифрованы исполнительные устройства (x87, SSE, AVX) и тип данных, над которыми выполнялась операция. Каждый такт процессора счетчики складывают количество вычислительных операций, назначенных на исполнение. На всякий случай мы добавили счетчики на все возможные операции с FP:
  • FP_COMP_OPS_EXE. SSE_PACKED_DOUBLE – векторы (PACKED) данных двойной точности (DOUBLE)
  • FP_COMP_OPS_EXE. SSE_PACKED_SINGLE – векторы данных одинарной точности
  • FP_COMP_OPS_EXE. SSE_SCALAR_DOUBLE – скалярые DP
  • FP_COMP_OPS_EXE. SSE_ SCALAR _SINGLE – скалярные SP
  • SIMD_FP_256.PACKED_DOUBLE – векторы AVX данных DP
  • SIMD_FP_256.PACKED_SINGLE – векторы AVX данных SP
  • FP_COMP_OPS_EXE.x87 – скалярые данные x87
Нам остается только запустить анализ и подождать результатов. В полученных результатах переключаемся в Hardware Events viewpoint и копируем количетво events, собранных для функции multiply3 : 34,648,000,000.

Далее мы просто подсчитываем значения FLOPS по формулам. Данные у нас были собраны для всех процессоров, поэтому умножение на их количество здесь не требуется. Операции данными двойной точности выполняются одновременно над четырмя 64-битными DP операндами в 256-битном регистре, поэтому умножаем на коэффициент 4. Данные с одинарной точностью, соответственно, умножаем на 8. В последней формуле не умножаем количество инструкций на коэффициент, так как операции сопроцессора x87 выполняются только со скалярными величинами. Если в программе выполняется несколько разных типов FP операций, то их количество, умноженное на коэффициенты, суммируется для получения результирующего FLOPS.

FLOPS = 4 * SIMD_FP_256.PACKED_DOUBLE / Elapsed Time
FLOPS = 8 * SIMD_FP_256.PACKED_SINGLE / Elapsed Time
FLOPS = (FP_COMP_OPS_EXE.x87) / Elapsed Time

В нашей программе выполнялись только AVX инструкции, поэтому в результатах есть значение только одного счетчика SIMD_FP_256.PACKED_DOUBLE.
Удостоверимся, что данные события собраны для нашего цикла в функции multiply3 (переключившись в Source View):

FLOPS = 4 *34.6Gops/7s = 19.7 GFlops
Значение вполне соответствует оценочному, подсчитанному в предыдущем пункте. Поэтому с достаточной долей точности можно говорить о том, что результаты оценочного метода и измерительного совпадают. Однако, существуют случаи, когда они могут не совпадать. При определенном интересе читателей, я могу заняться их исследованием и рассказать, как использовать более сложные и точные методы. А взамен очень хочется услышать о ваших случаях, когда вам требуется измерение FLOPS в программах.

Заключение
FLOPS – единица измерения производительности вычислительных систем, которая характеризует максимальную вычислительную мощность самой системы для операций с плавающей точкой. FLOPS может быть заявлена как теоретическая, для еще не существующих систем, так и измерена с помощью бенчмарков. Разработчики высокопроизводительных программ, в частности, решателей систем линейных дифференциальных уравнений, оценивают производительность реализации своих алгоритмов в том числе и по значению FLOPS программы, вычисленному с помощью теоретически/эмпирически известного количества FP операций, необходимых для выполнения алгоритма, и измеренному времени выполнения теста. Для случаев, когда сложность алгоритма не позволяет оценить количество FP операций алгоритма, их можно измерить с помощью счетчиков производительности, встроенных в микропроцессоры Intel.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: