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


