Що таке флопс?
FLOPS (англ. Floating Point Operations Per Second — «операцій з плаваючою комою на секунду») — одиниця вимірювання швидкодії обчислювальних приладів, особливо в галузі наукових обчислень.
Обчислювальні прилади мають широкий діапазон швидкодії, тому використовуються одиниці більші ніж просто FLOPS. Для цього можуть використовуватись стандартні префікси системи СІ, що призводить до появи таких одиниць, як:
мегафлопс (англ. megaFLOPS, MFLOPS, 106FLOPS);
гігафлопс (англ. gigaFLOPS, GFLOPS, 109 FLOPS) ;
терафлопс (англ. TFLOPS, 1012 FLOPS) ;
петафлопс (англ. petaFLOPS, PFLOPS, 1015 FLOPS;
ексафлопс (англ. exaFLOPS, EFLOPS, 1018 FLOPS).
ФЛОПС ЯК МІРА ПРОДУКТИВНОСТІ
Як і більшість інших показників продуктивності, дана величина визначається шляхом запуску на компютері тестової програми, яка вирішує задачу з відомою кількістю операцій та підраховує час, за який вона була вирішена. Найпопулярнішим тестом продуктивності на сьогоднішній день є программа LINPACK, яка використовується, в тому числі, при складанні рейтингу суперкомп'ютерів TOP500.
Одним з найважливіших плюсів показника флопс є те, що він до деяких меж може бути витлумачений як абсолютна величина і вирахуваний теоретично, в той час як більшість інших популярних мір є відносними і дозволяють оцінити систему тільки в порівнянні з рядом подібних. Ця особливість дає можливість використати для оцінки результати роботи різноманітних алгоритмів, а також оцінити продуктивність обчислювальних систем, які ще не існують або знаходяться в розробці.
МЕЖІ ЗАСТОСУВАННЯ
Незважаючи на начебто однозначність, в реальності флопс є достатньо поганою мірою продуктивності, оскільки неоднозначне вже саме його визначення. Під «операцією з плаваючою комою» може приховуватися маса різних понять, не кажучи вже про те, що істотну роль в даних обчисленнях грає розрядність операндів, яка також ніде не згадується.
Крім того, величина флопс підлягає впливу дуже багатьох факторів, безпосередньо не пов'язаних з продуктивністю обчислювального модуля, таких як: пропускна здатність каналів зв'язку з оточенням процесора, продуктивність основної пам'яті та синхронність роботи кеш-пам'яті різних рівнів.
Все це, в кінцевому підсумку, призводить до того, що результати, отримані на одному й тому ж компютері за допомогою різних програм, можуть суттєво відрізнятися, більш того, з кожним новим випробуванням різні результати можна отримати при використанні одного алгоритму. Частково ця проблема вирішується договором про використання одноманітних тестових програм (тієї ж LINPACK) з виведенням середніх результатів, але з часом можливості комп'ютерів «переростають» рамки прийнятого тесту і він починає давати штучно занижені результати, оскільки не використовує нові можливості ЕОМ. А до деяких систем загальноприйняті тести зовсім не можуть бути застосовані, в результаті чого питання про їх продуктивність залишається відкритим.
Так, наприклад, 24 червня 2006 року громадськості був представлений суперкомп'ютер MDGrape-3, розроблений в японському науково-дослідному інституті RIKEN (Йокогама), з рекордною теоретичною продуктивністю в 1 Пфлопс. Однак даний комп'ютер не є комп'ютером загального призначення і пристосований для вирішення вузького спектру конкретних задач, в той час як стандартний тест LINPACK на ньому виконати неможливо в силу особливостей його архітектури.
Також високу продуктивність на специфічних задачах показують графічні процесори сучасних відеокарт та ігрових приставок. Наприклад, заявлена продуктивність ігрової приставки Xbox 360 становить 1 Тфлопс, а приставки PlayStation 3 і зовсім 2 Тфлопс, що ставить їх в один ряд з суперкомп'ютерами початкового рівня. Такі високі показники пояснюються тим, що вказана продуктивність над числами 32-бітного формату, тоді як для суперкомп'ютерів зазвичай вказують продуктивність на 64-розрядних даних. Крім того, дані приставки і відео-процесори розраховані на операції з трьохвимірною графікою, добре піддаються розпаралелюванню, однак ці процесори не в змозі виконувати більшість задач загального призначення, і їх продуктивність складно оцінити класичним тестом LINPACK і складно порівняти з іншими системами.
ПРИЧИНИ ШИРОКОГО РОЗПОВСЮДЖЕННЯ
Незважаючи на велику кількість суттєвих недоліків, показник флопс продовжує з успіхом використовуватися для оцінки продуктивності, базуючись на результатах тесту LINPACK. Причини такої популярності обумовлені, по-перше, тим, що флопс, як говорилось вище, є абсолютною величиною. А по-друге, дуже багато задач інженерної та наукової практики в кінцевому підсумку зводяться до вирішення систем лінійних алгебраїчних рівнянь, а тест LINPACK як раз і базується на вимірюванні швидкості вирішення таких систем. Крім того, більшість комп'ютерів (включаючи суперкомп'ютери) побудовані за класичною архітектурою з використанням стандартних процесорів, що дозволяє використовувати загальноприйняті тести з великою достовірністю.
Для підрахунку максимальної кількості FLOPS для процесора треба враховувати, що сучасні процесори в кожному своєму ядрі містять декілька виконавчих блоків кожного типу (в тому числі і для операцій з плаваючою точкою), які працюють паралельно, і можуть виконувати більше однієї інструкції за такт. Ця особливість архітектури називається суперскалярністью і вперше з'явилась ще в самому першому процесорі Pentium в 1993 році. Сучасне ядро Intel Core 2 також є суперскалярним і містить 2 пристрої обчислень над 64-бітними числами з плаваючою комою, які можуть завершувати по 2 послідовні операції (множення і наступне додавання, MAC) в кожному такті, що теоретично дозволяє досягти пікової продуктивності до 4-х операцій за 1 такт в кожному ядрі — мікроархитектура Core 2. Таким чином, для процесора, що має в своєму складі 4 ядра (Core 2 Quad) і працює на частоті 3.5 ГГц, теоретична межа продуктивності становить 4х4х3.5=56 гігафлопс, а для процесора, що має 2 ядра (Core 2 Duo) і працює на частоті 3 ГГц — 2х4х3=24 гігафлопс, що добре погоджується з практичними результатами, отриманими на тесті LINPACK. Типова продуктивність тесту LINPACK становить 80-95% від теоретичного максимуму.
Для порівняння наведемо різні типи комп'ютерів та їх продуктивність:
СУПЕРКОМП'ЮТЕРИ
Комп'ютер ENIAC, збудований в 1946 році, при масі 27 т і енергоспоживанні 150 кВт, забезпечував продуктивність в 300 флопс
IBM 709 (1957) — 5 Кфлопс
БЭСМ-6 (1968) — 1 Мфлопс (операцій ділення)
Cray-1 (1974) — 160 Мфлопс
БЭСМ-6 на базе Эльбрус-1К2 (1980-х) — 6 Мфлопс (операций деления)
Ельбрус-2 (1984) — 125 Мфлопс
Cray Y-MP (1988) — 2,3 Гфлопс
Електроніка СС БІС (1991) — 500 Мфлопс
ASCI Red (1993) — 1 Тфлопс
Blue Gene/L (2006) — 478,2 Тфлопс
Jaguar (суперкомп'ютер) (2008) — 1,059 Пфлопс
IBM Roadrunner (2008) — 1,042 Пфлопс
Jaguar Cray XT5-HE (2009) — 1,759 Пфлопс
IBM Sequoia (2012) — 20 Пфлопс
ПЕРСОНАЛЬНІ КОМП'ЮТЕРИ
IBM PC/XT 4,77 МГц (1983) — 6,9 Кфлопс
Intel 80386 40 МГц (1985) — 0,6 Мфлопс
Intel Pentium 75 МГц (1993) — 7,5 Мфлопс
Intel Pentium II 300 МГц (1997) — 50 Мфлопс
Intel Pentium III 600 МГц (1999) — 625 Мфлопс
Intel Pentium III 1 ГГц (1999) — 2 Гфлопс?
AMD Athlon XP1800+ 1533 МГц (2002) — 3 Гфлопс
AMD Athlon 64 2,211 ГГц (2003) — 8 Гфлопс
AMD Athlon 64 X2 4200 2,2 ГГц (2006) — 13.2 Гфлопс
Intel Core 2 Duo 2,4 ГГц (2006) — 19,2 Гфлопс
Intel Core i7-975 XE 3,33 ГГц (2009) — 53.28 Гфлопс
КИШЕНЬКОВІ КОМП'ЮТЕРИ
КПК на основі процесора Samsung S3C2440 400 МГц (архитектура ARM9) — 1,3 Мфлопс
Intel XScale PXA270 520 МГц — 1,6 Мфлопс
Intel XScale PXA270 624 МГц — 2 Мфлопс
Примітка: Наведені процесори не мають апаратної підтримки обчислень з плаваючою точкою. Сучасніші процесори цього класу (I.MX31, OMAP-Lx) з апаратним FPU мають на 2 порядки більшу продуктивність.
РОЗПОДІЛЕНІ СИСТЕМИ
Дані наведені станом на 17 січня 2010 року
Folding@home — більш 4,5 Пфлопс
BOINC — більш 3,5 Пфлопс
SETI@home — більш 700 Тфлопс
Einstein@Home — більш 230 Тфлопс
Rosetta@home — більш 90 Тфлопс
ІГРОВІ ПРИСТАВКИ
Вказані операції з плаваючою крапкою над 32-розрядними даними
Sega Dreamcast — 1,4 Гфлопс
Microsoft Xbox — 6,3 Гфлопс
Sony PlayStation 2 — 6,2 Гфлопс
Sony PlayStation Portable — 2,6 Гфлопс
Nintendo Gamecube — 10,5 Гфлопс
Microsoft Xbox 360 — 116 Гфлопс
Sony PlayStation 3 — 218 Гфлопс
Джерело інформації: http://uk.wikipedia.org/wiki/FLOPS