400 likes | 542 Views
Hewlett-Packard V2600. EDSAC, 1949 , Кембридж. Производительность вычислительных систем. 2×10 -6. 1.8×10 -9. время такта 2 микросекунды. время такта 1.8 наносекунды. можно было выполнить 2* n операций за 18* n миллисекунд.
E N D
Hewlett-Packard V2600 EDSAC, 1949 , Кембридж Производительность вычислительных систем 2×10-6 1.8×10-9 время такта 2 микросекунды время такта 1.8 наносекунды можно было выполнить 2*n операций за 18*n миллисекунд пиковая производительность около 77 миллиардов операций в секунду рост производительности 100 операций в секунду семьсот миллионов раз
MIPS отношение количества команд в программе к времени ее выполнения Проблемы: MIPS зависит от набора команд процессора, что затрудняет сравнение по MIPS компьютеров, имеющих разные системы команд MIPS даже на одном и том же компьютере меняется от программы к программе MIPS может меняться по отношению к производительности в противоположенную сторону.
Классическим примером для последнего случая является рейтинг MIPS для машины, в состав которой входит сопроцессор плавающей точки. Команда с плавающей точкой ― много тактов синхронизации Программы →сопроцессор→выполняются быстрее меньше подпрограмм → меньше рейтинг MIPS Оптимизирующие компиляторы → сокращается количество команд увеличивается производительность рейтинг MIPS уменьшается
несколько модулей, имитирующих программную нагрузку в наиболее типичных режимах исполнения вычислительных задач. Каждый модуль выполняется многократно, в соответствии с исходной статистикой Whetstone-инструкций IBM RS 6000 MIPS H. J. Curnow и B. A. Wichmann, (NationalPhysicalLaboratory) составлен из синтетических тестов, разработанных с использованием статистики распределения инструкций промежуточного уровня компилятораWhetstoneAlgol, собранной на основе большого количества вычислительных задач. Whetstone 1976 г 1 RS/6000 MIPS 1,6 VAX 11/780 MIPS Различия в Whetstone-характеристиках редакций 1976 и 1988 г. могут достигать 20%.
Комплект тестовWhetstoneсостоит из нескольких модулей, имитирующих программную нагрузку в наиболее типичных режимах исполнения вычислительных задач (целочисленная арифметика, арифметика с плавающей точкой, операторы типа IF, вызовы функций и т.д.). Каждый модуль выполняется многократно, в соответствии с исходной статистикой Whetstone-инструкций (практически это реализуется с помощью заключения модулей в циклические конструкции с разным числом "оборотов" цикла - от 12 до 899), а производительность рассчитывается как отношение числа Whetstone-инстpукций к суммарному времени выполнения всех модулей пакета. Этот результат представляется в KWIPS (KiloWhetstoneInstructionsPerSecond) или в MWIPS (MegaWhetstoneInstructionsPerSecond). В известном смысле указанные единицы аналогичны MIPS, но с одной существенной оговоркой: Whetstone-инструкции не привязаны к системе команд какого-либо компьютера, т. е. оценка производительности в MWIPS является моделенезависимой. • Пакет Whetstone ориентирован на оценку производительности обработки чисел с плавающей точкой: почти 70% времени выполнения Fortran-версии теста на компьютере VAX 11/785 (компилятор BSD 4.3 Fortran) приходится на "плавающую" арифметику Различия в Whetstone-характеристиках редакций 1976 и 1988 г. могут достигать 20%.
Большое число обращений к библиотеке математических функций, заложенное в тесты Whetstone, требует особой осторожности при сравнении результатов, полученных для разных компьютеров: фирмы-изготовители имеют возможность оптимизировать оценку Whetstone, внося изменения в библиотеку. Во всяком случае, нужно помнить, что тесты Whetstone дают надежные ориентиры только в отношении задач с большой интенсивностью использования стандартных математических функций. • Поскольку тестовые модули Whetstone представлены очень компактным исполнительным кодом (весь пакет Whetstone в C-версии занимает около 2 Кбайт кода), для современных процессоров они не позволяют оценить эффективность механизма динамической подкачки команд в кэш инструкций: любой модуль Whetstone целиком размещается в кэш-памяти даже самой малой емкости. • Особенностью описываемых тестов является почти полное отсутствие локальных переменных. Поэтому оценки Whetstone в значительной степени зависят от эффективности функционирования ресурсов компьютера, обеспечивающих доступ к оперативной памяти и буфеpизацию данных в пpоцессоpе (включая количество регистров, емкость кэш-памяти данных и механизм ее замещения), а также от качества реализованных в компиляторе оптимизирующих алгоритмов размещения глобальных переменных в регистрах. Однако это же обстоятельство делает тесты Whetstone практически нечувствительными к средствам повышения эффективности работы с локальными переменными (например, динамическое переключение регистровых окон MORS в процессорах SPARC почти не сказывается на величине Whetstone-оценки). • Единственная "официальная" версия тестов Whetstone - это Pascal-версия (Pascal Evaluation Suite), зарегистрированная Британским обществом стандартов (British Standards Institution - Quality Assurance, BSI-QAS). Остальные варианты (в частности, на языке Fortran) существуют лишь де-факто. Кроме того, в 1988 г. в обращение была введена модернизированная Pascal-версия Whetstone, которая отличается от первоначальной редакции меньшим содержанием вспомогательных действий типа распечатки результатов, не имеющих отношения к измеряемой производительности, а также некоторым изменением веса тестовых модулей в результирующей оценке.
WhetStone(от 97 г): Athlon 1333, FSB266, L1 cache 128Kb ,L2 cache 256Kb Loop content Result MFLOPS MOPS Seconds N1 floating point -1.12475025653839110 252.511 0.543 N2 floating point -1.12274754047393800 220.889 4.344 N3 if then else 1.00000000000000000 246.024 3.004 N4 fixed point 12.00000000000000000 427.670 5.259 N5 sin,cos etc. 0.49904659390449524 24.459 24.287 N6 floating point 0.99999988079071045 108.557 35.477 N7 assignments 3.00000000000000000 99.233 13.297 N8 exp,sqrt etc. 0.75110864639282227 10.080 26.350 MWIPS 634.322 112.561 Зависимость от языка, на котором реализован тест: AM386/40 Pentium PentiumPentProPentPro VAX MIPS VAX MIPS /386 VAX MIPS /386 Qbasic 0.133 0.87 6.5 1.03 7.7 Visual Basic 3 0.490 3.09 6.3 7.05 14.5 Visual Basic 4 0.704 4.94 7.0 9.54 13.6 C++ no opt 4.200 36.60 8.7 129 30.7 C++ in-line 7.400 95.80 12.9 315 42.6
ReinholdWeicker 1984 VAX 11/780 компании DEC 12 модулей, представляющих различные типовые режимы обработки. В тестах Dhrystoneотсутствует обработка чисел с плавающей точкой, зато преобладают операции над другими типами данных (символы, строки, логические переменные, указатели и т. п.). 1 MIPS Dhrystone синтетические → для оценки производительности системного и прикладного ПО 101 оператор в Pascal-версии или 103 оператора в C-версии 100 команд 53% ― операторы присваивания, 32% ― операторы управления, 15% ― вызовы функций. 1MIPS = 1757 Dhrystone
Тест Dhrystone из SiSoftwareSandra основан на арифметических вычислениях и манипуляциях со строками. Общий объем программы маленький, сравнимый с кэшем процессора. Тест может использоваться в двух направлениях, таких как, измерение скорости процессора и возможность оптимизации компилятора. Полученное число - количество измерений в секунду.
SiSoftware Sandra видео
FLOPS, 92 год FLOPS Тест синтетический, обращения к памяти минимизированы. Даетпиковую производительность. Как единица измерения, FLOPS, предназначена для оценки производительности только операций с плавающей точкой, и поэтому не применима вне этой ограниченной области. Например, программы компиляторов имеют рейтинг FLOPS близкий к нулю вне зависимости от того, насколько быстра машина, поскольку компиляторы редко используют арифметику с плавающей точкой. По мнению многих программистов, одна и та же программа, работающая на различных компьютерах, будет выполнять различное количество команд, но одно и то же количество операций с плавающей точкой. Именно поэтому рейтинг FLOPS предназначался для справедливого сравнения различных машин между собой.
Проблемы: Наборы операций с плавающей точкой не совместимы на различных компьютерах Например, в суперкомпьютерах фирмы Cray Research отсутствует командаделения. В то же время многие современные микропроцессоры имеют команды деления, вычисления квадратного корня, синуса и косинуса. Рейтинг MFLOPS меняется не только на смеси целочисленных операций и операций с плавающей точкой, но и на смеси быстрых и медленных операций с плавающей точкой. Например, программа со 100% операций сложения будет иметь более высокий рейтинг, чем программа со 100% операций деления. Решение обеих проблем заключается в том, чтобы взять "каноническое" или "нормализованное" число операций с плавающей точкой из исходного текста программы и затем поделить его на время выполнения.
Ливерморские циклы Ливерморские циклы - это набор фрагментов фортран-программ, каждый из которых взят из реальных программных систем, эксплуатируемых в Ливерморской национальной лаборатории им.Лоуренса (США). Обычно при проведении испытаний используется либо малый набор из 14 циклов, либо большой набор из 24 циклов. Выделяют количество нормализованных операций с плавающей точкой в соответствии с операциями, действительно находящимися в ее исходном тексте.
Процессоры персональных компьютеров • AMDAthlon 64 2,211 ГГц (2003) — 8Гфлопс[10] • AMDAthlon 64 X2 4200+ 2,2 ГГц (2006) — 13.2Гфлопс • AMDAMD ATHLON II X4 645 3.1 ГГц (2010) —38.44Гфлопс • IntelCore 2 Duo 2,4 ГГц (2006) — 19,2Гфлопс[11] • IntelCore 2 Quad Q8300 2,5 ГГц — 40Гфлопс[12] • IntelCore i7-975 XE 3,33 ГГц (2009) — 53.28Гфлопс[13] • CPU AMD Phenom II X6 1100T BlackEdition (HDE00ZF) 3.3 ГГц/ 3+6Мб/4000 МГцSocket AM3 — 60.0953Гфлопс[14]
FLOPS видео
www.spec.org SPECсоздана 1988 году Standard Performance Evaluation Corporation Основной целью этой организации является разработка и поддержка стандартизованного набора специально подобранных тестовых программ для оценки производительности новейших поколений высокопроизводительных компьютеров. • CPU2006 - тесты вычислительной производительности (ранее использовался пакет тестов CPU95 и CPU2000); • JVM2008 - виртуальной тест Java-машины; • HPC2002- тесты для HPC-систем: приложение сейсмической обработки Retired in June 2007. HPC2002 is no longer being distributed and no additional result submissions are being accepted. • SFS2008 - тест производительности сетевой файловой системы (NFS); • SPECWEB2009 - тест для оценки производительности HTTP-серверов;
CPU2006 CPU2006 - это тестовый пакет, разработанный подразделением Open Systems Group (OSG) компании System Performance Evaluation Corp. (SPEC) для оценки производительности микропроцессоров (ЦП) и вычислительных систем. Пакет CPU2006 состоит из двух групп тестов - CINT2006 для оценки производительности на целочисленных операциях и CFP2006для оценки производительности на операциях с плавающей точкой. Буква "С" в названиях тестов означает, что тесты являются "компонентными" (component-level), в отличие от тестов производительности системы в целом. Группы тестов CINT2006 и CFP2006 ориентированы на оценку работы микропроцессоров, подсистемы кэш-памяти и оперативной памяти, а также компиляторов. Эти тесты не имеют отношения к оценке производительности сети, дисков или графической подсистемы.
В набор CINT2000 входят 11 тестовых приложений, написанных на языке С, и один тест (252.eon) на С++.
В набор CFP2000 входят 14 тестовых приложений, из которых 6 написаны на языке Fortran 77, 4 на языке Fortran 90 и 4 на С++.
Разработчики тестов CPU2006 отказались от использования стандартных абсолютных единиц типа MFLOPS или MIPS. Вместо этого используются собственные относительные единицы SPEC. Результаты "нормализуются" по отношению к аналогичным результатам на так называемой "эталонной" машине (referencesystem). Это рабочая станция SunUltra 5/10 (процессор UltraSPARC II с тактовой частотой 300 MHz). На данной машине прогон всех тестов CPU2000 занимает примерно двое суток (48 часов). Существует несколько способов выполнения тестов из наборов CFP2000 и CINT2000 и расчета на базе их результатов интегральных показателей производительности системы, которые определяются двумя характеристиками, указываемыми при запуске тестов, - "режимом" (Base или Peak) и "метрикой" (SpeedMetricsили ThroughputMetrics). Показатель SPECint2000, например, вычисляется следующим образом: SPECint2000 = RefTime / MeasuredTime, где RefTime - время исполнения теста на эталонной машине, а MeasuredTime - время исполнения на тестируемой машине. Таким образом, смысл этого показателя - в относительном ускорении по сравнению с эталонной машиной. Показатель SPECint_rate2000 вычисляется следующиям образом: SPECint_rate2000 = N * (RefTime / MeasuredTime) * (60*60*24/RefJobTime) , где N - число запущенных копий (итераций) теста, 60*60*24 - это число секунд в сутках, а величина RefJobTime принята равной 9600.
Результаты тестирования некоторых систем по показателю SPECint_2006(Speed) : Результаты тестирования некоторых систем по показателю SPECfp_2006 : ASUS TS700-E6 (Z8PE-D12X) server system (Intel Xeon X5680) 39.0 42.0 ASUS RS700-E6 server system (Intel Xeon X5680) 39.0 42.1 ASUS RS700D-E6 (Z8NH-D12) server system (Intel Xeon X5680) 39.0 41.9 ASUS RS520-E6 (Z8NR-D12) server system (Intel Xeon X5680) 39.0 42.0 ASUS RS500-E6 (Z8NR-D12) server system (Intel Xeon X5680) 39.0 42.0 ASUS TS700-E6 (Z8PE-D12X) server system (Intel Xeon X5680) 44.9 48.1 ASUS RS700-E6 server system (Intel Xeon X5680) 45.2 48.0 ASUS RS700D-E6 (Z8NH-D12) server system (Intel Xeon X5680) 45.1 48.0 ASUS RS520-E6 (Z8NR-D12) server system (Intel Xeon X5680) 44.9 47.7 ASUS RS500-E6 (Z8NR-D12) server system (Intel Xeon X5680) 44.9 47.7
LINPACK LINPACK - это пакет фортран-программ для решения систем линейных алгебраических уравнений. www.linpack.org В основе алгоритмов действующего варианта LINPACK лежит метод декомпозиции. Исходная матрица размером 100х100 элементов (в последнем варианте размером 1000х1000) сначала представляется в виде произведения двух матриц стандартной структуры, над которыми затем выполняется собственно алгоритм нахождения решения. Подпрограммы, входящие в LINPACK, структурированы. В стандартном варианте LINPACK выделен внутренний уровень базовых подпрограмм, каждая из которых выполняет элементарную операцию над векторами. www.blas.org Набор базовых подпрограмм называется BLAS (BasicLinearAlgebraSubprograms). Например, в BLAS входят две простые подпрограммы SAXPY (умножение вектора на скаляр и сложение векторов) и SDOT (скалярное произведение векторов). Все операции выполняются над числами с плавающей точкой, представленными с двойной точностью. Результат измеряется в MFLOPS. Использование результатов работы тестового пакета LINPACK с двойной точностью как основы для демонстрации рейтинга MFLOPS стало общепринятой практикой в компьютерной промышленности.