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

Вычислительный кластер 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%, что по формуле Бэйли — Боруэйна — Плаффа сделать не получится.

Комментарии (28)


  1. basilbasilbasil
    16.03.2019 17:41
    -1

    Троллейбус из буханки.жпег


  1. funnycar
    16.03.2019 17:57

    Нули и единицы ещё не начали складываться в фигуры?


    1. Baigildin
      17.03.2019 13:34

      Да. В круг.


  1. KirEv
    16.03.2019 19:49
    +3

    взял мудрец кувшин наполовину наполненный мелкими камнями, пересыпал в пустой кувшин,
    взял мудрец кувшин наполовину наполненный речным песком, пересыпал в кувшин только что наполненный мелкими камнями…
    взял мудрец кувшин полный речным песком и мелкими камнями — пересыпал в пустой кувшин из-под мелких камней.
    странное занятие было у мудреца )


  1. grayich
    16.03.2019 20:59

    pifs всё ближе?


  1. maxzhurkin
    16.03.2019 21:13
    +4

    Алгоритм проверки работает параллельно с вычислением, но вычисляет только одну цифру, так что рекорд можно регистрировать официально
    очень непонятное предложение


    1. vlanko
      17.03.2019 00:10

      за параллельность не скажу.
      Но суть в том, что другим алгоритмом считают одну конкретную цифру. Она должна совпасть с нашим расчетом :))
      (наверно, не одну)


      1. maxzhurkin
        17.03.2019 17:12

        Предположу, что:

        1. «не другой» алгоритм последовательно вычисляет по одной цифры, исходными данными служат предыдущие
        2. «другой» алгоритм последовательно проверяет по одной цифры, полученные с помощью «не другого» алгоритма, исходными данными служат предыдущие. Ресурсоёмкость при этом ниже (это предположение в рамках предположения), но не сильно, иначе можно было бы действовать путём простого перебора только с помощью этого алгоритма
        3. расчёты по «другому» алгоритму выдают верефицируемые совсем малыми (относительно «другого» и «не другого» алгоритмов) ресурсами данные, которые можно использовать как доказательство корректности расчётов и таким образом, собственно, являются подтверждением рекорда


  1. mikhailian
    17.03.2019 00:15
    +4

    Это не персональный рекорд, а позорище. Рекорд был у Фабриса Белларда в 2007 году, когда он на домашнем компьютере обставил группу японских учёных. Мог бы и дальше считать, но место на дисках закончилось, а новые купить было лениво.


    Вот статья про Фабриса и его рекорд, а вот его собственная страничка про это.


  1. mikhaelkh
    17.03.2019 00:38
    +1

    Ещё в 80-е годы сами братья Чудновские с его помощью рассчитали более триллиона знаков после запятой.

    Чудновские были первыми, кто вычислил миллиард знаков. Полная хронология рекордов


  1. DmitrySpb79
    17.03.2019 02:57
    +1

    С появлением облачных сервисов, подобные вычисления упираются только в толщину кошелька — только плати за процессорное и дисковое время.

    Да и когда появился алгоритм вычисления любого знака Пи, дальше считать его наверно стало бесмысленно, какой смысл терабайты зря генерить.


  1. ufm
    17.03.2019 05:49
    +1

    Мне одному кажется, что нормальная математика это та, в которой Пи или е строго равны 1? А то что у нас получается — явное недопонимание как устроена вселенная.


    1. ilmirus
      17.03.2019 08:59
      +2

      Да, вам одному так кажется. Ой, я имел в виду вам 1/е-му или вам 1/pi-му (выберите, какое число вам больше нравится) так кажется.


    1. Cerberuser
      17.03.2019 10:48

      Что Пи равно четырём — это ещё ладно, сам такое доказывал, но как надо извратиться, чтобы оно стало единицей?..


      1. dopusteam
        17.03.2019 10:51
        +2

        Взять систему исчисления с основанием pi?


        1. ilmirus
          17.03.2019 11:42

          Тогда pi в этой системе счисления будет выглядеть как 10.


          1. dopusteam
            17.03.2019 11:50

            Точно, это я знатно напутал

            Но если я правильно понял, изначально ufm имел в виду, что нужна математика, где pi может быть представлена не в виде иррационального числа

            Тогда и 10 сойдёт


            1. Cerberuser
              17.03.2019 14:02

              Тогда и 4 сойдёт — манхэттенское расстояние вам в помощь.


  1. youyou2020
    17.03.2019 07:02

    Математика как есть — беспощадна и бесполезна.


  1. netW0rm
    17.03.2019 07:02

    Хорошая работа, маркетинговый отдел Google Cloud!


  1. neurocore
    17.03.2019 10:46

    Один вопрос: зачем?


  1. solariserj
    17.03.2019 15:44
    -1

    Конечно извините, но у меня не укладывается в голове как Pi, может быть рассчитана по формуле. И как проверить что после 20-50 знака, он ещё верен а не генерит рандом. Это ведь геометрическое число. Понимаю е — чисто математическое, но Pi — длина единичной окружности, и кроме как из окружности его не достать.


    1. ivansmith
      17.03.2019 16:05

      Ну а как же формула Эйлера?
      e^i? + 1 = 0
      Экспонента входит во все тригонометрические функции, так что можно и без окружности обойтись :)


    1. zomby
      17.03.2019 16:09

      Очень большую карту в майнкрафте нарисовать с кругом, и померить :)


    1. malkovsky
      17.03.2019 17:28

      Это ведь геометрическое число. Понимаю е — чисто математическое, но Pi — длина единичной окружности, и кроме как из окружности его не достать.

      Не уверен, что вы под этим подразумеваете. В математике pi, как и е задается через предел некоторой последовательности. В случае pi — это предел последовательности периметров правильных вписанных в окружность единичного диаметра n-угольников. Это определение согласовано с дифференциальным исчислением и определением длины кривой, в частности длина кривой x^2+y^2=1 — это 2pi.


  1. glestwid
    17.03.2019 21:39

    Главное осталось нераскрытым — а нафига с этим пи возиться? В чем прок вычисления все большего числа его знаков?


    1. vmarunin
      18.03.2019 03:09

      Прока нет.
      Просто померяться… С другой стороны всего 25 инстансов на 120 дней и вы можете посчитать число Пи c точностью 31,415,926,535,897 знаков (что есть число Пи с точностью 13 знаков после запятой) ко дню Пи (14 марта или 3/14, 31 апреля и/или 14 месяца не завезли, чтобы день Пи был в российском формате даты)
      Чисто понты и реклама облака для этих понтов.
      На самом деле и 13 знаков слишком дофига. Тут посмотришь ролики как народ меряет сотые и тысячные доли миллиметра и насколько это всё не просто.

      PS А не дешевле было взять 100 инстансов на месяц и съэкономить на зарплате этой девушки?


      1. vlanko
        18.03.2019 11:39

        код скорее всего 1-поточный