primesearch / Mlucas

Ⓜ️ Ernst Mayer's Mlucas and Mfactor programs for GIMPS
https://mersenneforum.org/mayer/README.html
GNU General Public License v3.0
8 stars 2 forks source link

Mlucas 21.0.1 - Assertion failed: Expected ',' not found after TF_BITS field in assignment-specifying line! #30

Open efvb opened 6 months ago

efvb commented 6 months ago

HI All,

I installed today Mlucas 21.0.1 from main branch, no issues to compile. Then I chose worktype 160 with the current Primenet 2.0.1 This version is faster than 20.x from last month.

But I got an error message:

This is the output: Assertion failed: Expected ',' not found after TF_BITS field in assignment-specifying line!

Mlucas 21.0.1

INFO: testing qfloat routines... System total RAM = 23236, free RAM = 13175 INFO: 13175 MB of free system RAM detected. CPU Family = ARM Embedded ABI, OS = Linux, 64-bit Version, compiled with Gnu C [or other compatible], Version 11.4.1 20230605 (Red Hat 11.4.1-2.1.0.1). 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. INFO: testing IMUL routines... INFO: Testing 64-bit 2^p (mod q) functions with 100000 random (p, q odd) pairs... INFO: System has 4 available processor cores. INFO: testing FFT radix tables... Set affinity for the following 4 cores: 0.1.2.3. User did not set LowMem in mlucas.ini ... allowing all test types. User did not set CheckInterval in mlucas.ini ... using default. NTHREADS = 4 Setting ITERS_BETWEEN_CHECKPOINTS = 10000. looking for worktodo.txt file... worktodo.txt file found...reading next assignment... worktodo.txt entry: PRP=2B37D274B3B7D8A18DC3D3E17E27EEAC,1,2,16582879,-1,"1628121653153521"

ERROR: at line 658 of file ../src/Mlucas.c Assertion failed: Expected ',' not found after TF_BITS field in assignment-specifying line!

[2]+ Exit 1 ./Mlucas -cpu 0:3

tdulcet commented 6 months ago

Thanks for the bug report and for testing the latest version! It looks like Mlucas does not support the abbreviated PRP format used by the PrimeNet server, where the TF bits, tests saved, PRP base and residue type parameters are optional for first time cofactor assignments. It would probably be easier for me to update the PrimeNet script to add some fake values for those parameters when using Mlucas.

In the meantime, just add something like a 99,0,3,5, before the known factor at the end of the assignment line, for example:

PRP=2B37D274B3B7D8A18DC3D3E17E27EEAC,1,2,16582879,-1,99,0,3,5,"1628121653153521"
tdulcet commented 6 months ago

As a temporary workaround, one can add the below code after this line in the PrimeNet script:

            # Workaround Mlucas bug: https://github.com/primesearch/Mlucas/issues/30
            if not (options.cudalucas or options.gpuowl):
                if not assignment.prp_base:
                    assignment.prp_base = 3
                if not assignment.prp_residue_type:
                    assignment.prp_residue_type = 5

This would force to use it to always use the long PRP format for Mlucas. One could then use the --recover-all option to fix any existing assignments. I will add it to the next version of the PrimeNet script if this Mlucas issue is not resolved before then.

tdulcet commented 5 months ago

I included the above temporary workaround in version 2.1 of the PrimeNet program that was released today. I will keep this code in the program until Mlucas is able to support the abbreviated PRP format...