Pull to refresh

Comments 26

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

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

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

У меня получилось на macOS 15 и M2 Pro без проблем. Исходники тут: https://www.mersenneforum.org/mayer/README.html

Makefile с путями для brew и флагом для neon:

CC?=gcc
OBJS=$(patsubst ../src/%.c, %.o, $(wildcard ../src/*.c))

Mlucas_asimd: $(OBJS)
	$(CC) -Wall -g -o $@ $(OBJS) -L/opt/homebrew/lib -lgmp
%.o: ../src/%.c
	$(CC) -Wall -g -c -I/usr/local/include -I/opt/homebrew/include -O3 -DUSE_ARM_V8_SIMD -DUSE_THREADS $<
clean:
	rm -f *.o

Кусок лога:

./Mlucas_asimd -fft 7168 -iters 100 -nthread 8

    Mlucas 20.1.1

    http://www.mersenneforum.org/mayer/README.html

INFO: testing qfloat routines...
INFO: 16384 MB of available system RAM detected.
CPU Family = ARM Embedded ABI, OS = OS X, 64-bit Version, compiled with Gnu-C-compatible [llvm/clang], Version 16.0.0 (clang-1600.0.26.3).
INFO: Build uses ARMv8 advanced-SIMD instruction set.
INFO: Using prefetch.
INFO: Using inline-macro form of MUL_LOHI64.
INFO: Using FMADD-based 100-bit modmul routines for factoring.
INFO: MLUCAS_PATH is set to ""
INFO: using 53-bit-significand form of floating-double rounding constant for scalar-mode DNINT emulation. 
Setting DAT_BITS = 10, PAD_BITS = 2
INFO: testing IMUL routines...
INFO: Testing 64-bit 2^p (mod q) functions with 100000 random (p, q odd) pairs...
INFO: System has 10 available processor cores.
INFO: testing FFT radix tables...
Set affinity for the following 8 cores: 0.1.2.3.4.5.6.7.

           Mlucas selftest running.....

/****************************************************************************/

User did not set LowMem in mlucas.ini ... allowing all test types.
User did not set CheckInterval in mlucas.ini ... using default.
NTHREADS = 8
Setting ITERS_BETWEEN_CHECKPOINTS = 100000.
 worktodo.ini file not found...using user-supplied command-line exponent p = 132772789
INFO: Maximum recommended exponent for FFT length (7168 Kdbl) = 134847983; p[ = 132772789]/pmax_rec = 0.9846108636.
Initial DWT-multipliers chain length = [short] in carry step.
M132772789: using FFT length 7168K = 7340032 8-byte floats, initial residue shift count = 70720170
This gives an average   18.088856969560897 bits per digit
Using complex FFT radices       224        16        32        32
mers_mod_square: Init threadpool of 8 threads
Using 8 threads in carry step
100 iterations of M132772789 with FFT length 7340032 = 7168 K, final residue shift count = 58265101
Res64: DD02AEFE839F92D5. AvgMaxErr = 0.186049107. MaxErr = 0.218750000. Program: E20.1.1
Res mod 2^35 - 1 =           7411321303
Res mod 2^36 - 1 =          16339659737
Clocks = 00:00:01.084

Ага. А более навернутая mprime не собирается на армах. Все как пишут на форуме.

Вы не знаете, есть ли реализации для JVM? Не обязательно от mprime. Пусть не заоптимизировано, как в проекте, с asm-вставками и пусть медленно, но на java.

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

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

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

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

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

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

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

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

А вот интересно, существует ли такое простое число, которое запустится, например, как exe-файл? 😉

Конечно, даже несколько! Вот только публикация их в открытом доступе может навлечь проблемы с законом.

Exe файл это же по сути контейнер. Возьмем любой файл никак не защищенный от модификации. Тогда в этот файл можно дополнительно внедрить некий ресурс, причем поскольку исходный файл об этом ресурсе ничего не знает и никак его не использует, мы можем внедрить туда все что угодно. Пусть изначальный файл занимает до 100 мегабайт. Чтобы не иметь проблем с x86 архитектурой возьмем максимальный размер файла 4Гб. Итого мы можем добавить 3.9 Гб произвольных данных. Если я правильно посчитал то это дает нам примерно 2^33500744908 различных чисел которые представляют не просто какой-то там исполняемый файл, а исполняемый файл функционально идентичный данному. Так неужели среди такого огромного количества чисел не найдется хоть одного простого? А если не найдется - возьмем другой exe файл, у нас их еще много...

Если говорить о будущем, то год назад CERT-файлы (доказательства проверки) p>595M (для 2 в степени больше, чем 595 миллионов) нельзя было скачать. Сейчас исправлено?

VDF

@patnashev Спасибо Павлу Атнашеву за важные идеи по адаптированию открытия для использования в GIMPS!

Опять заканчивается на единицу, как шесть предыдущих?

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

Основные характеристики компьютеров улучшаются в два раза каждые два года.

2^(28 / 2) - мне только кажется или тут почти 4 порядка и получается?

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

Sign up to leave a comment.

Articles