PiHex

PiHex — проект распределённых вычислений, организованный Колином Персивалом для вычисления отдельных битов числа пи[1]. В вычислениях участвовали 1246 человек[2], которые использовали для работы проекта свободные ресурсы почти двух тысяч компьютеров. В проекте была применена формула Беллара, более быстрая версия формулы BBP[3].

Что важно знать
PiHex
Тип распределённые вычисления
Разработчики Колин Персивал и 1246 волонтёров
Операционная система кроссплатформенная
Аппаратная платформа распределённые вычисления (примерно 1885 компьютеров)
Репозиторий wayback.cecm.sfu.ca/proj…

История

Для вычисления пяти триллионного бита (и следующих 76 битов) потребовалось 13 500 процессорных часов, задействованы были 25 компьютеров из 6 стран. На вычисление сорокатриллионного бита ушло 84 500 процессорных часов и 126 компьютеров из 18 стран. Наибольший объём задачи — квадриллионный бит — был рассчитан с использованием 1,2 миллиона процессорных часов и 1734 компьютеров из 56 стран. Всего ресурсы 1885 компьютеров предоставили 1,3 миллионов процессорных часов. Один средний компьютер, применявшийся в проекте, в одиночку выполнял бы такие расчёты 148 лет.

После фиксации трёх рекордов — вычислений пяти триллионного бита[4], сорокатриллионного бита[5] и квадриллионного бита[6] — проект завершился 11 сентября 2000 года[7].

На момент завершения PiHex были вычислены самые младшие разряды числа, которые когда-либо подсчитывались в какой-либо системе счисления. Второе место занимает Петер Трюеб (Peter Trueb), который в 2016 году рассчитал более 22 триллионов десятичных знаков, а третье — пользователь houkouonchi, вычисливший 13,3 триллиона десятичных знаков[8].

Алгоритм

В отличие от большинства расчётов числа, которые проводят вычисления в десятичной системе, PiHex осуществлял вычисления в двоичной системе (битах), поскольку формулы Беллара и BBP на тот момент позволяли вычислять только в двоичной системе[9].

Итоговые битовые строки для трёх расчётов таковы:

  • Биты числа с (5 000 000 000 000 − 3) по (5 000 000 000 000 + 76) (завершено 30 августа 1998):[4]
0000 0111 1110 0100 0101 0111 0011 0011 1100 1100
   ^ Пяти триллионный бит числа 
0111 1001 0000 1011 0101 1011 0101 1001 0111 1001
  • Биты числа с (40 000 000 000 000 − 3) по (40 000 000 000 000 + 64) (9 февраля 1999):[5]
1010 0000 1111 1001 1111 1111 0011 0111 0001 1101
   ^ Сорокатриллионный бит числа 
0001 0111 0101 1001 0011 1110 0000
  • Биты числа с (1 000 000 000 000 000 − 3) по (1 000 000 000 000 000 + 60) (11 сентября 2000):[6]
1110 0110 0010 0001 0110 1011 0000 0110 1001 1100
   ^ Квадриллионный бит числа 
1011 0110 1100 0001 1101 0011

Примечания