Меня заинтересовали простые числа Мерсенна https://www.mersenne.org/. Great Internet Mersenne Prime Search (GIMPS) проводит исследования в этой области. Это простые числа, но они очень большие и их мало. 49-е простое число Мерсенна состоит из 22 миллионов цифр. Невероятно, что одно число может состоять из 22 миллионов цифр.
Я попытался и смог догнать 8-е простое число Мерсенна, которое состоит из 10 цифр и находится в пределах 2 миллиардов. Я использую Postgres BIGINT, который поддерживает до 19-значных длинных целых чисел, что составляет 9 миллионов миллиардов. Итак, если я обрабатываю 1 миллиард строк за раз, мне потребуется 9 миллионов итераций. Я также могу использовать тип данных NUMERIC, который поддерживает 131072 цифры слева от десятичного числа и точность 16383 цифры. Конечно, мне нужно работать только с целыми числами. Мне не нужна точность. Другой альтернативой является CHAR VARYING Postgres, который хранит до миллиарда. Но его нельзя использовать для расчетов.
Того, что предоставляет Postgres, достаточно для любых практических нужд. Мой вопрос в том, как ребята из GIMPS вычисляют такие большие числа. Они хранят эти числа в какой-либо базе данных. Какая база данных поддерживает такие большие числа. Я не синхронизирован с прогрессом, достигнутым в мире баз данных.
Я знаю, что у них огромная вычислительная мощность. Кертис Купер упомянул, что 700 серверов используются для обнаружения и проверки чисел. Именно столько памяти требуется. Какой язык используется.
Просто любопытство. Это похоже на то, что я без работы.
Благодарность
bb23850