Приветствую всех любителей математики и больших простых чисел, а особенно - интересующихся, но ещё не погрузившихся в эту тему.
Пару недель назад было найдено очередное простое число Мерсенна - и я, пользуясь тем, что это событие подогрело интерес к проектам распределённым вычислений, хочу рассказать вам подробнее, что из себя представляет Great Internet Mersenne Prime Search. И, конечно же, по возможности, убедить присоединиться.
Это некоммерческий проект, запущенный аж в 1996 году Джорджем Уолтманом, математиком и программистом. Основной его целью является поиск простых чисел Мерсенна (их было найдено 18), хоть со временем и образовались несколько побочных активностей, связанных, например, с числами Ферма ((2^2^n)+1), Прота (k*(2^n) + 1), Вагстаффа (((2^n) + 1) / 3) и так далее.
С технической точки зрения GIMPS представляет собой базу данных с информацией об экспонентах чисел Мерсенна и HTTP API, дающее возможность получить задание на определённую операцию с одной из этих экспонент - а затем, после его выполнения, вернуть результат.
Есть определённая последовательность действий, которой обычно придерживаются при проверке каждой экспоненты:
(Этот список неполон, но я решил не углубляться настолько. Просто знайте, что есть ещё другие, менее распространённые варианты - ECM, P+1, PRP Cofactor... в конце статьи я дам ссылку на огромный тред гимпсовского форума с максимально подробными описаниями.)
Пройдя все эти этапы, экспонента считается обработанной и проверенной. Разумеется, никто не запрещает сделать с ней ещё что-то - или даже с ещё не проверенной. Этот процесс называется "Manual assignment" и обычно используется энтузиастами, профиль работ которых не вписывается в основной фронт GIMPS - например, факторизация "далёких" или наоборот, небольших экспонент, перепроверка древних результатов, и так далее.
Для начала хочу озвучить довольно банальную, но, на мой взгляд, недостаточно проговариваемую мысль - "поиск простых чисел Мерсенна, это далеко не быстрый процесс, занимающий годы". Если хочется каких-то осязаемых результатов, и побыстрее - выбирайте факторизацию. Я пробовал, я знаю - каждый найденный делитель, это хоть и небольшая, но мгновенная доза эндорфинов. Проверка на простоту - это долгий и монотонный труд, скрашиваемый только просмотром статистики проекта и рейтинга участников. Ну, и раз в несколько лет таким вот праздником, как был недавно :)
В зависимости от того, какое оборудование вы решите использовать, и на какой ОС - вам понадобится разное программное обеспечение:
Существует возможность запустить всё вышеперечисленное не только локально, но и, например, в облаке - в том числе на Google Colab с их мощными Tesla T4, A100 и другими (правда, с недавних пор, к сожалению, только в платной версии - но есть и другие облака!)
В целом, если заинтересовались, но эта статья для вас недостаточно глубока, могу посоветовать вот этот тред на форуме с титанической работой - в нём есть ответ, кажется, на любой вопрос. Форум вообще довольно активный и населённый многочисленными, в том числе весьма известными, персонами, к которым там можно обратиться напрямую без лишних реверансов. Ну или пишите мне в личку, чего уж там.
На этом закругляюсь и, поскольку в прошлый раз забыл, даю ссылку, по которой можно присоединиться к нашей GIMPS-команде, если вы ещё не.