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

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

Без лишних предисловий - спустя шесть лет после предыдущего, найдено 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", благодаря которой стало возможным отказаться от "тяжёлых" проверочных тестов и, фактически, удвоить общую производительность проекта.

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

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

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

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


  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. csl
      16.10.2024 19:37

      @nsgladkov93 , вы компилировали под ARM?


      1. nsgladkov93
        16.10.2024 19:37

        Нет, у меня x86/x64.


  1. Laravel_Geek
    16.10.2024 19:37

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

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


    1. Manmellon
      16.10.2024 19:37

      Как это единственная, а как же Gridcoin! Там вообще разнообразные научные вычисления


    1. Elegar
      16.10.2024 19:37

      Так они же тоже бесполезные


      1. VBDUnit
        16.10.2024 19:37

        А вот не факт.


  1. domix32
    16.10.2024 19:37

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


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

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


      1. domix32
        16.10.2024 19:37

        Там просто на главной новость с пометкой "возможно", поэтому решил уточнить.


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

          Я больше скажу - там целое детективное разбирательство образовалось (в той же ветке форума, на которую я давал ссылку выше), откуда "посторонние" люди раньше времени узнали, число с какой экспонентой оказалась простым :)

          Его уже и на википедию успели засунуть (затем удалили), и вот сюда (затем тоже удалили)...


        1. csl
          16.10.2024 19:37

          У них на главной впервые в истории "probably" . Торопились огласить, потому что заждались (почти шесть лет с предыдущего)


  1. csl
    16.10.2024 19:37

    Оффтоп: название поста напомнило @PsyHaSTe "Сложность простоты"