Привет, Хабр!

Наконец-то я могу опубликовать статью, написание которой оттягивал, кажется, целую пятилетку. Ну, знаете, "можешь не писать - не пиши", да и повода особого не было... Но теперь повод появился - да ещё какой! - в свете которого не схватить перо было бы сущим престулением.

Без лишних предисловий - спустя шесть лет после предыдущего, найдено 52-ое известное простое число Мерсенна!

Для не следящих плотно за приближающими глобальное потепление ради собственного развлечения негодяями, также известными как "комьюнити GIMPS" (Great Internet Mersenne Prime Search), напомню, числа Мерсенна - это двойки, возведённые в степень, минус единица.

Было доказано, что такие числа иногда, весьма редко, бывают простые - и в этом случае экспонента (та самая степень двойки) непременно тоже представляет собой простое число. До середины прошлого века поиск таких чисел был довольно вялым, но с появлением ЭВМ, понятное дело, рванул вперёд - в первую очередь, конечно же, благодаря наличию алгоритма поиска с полиномиальной сложностью.

С тех пор простые числа Мерсенна (ПЧМ) удерживают практически весь пьедестал почёта самых больших известных простых чисел.

Чтобы вы понимали, о каких размерах идёт речь. Современная криптография оперирует простыми или псевдопростыми числами длиной в сотни и тысячи бит, текущий же фронт работ по поиску простых чисел Мерсенна располагается в окрестностях вот такого:

2^{125000000} - 1

Каждый кандидат на простоту на текущий момент, это число длиной более 40 000 000 (сорока миллионов) десятичных цифр, для проверки которого требуется около суток работы мощной видеокарты или несколько дней на "обычном" серверном CPU.

Я примчался порадовать хаброаудиторию быстрее любого официального пресс-релиза, поэтому на этом графике нет последнего ПЧМ.
Я примчался порадовать хаброаудиторию быстрее любого официального пресс-релиза, поэтому на этом графике нет последнего ПЧМ.

Проверка первого найденного совместными усилиями проекта GIMPS простого числа Мерсенна, M(1 398 269), занимала 0.05 гигагерце-дней (внутренняя условная единица GIMPS, примерно равная работе одного 1GHz ядра Pentium 4 за сутки). Это было в 1996 году. Последнее найденное ПЧМ, M(136 279 841) "весит" уже 759 ГГц*дней. Можете посмотреть на первые цифры или скачать архив с полной версией вот тут.

Получается, что за 28 лет сложность вычислений выросла на четыре порядка, неслабо так обогнав закон Мура.

Однако, GIMPS не только не унывает, но и наоборот - наращивает обороты. За последние 10 лет, помимо естественного появления всё более производительных CPU и GPU, были совершены и качественные скачки. Совместными усилиями математиков и программистов, при моральной поддержке обычных участников проекта вроде меня, реализованы новые алгоритмы:

  • Вероятностный тест Миллера-Рабина, также известный как PRP.

  • Метод коррекции ошибок Роберта Гербикса, снизивший практически до нуля вероятность аппаратной ошибки при вычислениях.

  • Использование VDF, "Verifiable Delay Function", благодаря которой стало возможным отказаться от "тяжёлых" проверочных тестов и, фактически, удвоить общую производительность проекта.

Шесть лет ожиданий снова вознаграждены (поскольку это уже третье ПЧМ, которое я застал с момента присоединения к проекту), можно выдохнуть, продуть вентиляторы от пыли... и устремиться дальше по этой бесконечной (не доказано!) дороге к следующему огроменному и практически бесполезному в повседневной жизни числу.

Как-то так обычно выглядят объяснения, зачем это всё нужно.
Как-то так обычно выглядят объяснения, зачем это всё нужно.

Само собой, приглашаю присоединиться к нашей вакханалии, благо — это совсем не сложно. Будем греть атмосферу вместе.

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


  1. hphphp
    16.10.2024 19:37

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


    1. ky0 Автор
      16.10.2024 19:37

      Нет, что вы. То, во что вкладываешь свои усилия бескорыстно - приносит куда больше удовлетворения :)


  1. avitek
    16.10.2024 19:37

    Софт заточен под x86/x64. Попробовал собрать под aarch64 - не получилось. И, судя по беглому чтению форумов, вряд ли получится.


  1. Laravel_Geek
    16.10.2024 19:37

    помнится, на заре криптоэнтузиазма была даже единственная полезная человечеству крипта, заточенная на вычисление мерсенновских чисел - праймкойн - https://ru.wikipedia.org/wiki/Primecoin

    но так и не взлетела(


  1. domix32
    16.10.2024 19:37

    А его уже проверили?


    1. ky0 Автор
      16.10.2024 19:37

      Да, проверили - но организаторам нужно время, чтобы всё оформить официально (не то что мне, хе-хе). Они немного схитрили и пока спрятали результаты - но вот тут видно первоначально пришедшее от участника сообщение о тесте с положительным PRP-результатом, а вот сообщение, что проверки алгоритмом LL тоже положительны.