Comments 26
Поздравляю, наверное от вычисления очередного блока в например, биткоине у сообщества схожие впечатления.)
@nsgladkov93 , вы компилировали под ARM?
У меня получилось на 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
Вы не знаете, есть ли реализации для JVM? Не обязательно от mprime. Пусть не заоптимизировано, как в проекте, с asm-вставками и пусть медленно, но на java.
помнится, на заре криптоэнтузиазма была даже единственная полезная человечеству крипта, заточенная на вычисление мерсенновских чисел - праймкойн - https://ru.wikipedia.org/wiki/Primecoin
но так и не взлетела(
А его уже проверили?
Да, проверили - но организаторам нужно время, чтобы всё оформить официально (не то что мне, хе-хе). Они немного схитрили и пока спрятали результаты - но вот тут видно первоначально пришедшее от участника сообщение о тесте с положительным PRP-результатом, а вот сообщение, что проверки алгоритмом LL тоже положительны.
Там просто на главной новость с пометкой "возможно", поэтому решил уточнить.
Я больше скажу - там целое детективное разбирательство образовалось (в той же ветке форума, на которую я давал ссылку выше), откуда "посторонние" люди раньше времени узнали, число с какой экспонентой оказалась простым :)
Его уже и на википедию успели засунуть (затем удалили), и вот сюда (затем тоже удалили)...
У них на главной впервые в истории "probably" . Торопились огласить, потому что заждались (почти шесть лет с предыдущего)
Оффтоп: название поста напомнило @PsyHaSTe "Сложность простоты"
А вот интересно, существует ли такое простое число, которое запустится, например, как exe-файл? 😉
Конечно, даже несколько! Вот только публикация их в открытом доступе может навлечь проблемы с законом.
Exe файл это же по сути контейнер. Возьмем любой файл никак не защищенный от модификации. Тогда в этот файл можно дополнительно внедрить некий ресурс, причем поскольку исходный файл об этом ресурсе ничего не знает и никак его не использует, мы можем внедрить туда все что угодно. Пусть изначальный файл занимает до 100 мегабайт. Чтобы не иметь проблем с x86 архитектурой возьмем максимальный размер файла 4Гб. Итого мы можем добавить 3.9 Гб произвольных данных. Если я правильно посчитал то это дает нам примерно 2^33500744908 различных чисел которые представляют не просто какой-то там исполняемый файл, а исполняемый файл функционально идентичный данному. Так неужели среди такого огромного количества чисел не найдется хоть одного простого? А если не найдется - возьмем другой exe файл, у нас их еще много...
VDF
@patnashev Спасибо Павлу Атнашеву за важные идеи по адаптированию открытия для использования в GIMPS!
Опять заканчивается на единицу, как шесть предыдущих?
Получается, что за 28 лет сложность вычислений выросла на четыре порядка, неслабо так обогнав закон Мура.
Основные характеристики компьютеров улучшаются в два раза каждые два года.
2^(28 / 2) - мне только кажется или тут почти 4 порядка и получается?
Сорок мегабайт простоты