[Перевод] StorageReview Lab побила мировой рекорд по вычислению числа Пи: 202 триллиона знаков
Команда StorageReview Lab снова бьёт мировые рекорды по вычислению числа Пи. Теперь количество знаков дошло до 202 112 290 000 000. Предыдущий рекорд принадлежит той же команде и составляет 105 триллионов.
Небывалый вычислительный подвиг
Для достижения этой цели команда лаборатории StorageReview Lab использовала высокотехнологичную систему. В ход пошли процессоры Intel Xeon 8592+ и твердотельные накопители Solidigm P5336 61,44 ТБ NVMe. Команда выполняла практически непрерывные вычисления в течение 85 дней, заняв почти 1,5 Петабайт пространства на 28 твердотельных накопителях Solidigm.
В марте 2024 года, когда команда StorageReview Lab достигла своего предыдущего рекорда, она использовала двухпроцессорную систему AMD EPYC с 256 ядрами и почти петабайтные SSD‑накопители Solidigm QLC. Тогда команде удалось решить серьёзные технические проблемы, включая ограничения памяти и хранения данных. Это достижение продемонстрировало возможности современного оборудования и позволило получить ценные сведения об оптимизации высокопроизводительных вычислительных систем.
Урок информатики и математики
Когда мы только начали искать интересные способы тестирования SSD большой ёмкости, очевидный ответ был найден в наших обзорах процессоров и систем: y‑cruncher. При использовании пространства подкачки для обширных вычислений требуется соотношение пространства хранения к цифрам примерно 4,7:1. Так что для 100 триллионов цифр нужно около 470 Тбайт пространства. Если не уходить далеко в дебри математики и информатики, то алгоритм Чудновского y‑cruncher основан на быстро сходящемся ряде, полученном из теории модульных функций и эллиптических кривых. В основе алгоритма лежит следующий бесконечный ряд:
Главный вопрос, который возник по поводу наших вычислений на 100 и 105 ТТ, звучал так:»Ладно, ничего страшного. Почему это занимает так много времени и требует так много памяти? ». Этот вопрос был среди других тревожных опасений по поводу открытого исходного кода и возможностей Алекса Йи в области программирования. Давайте сделаем шаг назад и посмотрим на это с точки зрения системы.
Вычисление большого количества цифр числа Пи, например 100 триллионов, требует значительного пространства из‑за большого количества арифметических операций. В первую очередь проблема заключается в умножении больших чисел, которое по своей природе требует значительного объёма памяти. Например, лучшим алгоритмам умножения N‑значных чисел требуется примерно 4N байт памяти, большая часть которой служит местом для хранения данных. В процессе вычислений к этой памяти приходится обращаться многократно, что превращает процесс в задачу, требующую больших затрат не процессорного, а дискового ввода‑вывода.
Формула Чудновского, широко используемая для вычисления большого количества цифр числа Пи, требует большого количества арифметических операций. Эти операции умножения, деления и возведения в квадрат часто сводятся к большим умножениям. Исторически суперкомпьютеры использовали алгоритмы AGM, которые, несмотря на меньшую скорость, были проще в реализации и выигрывали при использовании многочисленных машин. Однако современные достижения сместили узкое место с вычислительной мощности на скорость доступа к памяти.
Исторически суперкомпьютеры использовали алгоритмы АГС (среднее арифметико‑геометрическое), которые, несмотря на свою медленную работу, были проще в реализации и удобнее при использовании многочисленных машин. Однако современные достижения сместили узкое место с вычислительной мощности на скорость доступа к памяти.
Арифметические логические блоки (ALU) процессора и блоки с плавающей запятой (FPU) обрабатывают эти умножения с большими числами подобно ручному умножению на бумаге, разбивая их на более мелкие, управляемые операции. Раньше вычисления числа Пи были ограничены вычислительной мощностью, но сегодня вычислительная мощность превосходит скорость доступа к памяти, что делает хранение и надёжность критически важными факторами при установлении рекордов с числом Пи. Например, разница в производительности между нашей 128-ядерной машиной Intel и 256-ядерной AMD Bergamo была незначительной; основное внимание уделялось эффективности дискового ввода‑вывода.
SSD‑накопители Solidigm играют решающую роль в этих вычислениях не из‑за их собственной скорости, а из‑за их исключительной плотности хранения. Потребительские диски NVMe могут хранить до 4 ТБ в небольшом объёме, в то время как корпоративные SSD объединяют эти чипы для ещё большей ёмкости. Хотя QLC NAND может быть медленнее других типов флэш‑памяти, параллелизм в этих плотных SSD обеспечивает более высокую совокупную пропускную способность, что делает их идеальными для крупномасштабных вычислений числа Пи.
SSD-накопители Solidigm QLC NVMe, делающие безумие возможным
Если вы ещё не уснули, то поехали дальше. Всё, что вам нужно знать, это то, что когда вычисляемые числа слишком велики, чтобы поместиться в памяти, компьютеры должны использовать программные алгоритмы для арифметики с множественной точностью. Эти алгоритмы разбивают большие числа на управляемые фрагменты и выполняют деление с помощью специальных методов.Именно здесь на помощь приходят твердотельные накопители Solidigm P5336 NVMe емкостью 61,44 ТБ. y‑cruncher берет эти управляемые фрагменты, сначала накапливает их в системной памяти, а затем выгружает их в пространство на рабочем диске.
Помните, нам для обмена нам нужно соотношение примерно 4,7:1, поскольку каждая часть этой страшной формулы должна быть представлена многими, многими битами.
В y-cruncher есть встроенная функция оценки необходимого объёма дискового пространства (все ещё обозначенная как disk*cough*), которая, как мы обнаружили, была абсолютно точной в этом и предыдущих запусках.
Хотя вы можете поставить несколько жёстких дисков или объектных хранилищ, «сырой» размер — это только одна часть очень сложного уравнения, как мы выяснили в нашем первом раунде. Возможность получить достаточно большое и быстрое хранилище рядом с вычислительным устройством — постоянная тема, которую мы обсуждаем в StorageReview в последнее время в связи с развитием искусственного интеллекта. Производительность пространства подкачки — самое узкое место в этих вычислениях. NVMe с прямым подключением имеет самую высокую производительность, и хотя некоторые варианты могут иметь более высокую пропускную способность на устройство, наш большой и очень плотный массив QLC в совокупности отлично справился с задачей.
В y‑cruncher встроен бенчмарк, позволяющий потянуть за все рычаги и отрегулировать ручки, чтобы найти оптимальные параметры производительности для вашего массива дисков. Это очень важно. На скриншоте выше показано, что бенчмарк обеспечивает обратную связь для этой потребительской системы, показывая скорость работы процессора и производительность SSD.
У нас есть обширная документация, но, если резюмировать, то за несколько недель тестирования мы обнаружили, что оптимальным вариантом будет просто позволить y‑cruncher взаимодействовать с дисками напрямую.
Мы протестировали сетевые цели, диски за картой SAS RAID, карты NVMe RAID и цели iSCSI. Если передать контроль над оборудованием y‑cruncher производительность до и после отличается, как день и ночь. iSCSI также кажется приемлемым, но мы тестировали его только для выходного файла, который может использовать «Direct IO» для этого взаимодействия. Код RAID‑режима подкачки должен быть хорошо продуман, и исходя из нашего тестирования и разговора с разработчиком мы можем сделать вывод, что он работает с дисками на низком уровне.
Диски Solidigm ёмкостью 61,44 ТБ — лучший ответ на многие проблемы в этой области. Запустив тест на нашей системе, мы видим, что диски работают в соответствии со спецификациями как для чтения, так и для записи. Мы специально выбрали процессоры Intel, чтобы иметь возможность максимально приблизиться к оптимальному соотношению 2:1 «диск к вычислениям». Это оптимальное соотношение, поэтому вы не тратите время ЦП, ожидая, пока диски начнут работать. По мере того, как технология дисков становится быстрее, мы можем выполнять более обширные и быстрые прогоны, выбирая процессоры с большим числом ядер.
Кастомный сервер Dell PowerEdge R760
Как говорится, Бог любит троицу. Это не первый наш рекорд с числом Пи; мы извлекли уроки из наших первых двух итераций, чтобы построить лучшую платформу для расчёта. В нашей первой сборке использовался сервер 2U с 16 отсеками NVMe и тремя внутренними SSD‑накопителями. Твердотельные накопители Solidigm P5316 ёмкостью 30,72 ТБ содержали хранилище подкачки для y‑cruncher, но для выходного файла нам пришлось использовать сервер хранения на базе HDD. Это было менее чем оптимально, особенно в конце фазы записи.
Наша вторая платформа использовала тот же сервер с подключенным внешним NVMe JBOF, что дало нам дополнительный NVMe‑отсек, но ценой чувствительной кабельной разводки и несбалансированной производительности. Недостатком обеих платформ была необходимость полагаться на внешнее оборудование в течение всего времени работы y‑cruncher, что требовало дополнительного питания и создавало больше точек отказа.
Для этого третьего запуска мы хотели использовать один сервер с прямыми NVMe‑накопителями и иметь достаточно места для своп‑хранилища y‑cruncher и выходного хранилища под одной металлической крышкой. Встречайте Dell PowerEdge R760 с 24-отсековой объединительной платой NVMe Direct Drives. Эта платформа использует внутренний коммутатор PCIe, чтобы все диски NVMe одновременно взаимодействовали с сервером, обходя потребность в дополнительном оборудовании или устройствах RAID.
Затем мы собрали конфигурацию PCIe riser из нескольких R760 в нашей лабораторной среде, что дало нам четыре слота PCIe сзади для дополнительных твердотельных накопителей NVMe, установленных в U.2. Бонусом было снятие более крупных радиаторов с другого R760, что дало нам максимально возможный запас мощности турбонаддува. Прямое жидкостное охлаждение прибыло в нашу лабораторию на месяц позже, чем нужно было для реализации в этом запуске.
Хотя технически можно заказать точно такую же конфигурацию Dell, у нас её не было, поэтому пришлось собирать по кусочкам.
Размер блока питания также имел решающее значение для этого запуска. Хотя большинство сразу подумало бы, что большую часть мощности потребляют ЦП, наличие 28 твердотельных накопителей NVMe под одной крышей оказывает значительное влияние на энергопотребление. В нашей сборке использовались блоки питания мощностью 2400 Вт, которые, как оказалось, еле‑еле работали. У нас было несколько моментов почти критического уровня энергопотребления, когда нам не хватило бы мощности, если бы система отключила один блок питания. Это произошло в самом начале работы: энергопотребление резко возросло, когда нагрузка на процессор достигла пика, и система увеличила активность ввода‑вывода на всех SSD. Если бы нам пришлось повторить этот опыт, мы бы предпочли модели мощностью 2800 Вт.
Характеристики производительности
Технические особенности
Общее количество подсчитанных цифр: 202,112,290,000,000
Используемое оборудование: Dell PowerEdge R760 с 2 процессорами Intel Xeon 8592+, 1 ТБ DDR5 DRAM, 28x Solidigm 61.44 ТБ P5336
Программное обеспечение и алгоритмы: y-cruncher v0.8.3.9532-d2, Чудновский
Хранилище данных: 3,76 ПБ записанных данных на диск, 82,7 ПБ на 22 дисках для массива подкачки
Продолжительность расчёта: 100,673 дней
Телеметрия y-cruncher
Наибольшая логическая контрольная точка: 305,175,690,291,376 (278 ТиБ)
Пиковое использование логического диска: 1 053 227 481 637 440 (958 ТиБ)
Прочитано байт логического диска: 102 614 191 450 271 272 (91,1 ПиБ)
Записано байт на логическом диске: 88 784 496 475 376 328 (78,9 ПиБ)
Дата начала: Вторник, 16:09:07, 6 Февраля 2024 год
Дата окончания: Понедельник 05:43:16, 20 Мая 2024 год
Пи: 7,272,017.696 секунд, 84.167 дней
Общее время вычислений: 8 698 188,428 секунд, 100,673 дней
Время прохождения от начала до конца: 8 944 449,095 секунд, 103,524 дня
Самая последняя известная цифра числа Пи — 2, она находится в позиции 202 112 290 000 000 (двести два триллиона сто двенадцать миллиардов двести девяносто миллионов).
Долгоиграющие последствия
Хотя вычисление числа Пи до такого большого количества цифр может показаться абстрактной задачей, практические приложения и методы, разработанные в ходе этого проекта, имеют далеко идущие последствия. Эти достижения могут улучшить различные вычислительные задачи, от криптографии до сложных симуляций в физике и инженерии.
Недавний расчёт числа Пи в 202 триллиона знаков подчёркивает значительные достижения в плотности хранения и совокупной стоимости владения (TCO). Наша система достигла поразительных 1,720 петабайт хранилища NVMe SSD в одном шасси 2U. Такая плотность представляет собой скачок вперёд в возможностях хранения данных, особенно с учётом того, что общее энергопотребление достигло пика всего в 2,4 кВт при полной нагрузке ЦП и накопителя.
Такая энергоэффективность контрастирует с традиционными рекордными вычислениями в HPC, которые потребляют значительно больше энергии и генерируют избыточное тепло. Потребление энергии возрастает экспоненциально, если учесть дополнительные узлы для масштабируемых систем хранения, если вам нужно расширить общее хранилище малой ёмкости по сравнению с локальным хранилищем высокой плотности.
Управление тепловыделением имеет решающее значение, особенно для небольших центров обработки данных и серверных. Охлаждение традиционных систем записи HPC — задача не из легких, для нее требуются чиллеры для центров обработки данных, которые могут потреблять больше энергии, чем работающее в одиночку оборудование. Благодаря минимизации энергопотребления и тепловыделения наша установка предлагает более устойчивое и управляемое решение для малого бизнеса. В качестве бонуса можно отметить, что большую часть времени мы работали с охлаждением свежим воздухом.
Чтобы представить это в перспективе, подумайте о проблемах, с которыми сталкиваются те, кто работает с общим сетевым хранилищем и неоптимизированными платформами. Этим установкам потребуется один или несколько охладителей центра обработки данных для поддержания нужной температуры. В этих средах каждый сэкономленный ватт означает меньшую потребность в охлаждении и более низкие эксплуатационные расходы. Ещё одним важным преимуществом работы бережливой и эффективной платформы для рекордного пробега является защита всей установки с помощью резервного оборудования для батарей.
В целом это рекордное достижение демонстрирует потенциал современных технологий HPC и подчеркивает важность энергоэффективности и управления температурным режимом в современных вычислительных средах.
Обеспечение точности: формула Бейли-Борвейна-Плуффа
Вычисление числа Пи до 202 триллионов знаков — монументальная задача, но обеспечение точности этих знаков не менее важно. Вот где в игру вступает формула Бейли‑Борвейна‑Плуффа (ББП).
Формула ББП позволяет проверять двоичные цифры числа Пи в шестнадцатеричном формате без необходимости вычисления всех предыдущих цифр. Это особенно полезно для перекрёстной проверки разделов наших массивных вычислений.
Два проверочных расчёта.
Вот упрощённое объяснение:
Шестнадцатеричный вывод. Сначала мы генерируем цифры числа Пи в шестнадцатеричном формате во время основного расчёта. Формула ББП может вычислить любую произвольную отдельную цифру числа Пи напрямую. Вы можете сделать это с помощью других программ, таких как GPUPI, но y‑cruncher также имеет встроенную функцию. Если вы предпочитаете подход с открытым исходным кодом, формулы хорошо известны.
Перекрёстная проверка. Мы можем сравнить эти результаты с нашим основным расчётом, вычислив определённые позиции шестнадцатеричных цифр числа Пи независимо с помощью формулы ББП. Если они совпадают, это однозначно указывает на то, что вся наша последовательность верна. Мы проводили эту перекрёстную проверку более шести раз; вот два из них.
Например, если наш первичный расчёт даёт те же шестнадцатеричные цифры, что и полученные из формулы ББП в различных точках, мы можем с уверенностью утверждать о точности наших цифр. Этот метод не просто теоретический; он был практически применён во всех значимых вычислениях числа Пи, гарантируя надёжность и достоверность результатов.
R= Официальный результат захода, V= Результат проверки
Внимательные читатели заметят, что проверки на скриншотах и в приведённом выше сравнении немного смещены (*). Чтобы убедиться, что результаты совпадают, мы также проверили несколько других мест (например, цифры 100 триллионов и 105 триллионов), хотя в этом и не было необходимости, так как ошибка отразилась бы на шестнадцатеричном числе в конце. Хотя теоретически возможно вычислить любую десятичную цифру числа Пи с помощью аналогичного метода, неясно, будет ли это иметь точность выше 100 миллионов цифр, и будет ли это вообще эффективно с вычислительной точки зрения.
Благодаря интеграции математического процесса перекрёстной проверки мы можем гарантировать целостность наших рекордных вычислений числа Пи с 202 триллионами знаков, демонстрируя нашу вычислительную точность и научность подхода.
Спасибо за внимание!