Новый мировой рекорд по вычислению числа пи: 31,4 трлн знаков

Формула Бэйли — Боруэйна — Плаффа, которая позволяет извлечь любую конкретную шестнадцатеричную или двоичную цифру числа пи без вычисления предыдущих (нынешний рекорд был установлен на алгоритме Чудновского, см. под катом)

Вычислительный кластер Google Compute Engine за 121 день на 25 виртуальных машинах рассчитал наибольшее количество цифр в числе пи, установив новый мировой рекорд: 31,4 триллиона знаков после запятой. Это первый раз, когда для расчёта числа пи такой величины использовалось общедоступное облачное программное обеспечение.

Рекорд будет записан на имя Эммы Харуки Ивао (Emma Haruka Iwao) из подразделения высокопроизводительных вычислений в Google. Именно она использовала инфраструктуру Google Cloud для вычислений. Предыдущий мировой рекорд был установлен Питером Трубом в 2016 году, он рассчитал число до 22,4 триллиона цифр на специально сделанном сервере, который тоже спонсировал работодатель.

Как и Труб, инженер Google применила для расчёта y-cruncher. Эта программа использует алгоритм Чудновского, быстрый алгоритм вычисления числа пи. Ещё в 80-е годы сами братья Чудновские с его помощью рассчитали более триллиона знаков после запятой.

В свою очередь, алгоритм основан на свойстве быстрой сходимости гипергеометрического ряда:

Эмма Харука Ивао увлеклась «волшебным» числом, узнав о нём на уроке математики в школе, пишет Wired. В университете один из её профессоров, Дайсуке Такахаси (Daisuke Takahashi), был рекордсменом по количеству рассчитанных цифр числа с помощью суперкомпьютера. Сегодня рекорд может поставить практически любой заинтересованный инженер, у которого есть доступ к серьёзным вычислительным ресурсам и большому дисковому хранилищу (для хранения результата вычислений). Созданная в 2009 году программа y-cruncher предназначена для вычисления математических констант, таких как пи. Она поддерживает массивную многопоточность и триллионные диапазоны. Эта программа фактически коммодитизировала вычисления констант.

«Вам нужен довольно большой компьютер, чтобы побить мировой рекорд, — говорит Ивао. — Не получится сделать это на компьютере из магазина, поэтому раньше люди строили кастомные машины». В сентябре 2018 года Ивао начала рассматривать, как технически будет работать процесс вычисления в диапазоне за пределами рекордного диапазона. Сразу стало понятно, что основной проблемой станет объём данных для хранения. В итоге получилось, что рассчитанный результат занимает 170 терабайт. Вместо сборки кастомного сервера, как предшественники, девушка использовала инфраструктуру Google Cloud.

Ивао подняла 25 виртуальных машин: «Но вместо того, чтобы нажимать эту кнопку виртуальной машины 25 раз, я автоматизировала её, — объясняет она. — Ты можешь сделать это за пару минут, но если тебе нужно так много компьютеров, то потребуется несколько дней, чтобы всё настроить». Затем непрерывно в течение 121 дня Ивао управляла работой y-cruncher на этих 25 виртуальных машинах.

Для корректности вычислений виртуальные машины должны были работать постоянно. Инженер установила систему мониторинга, которая предупредила бы её, если что-то пошло не так, например, о внезапном сбое на одной из виртуальных машин. Всего одна авария — даже на пару минут — могла поставить под угрозу весь процесс вычислений, если бы не резервное копирование.

«В кранчере и Google Cloud есть системы резервного копирования, и я настроила их так, чтобы вы могли мгновенно снимать копии этих дисков, не останавливая вычисления», — говорит Ивао. Эти данные затем копировались и сохранялись извне, на других дисках, в виде моментальных снимков.

«В начале было несколько параметров, которые я изменила, например, сколько данных вы могли читать или писать за один раз, и как границы будут меняться по мере увеличения», — говорит Ивао.

С увеличением количества цифр объём файлов становился больше, а сложность вычислений возрастала нелинейно. Это очень усложнило первоначальный расчёт, когда Ивао пыталась посчитать, какой ресурс виртуальных машин ей потребуется для проекта.

Сейчас завершены и вычисления, и проверка результата: в y-cruncher встроены два базовых алгоритма — один для вычисления самого пи, а другой для проверки. Алгоритм проверки работает параллельно с вычислением, но вычисляет только одну цифру, так что рекорд можно регистрировать официально.

Теоретически, новый мировой рекорд можно установить, если просто взять предыдущий файл и применить формулу Бэйли — Боруэйна — Плаффа для расчёта ещё одного числа. Но это наверняка противоречит правилам регистрации подобных мировых рекордов: скорее всего, каждый претендент должен начинать расчёт сначала. Как вариант: улучшить предыдущее достижение на N%, что по формуле Бэйли — Боруэйна — Плаффа сделать не получится.

Оставить комментарий