FLOPS
FLOPS (также flops, flop/s, флопс или флоп/с; акроним от англ. FLoating-point OPerations per Second, произносится как флопс) — внесистемная единица, используемая для измерения производительности компьютеров, показывающая, сколько операций с плавающей запятой в секунду выполняет данная вычислительная система. Поскольку современные компьютеры обладают высоким уровнем производительности, более распространены производные величины от флопс, образуемые путём использования приставок СИ.
Что важно знать
| Производительность суперкомпьютеров | ||
|---|---|---|
| Название | год | флопсы |
| флопс | 1941 | 100 |
| килофлопс | 1949 | 103 |
| мегафлопс | 1964 | 106 |
| гигафлопс | 1987 | 109 |
| терафлопс | 1997 | 1012 |
| петафлопс | 2008 | 1015 |
| эксафлопс | 2022 | 1018 |
| зеттафлопс | не ранее 2030[1][2] | 1021 |
| иоттафлопс | н/д | 1024 |
| роннафлопс | н/д | 1027 |
| кветтафлопс | н/д | 1030 |
FLOP или FLOPS
Существуют разногласия насчёт того, допустимо ли использовать слово FLOP от англ. FLoating point OPeration в единственном числе (и такие варианты как flop или флоп). Некоторые считают, что FLOP (флоп) и FLOPS (флопс или флоп/с) — синонимы, другие же полагают, что FLOP — это просто количество операций с плавающей запятой (например, требуемое для исполнения данной программы), а FLOPS — мера производительности, способность выполнять определённое количество операций с плавающей запятой за секунду.
Флопс как мера производительности
Как и большинство других показателей производительности, данная величина определяется путём запуска на испытуемом компьютере тестовой программы, которая решает задачу с известным количеством операций и подсчитывает время, за которое она была решена. Наиболее популярным тестом производительности на сегодняшний день являются тесты производительности LINPACK, в частности HPL, используемый при составлении рейтинга суперкомпьютеров TOP500[источник не указан 984 дня].
Одним из важнейших достоинств измерения производительности во флопсах является то, что данная единица до некоторых пределов может быть истолкована как абсолютная величина и вычислена теоретически, в то время как большинство других популярных мер являются относительными и позволяют оценить испытуемую систему лишь в сравнении с рядом других. Эта особенность даёт возможность использовать для оценки результатов работы различных алгоритмов, а также оценить производительность вычислительных систем, которые ещё не существуют или находятся в разработке.
Несмотря на кажущуюся однозначность, в реальности флопс является достаточно плохой мерой производительности, поскольку неоднозначным является уже само его определение. Под «операцией с плавающей запятой» может скрываться масса разных понятий, не говоря уже о том, что существенную роль в данных вычислениях играет разрядность операндов, которая также нигде не оговаривается. Кроме того, флопс подвержен влиянию очень многих факторов, напрямую не связанных с производительностью вычислительного модуля, таких как пропускная способность каналов связи с окружением процессора, производительность основной памяти и синхронность работы кэш-памяти разных уровней.
Всё это, в конечном итоге, приводит к тому, что результаты, полученные на одном и том же компьютере при помощи разных программ, могут существенным образом отличаться; более того, с каждым новым испытанием разные результаты можно получить при использовании одного алгоритма. Отчасти эта проблема решается соглашением об использовании единообразных тестовых программ (той же LINPACK) с усреднением результатов, но со временем возможности компьютеров «перерастают» рамки принятого теста и он начинает давать искусственно заниженные результаты, поскольку не задействует новейшие возможности вычислительных устройств. А к некоторым системам общепринятые тесты вообще не могут быть применены, в результате чего вопрос об их производительности остаётся открытым.
Так, 24 июня 2006 года общественности был представлен суперкомпьютер MDGrape-3, разработанный в японском исследовательском институте RIKEN (Йокогама), с рекордной теоретической производительностью в 1 петафлопс. Однако данный компьютер не является компьютером общего назначения и приспособлен для решения узкого спектра конкретных задач, в то время как стандартный тест LINPACK на нём выполнить невозможно в силу особенностей его архитектуры.
Также высокую производительность на специфичных задачах показывают графические процессоры современных видеокарт и игровые приставки. К примеру, заявленная производительность видеопроцессора игровой приставки PlayStation 3 составляет 192 гигафлопса[3], а видеоускорителя приставки Xbox 360 и вовсе 240 гигафлопсов[3], что сравнимо с суперкомпьютерами двадцатилетней давности. Столь высокие показатели объясняются тем, что указана производительность над числами 32-разрядного формата[4][5], тогда как для суперкомпьютеров обычно указывают производительность на 64-разрядных данных[6][7]. Кроме того, данные приставки и видеопроцессоры рассчитаны на операции с трёхмерной графикой, хорошо поддающиеся распараллеливанию, однако эти процессоры не в состоянии выполнять многие задачи общего назначения, и их производительность сложно оценить классическим тестом LINPACK[8] и тяжело сравнить с другими системами.
Для подсчёта максимального количества флопс для процессора нужно учитывать, что современные процессоры в каждом своём ядре содержат несколько исполнительных блоков каждого типа (в том числе и для операций с плавающей запятой), работающих параллельно, и могут выполнять более одной инструкции за такт. Данная особенность архитектуры называется суперскалярность и впервые появилась ещё в ЭВМ CDC 6600 в 1964 году. Массовое производство компьютеров с суперскалярной архитектурой началось с выпуском процессора Pentium в 1993 году. Процессор конца 2000-х годов, Intel Core 2, также является суперскалярным и содержит 2 устройства вычислений над 64-разрядными числами с плавающей запятой, которые могут завершать по 2 связанные операции (умножение и последующее сложение, MAC) в каждый такт, теоретически позволяющих достичь пиковой производительности до 4 операций за 1 такт в каждом ядре[9][10][11]. Таким образом, для процессора, имеющего в своём составе 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⋅10−3 = 35,2 Гигафлопса
Для четырёхъядерного процессора Core 2 Quad Q6600:
2400 МГц × 4 ядра × 4⋅10−3 = 38,4 Гигафлопса.
Более новые процессоры могут исполнять до 8 (например, Sandy и Ivy Bridge, 2011—2012 гг, AVX) или до 16 (Haswell и Broadwell, 2013—2014 гг, AVX2 и FMA3) операций над 64-битными числами с плавающей запятой в такт (на каждом ядре)[11]. В последующих процессорах ожидается исполнение 32 операций в такт (Intel Xeon Skylake, Xeon *v5, 2015 г, AVX512)[12]
Sandy и Ivy Bridge c AVX: 8 Флопс/такт двойной точности[13], 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 Флопс/такт двойной точности[13]; 32 одинарной точности Флопса/такт
Intel Core i7 4770: 16*4*3900 МГц = 249,6 Гигафлопса пиковая двойной точности, 32*4*3900 = 499,2 Гфлопс пиковая одинарной точности.
Несмотря на большое число существенных недостатков, флопс продолжает с успехом использоваться для оценки производительности, базируясь на результатах теста LINPACK. Причины такой популярности обусловлены, во-первых, тем, что флопс, как говорилось выше, является абсолютной величиной. А во-вторых, очень многие задачи инженерной и научной практики в конечном итоге сводятся к решению систем линейных алгебраических уравнений, а тест LINPACK как раз и базируется на измерении скорости решения таких систем. Кроме того, подавляющее большинство компьютеров (включая суперкомпьютеры) построены по классической архитектуре с использованием стандартных процессоров, что позволяет использовать общепринятые тесты с большой достоверностью.
В различных алгоритмах, кроме возможности выполнять большое количество математических действий в ядре процессора, может потребоваться пересылка больших объёмов данных через подсистему памяти, и их производительность будет сильно ограничена из-за этого, например, как в уровнях 1 и 2 библиотек BLAS[11]. Однако, алгоритмы, используемые в тестах типа LINPACK (уровень 3 BLAS), имеют высокий коэффициент переиспользования данных, пересылка данных между процессором и памятью в них занимает менее 1/10 общего времени, и они обычно достигают типичной производительности до 80-95 % от теоретического максимума.
Обзор производительности реальных систем
Из-за высокого разброса результатов теста LINPACK приведены примерные величины, полученные путём усреднения показателей на основе информации из разных источников. Производительность игровых приставок и распределённых систем (имеющих узкую специализацию и не поддерживающих тест LINPACK) приведена в справочных целях в соответствии с числами, заявленными их разработчиками. Более точные результаты с указанием параметров конкретных систем можно получить, например, на сайте The Performance Database Server.
- IBM 709 (1957) — 5 килофлопсов
- БЭСМ-2 (1957) — 10 килофлопсов
- 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 гигафлопсов
- Numerical Wind Tunnel (1993) — 124,5 гигафлопса
- ASCI Red (1996) — 1 терафлопс
- ASCI White (2000) — 12,3 терафлопса
- Earth Simulator (2002) — 35,86 терафлопса
- ASC Purple (2005) — 100 терафлопсов
- IBM Blue Gene/L (2006) — 478,2 терафлопса
- Cray Jaguar (2008) — 1,059 петафлопса
- IBM Roadrunner (2008) — 1,042 петафлопса[16]
- Ломоносов (2011, НИВЦ МГУ) — 1,3 петафлопса
- Jaguar Cray XT5-HE (2009) — 1,759 петафлопса
- T-Platform A-Class Cluster (Ломоносов-2, ноябрь 2014, НИВЦ МГУ) — 1,85 петафлопса (в 5 стойках)[17][18][19].
- Тяньхэ-1А (2010) — 2,57 петафлопса
- Кристофари (2019) — 6,7 петафлопса (кластер из 75 узлов NVIDIA DGX-2)[20][21][22]
- Fujitsu K computer (2011) — 8,16—10,51 петафлопса[23]
- IBM Sequoia (2012) — 16,32 петафлопса[24]
- Cray Titan (бывш. Cray Jaguar; 2012) — >17,59 петафлопса[25]
- Червоненкис (2021) — 21,530 петафлопса
- Тяньхэ-2 (2013) — 33,86 петафлопса[26]
- Sunway TaihuLight (2016) — 93 петафлопса
- Summit (2018) — 122,3 петафлопса
- Фугаку (2020) — 442,01 петафлопса
Пиковая производительность двойной точности[27]
- Zilog Z80 + математический сопроцессор AMD Am9512, 3 МГц (1977—1980) ~ 1-2 килофлопса[28]
- Intel 80486DX/DX2 (1990—1992) — до 30-50 Мфлоп/с[29]
- Intel Pentium 75-200 МГц (1996) — до 75-200 Мфлоп/с[29][30]
- Intel Pentium III 450—1133 МГц (1999—2000) — до 450—1113 Мфлоп/с[29][30]
- Intel Pentium III-S (2001) 1 — 1,4 ГГц — до 1 — 1,4 Гфлоп/с[30]
- МЦСТ Эльбрус 2000 300 МГц (2008) — 2,4 Гфлоп/с
- Intel Atom N270, D150 1,6 ГГц (2008—2009) — до 3,2 Гфлоп/с[29]
- Intel Pentium 4 2,5-2,8 ГГц (2004) — до 5 — 5,6 Гфлоп/с[29]
- МЦСТ Эльбрус-2С+ 500 МГц, 2 ядра (2011) — 8 Гфлоп/с
- AMD Athlon 64 X2 4200+ 2,2 ГГц, 2 ядра (2006) — 8,8 Гфлоп/с
- Intel Core 2 Duo E6600 2,4 ГГц, 2 ядра (2006) — 19,2 Гфлоп/с
- МЦСТ Эльбрус-4С (1891ВМ8Я, Эльбрус v.3) 800 МГц, 4 ядра (2014) — 25 Гфлоп/с[31]
- Intel Core i3-2350M 2,3 ГГц, 2 ядра (2011) — 36,8 Гфлоп/с
- Intel Core 2 Quad Q8300 2,5 ГГц, 4 ядра (2008) — 40 Гфлоп/с
- AMD Athlon II X4 640 3,0 ГГц, 4 ядра (2010) — 48 Гфлоп/с
- Intel Core i7-975 XE (Nehalem) 3,33 ГГц, 4 ядра (2009) — 53,3 Гфлоп/с
- AMD Phenom II X4 965 BE 3,4 ГГц, 4 ядра (2009) — 54,4 Гфлоп/с
- AMD Phenom II X6 1100T 3,3 ГГц , 6 ядер (2010) — 79,2 Гфлоп/с
- Intel Core i5-2500K (Sandy Bridge), 3,3 ГГц, 4 ядра (2011) — 105,6 Гфлоп/с
- МЦСТ Эльбрус-8С (Эльбрус v.4) 1,3 ГГц, 8 ядер (2016) — 125 Гфлоп/с[32][33]
- AMD FX-8350 4 ГГц, 8 ядер (2012) — 128 Гфлоп/с[34]
- Intel Core i7-4930K (Ivy Bridge), 3,4 ГГц, 6 ядер (2013) — 163 ГФлоп/с
- Loongson-3B1500 (MIPS64), 1,5 ГГц, 8 ядер (2016) — до 192 ГФлоп/с[35]
- AMD Ryzen 7 1700X (Zen), 3,4 ГГц, 8 ядер (2017)[36] — 217 ГФлопс[37]
- МЦСТ Эльбрус-8СВ (Эльбрус v.5) 1,5 ГГц, 8 ядер (2020 — план)[38] — 288 Гфлоп/с[39][40]
- IBM Power8 4,4 ГГц, 12 ядер (2013), 290 Гфлоп/с
- Intel Core i7-5960X (Extreme Edition Haswell-E), 3,0 ГГц, 8 ядер (2014) — 384 Гфлоп/с (до 350 Гфлоп/с достижимо на практике[41])
- Intel Core i9-9900k (Coffee Lake), 3,6 ГГц, 8 ядер (2018)[42] — 460 Гфлоп/с[43]
- AMD Ryzen 7 3700X (Zen 2), 3,6 ГГц, 8 ядер (2019)[44] — 460 ГФлопс[43]
- МЦСТ Эльбрус-12С 2 ГГц, 12 ядер (2020 — план) — 576 Гфлоп/с
- МЦСТ Эльбрус-16С 2 ГГЦ, 16 ядер (2021 — план) — 768 Гфлоп/с[45].
- AMD Ryzen 9 3950X (Zen 2), 3,5 ГГц, 16 ядер (2019)[46] — 896 ГФлоп/с[47]
- AMD EPYC 7H12 (Zen 2), 3,3 ГГц, 64 ядра (2019)[48] — 4,2 терафлопса[49]
Для ряда процессорных микроархитектур известны максимальные количества плавающих операций, исполняемых за такт на одном ядре. В следующем ниже списке указаны названия микроархитектур, а не семейства процессоров.
(single) — одинарной точности; (double) — двойной точности[50]
- Intel P5 & P6 (no ISEs) + Pentium Pro & Pentium II = 1 (single); 1 (double)
- P6 (только Pentium III) = 4 (single); 1 (double)
- Bonnell (Atom) = 4 (Single); 1 (Double)
- NetBurst = 4 (single); 2 (double)
- Pentium M & Enhanced Pentium M = 4 (single); 2 (double)
- Core, Penryn, Nehalem & Westmere = 8 (single); 4 (double)
- Sandy Bridge & Ivy Bridge = 16 (single); 8 (double)
- Haswell, Broadwell, Skylake, Kaby Lake & Coffee Lake = 32 (single); 16 (double)
- Skylake-X, Skylake-SP, Cascade Lake-X (Xeon Gold & Platinum) = 64 (single); 32 (double)[51][52]
- Bonnell, Saltwell, Silvermont & Airmont = 6 (single); 1.5 (double)
- MIC («Knights Corner» Xeon Phi) = 32 (single); 16 (double)
- MIC («Knights Landing» Xeon Phi) = 64 (single); 32 (double)[51]
- AMD K5 & K6 = 0.5 (single); 0.5 (double)
- K6-2 & K6-III = 4 (single); 0.5 (double)
- K7 = 4 (single); ? (double)
- K8 = 4 (single); 2 (double)
- K10/Stars = 8 (single); 4 (double)
- Husky = 8 (single); 4 (double)
- Bulldozer, Piledriver, Steamroller & Excavator (Суммарно на пару ядер — модуль[53]) = 16 (single); 8 (double)
- Bobcat = 4 (single); 1.5 (double)
- Jaguar, Puma and Puma+ = 8 (single); 3 (double)
- Zen, Zen+ = 16 (single); 8 (double)
- Zen 2 = 32 (single); 16 (double)
- МЦСТ Эльбрус 2000 (E2K) = 16 (single); 8 (double)[54][55]
- Эльбрус версии 3 = 16 (single); 8 (double)
- Эльбрус версии 4 = 24 (single); 12 (double)[56][57]
- Эльбрус версии 5 = 48 (single); 24 (double)[58][59]
- КПК на основе процессора Samsung S3C2440 400 МГц (архитектура ARM9) — 1,3 мегафлопса
- Intel XScale PXA270 520 МГц — 1,6 мегафлопса
- Intel XScale PXA270 624 МГц — 2 мегафлопса
- Samsung Exynos 4210 2х1600 МГц — 84 мегафлопса
- Apple A6 — 645 мегафлопсов (по оценке программы LINPACK)
- Apple A7 — 833 мегафлопса (по оценке программы LINPACK)[60]
- Apple A8 — 1,4 гигафлопса[61]
- Apple A10 — 365 гигафлопс(fp32), 91 гигафлопс (fp64)[62]
- Apple A14 — 824 гигафлопс(fp32), 206 гигафлопс (fp64)[62]
- Bitcoin — имеет значительное количество специализированных вычислительных ресурсов, но решает исключительно целочисленные задачи (вычисление хеш-суммы SHA256). Практически все вычислители реализованы в виде специальных заказных микросхем (ASIC), которые технически не способны производить вычисления над числами с плавающей запятой. Следовательно, оценивать сеть Bitcoin с помощью флопсов в настоящее время некорректно.[63][64][65] Ранее, до 2011 года в сети использовались только ЦПУ и ГПУ, которые могут обрабатывать как целочисленные, так и плавающие данные, и оценка во флопсах получалась из метрики hash/s с помощью эмпирического коэффициента в 12,7 тысячи.[66][67] Например, на апрель 2011 мощность сети оценивалась таким методом примерно в 8 петафлопсов.[68]
- Folding@home — более 2,6 эксафлопса на 23 апреля 2020 года, что делает его самым мощным и крупнейшим проектом распределённых вычислений в мире.
- BOINC — более 41,5 петафлопса на март 2020 года[69]
- SETI@home — 0,66 петафлопса (на 2013 год)[70]
- Einstein@Home — более 5,2 петафлопсов на март 2020 года[71]
- Rosetta@home — более 1,4 петафлопсов на март 2020 года.
Указаны операции с плавающей запятой над 32-разрядными данными
- Sega Dreamcast — 1,4 гигафлопса
- Nintendo GameCube — 1,9 гигафлопса (ЦПУ), 8,6 гигафлопса (ГП ATI-AMD «Flipper»)[72]
- Sony PlayStation Portable — 2,6 гигафлопса[73]
- Nintendo Wii — 2,9 гигафлопса (ЦПУ)[74]
- Microsoft Xbox — 2,9 гигафлопса (ЦПУ Intel Pentium III 733 Mhz), 80,0 гигафлопса (ГП Nvidia XGPU 233 Mhz)[72]
- Sony PlayStation 2 — 6,2 гигафлопса
- Microsoft Xbox 360 — 115,2 гигафлопсов (ЦПУ IBM Xenon), 240 гигафлопсов (ГП ATI-AMD Xenos)
- Sony PlayStation 3 — 230,4 гигафлопса одинарной точности и до +15 гигафлопсов двойной точности (ЦПУ Cell BE)[75][76]
- Nintendo Wii U — 352 гигафлопса (ГП, предположительно)[77]
- Sony PlayStation 3 — 400,4 гигафлопса (ГП) RSX Nvidia G70 550 МГц[3]
- Microsoft Xbox One — 1,23 терафлопса (ГП)[78]
- Sony PlayStation 4 (графический процессор AMD Radeon) — 1,84 терафлопса[79]
- Sony PlayStation® 4 Pro — 4.20 терафлопсов (ГП AMD Radeon)[80]
- Microsoft Xbox One X — 6 терафлопсов (ГП)
- Sony PlayStation 5 (графический процессор Radeon Navi, с архитектурой RDNA2) — 10,3 терафлопс[81]
- Microsoft Xbox Series X — 12 терафлопсов (ГП)[82]
Теоретическая производительность (FMA; гигафлопсы):
| Графический процессор | Год выпуска | Техпроцесс | Гигафлопсов, для 32-разрядных вычислений | Гигафлопсов, для 64-разрядных вычислений | Источник |
|---|---|---|---|---|---|
| Geforce RTX 2080 Ti (TU102) | 2018 | 12 нм | 13450 | 420,2 | [83] |
| GeForce GTX 1080 (GP104) | 2016 | 16 нм | 8873 (Boost) | 277 (Boost) | |
| GeForce GTX 780 Ti (GK110-425-B1) | 2013 | 28 нм | 5046 | 210 | |
| GeForce GTX 680 (GK104) | 2012 | 28 нм | 3090,4 | 128,8 | |
| Radeon HD 7970 (Tahiti) | 2012 | 28 нм | 3789 | 947-1024 | [84] |
| Radeon HD 6990 (2xCayman) | 2011 | 40 нм | 2x2550 = 5100 | 2x637 = 1274 | [84] |
| Radeon HD 5970 (2xRV870) | 2009 | 40 нм | 2x2320 = 4640 | 2x464 = 928 | [84] |
| Radeon R9 Fury X (Fuji) | 2015 | 28 нм | 8602 | 538 | [84] |
Калькулятор не случайно попал в одну категорию вместе с человеком, поскольку хотя он и является электронным устройством, содержащим процессор, память и устройства ввода-вывода, режим его работы кардинально отличается от режима работы компьютера. Калькулятор выполняет одну операцию за другой с той скоростью, с какой их запрашивает человек-оператор. Время, проходящее между операциями, определяется возможностями человека и существенно превышает время, которое затрачивается непосредственно на вычисления. Можно сказать, что в среднем производительность простейших обычных карманных калькуляторов составляет порядка 10 флопсов и более.
Если не брать исключительные случаи (см. феноменальный счётчик), то обычный человек, пользуясь лишь ручкой и бумагой, выполняет операции с плавающей запятой очень медленно и часто с большой ошибкой, таким образом говоря о производительности человека как вычислительного аппарата, приходится использовать такие единицы, как миллифлопсы и даже микрофлопсы.
Примечания
Ссылки
- TOP500 Рейтинг суперкомпьютеров TOP500 (англ.)
- The Performance Database Server Большая база данных производительности вычислительных систем (англ.)
- Roy Longbottom’s PC Benchmark Collection Подборка тестовых программ для ПК (включая LINPACK) и результатов испытаний (англ.)
- История суперкомпьютеров (англ. яз; pdf)
- Top50 Опубликована очередная редакция рейтинга суперкомпьютеров Top50 (рус.)


