mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Software (https://www.mersenneforum.org/forumdisplay.php?f=10)
-   -   Prime95 version 29.4 (https://www.mersenneforum.org/showthread.php?t=22683)

kruoli 2017-11-15 18:51

If you have set your [I]Iterations between screen outputs[/I] by chance to exactly the number of iterations to be done, the following will happen:
[CODE][Worker #1 Nov 15 19:48] Iteration: 100000 / 100000 [100.00%], roundoff: 0.070, ms/iter: 0.026, ETA: 30:25:40[/CODE]
Of course the ETA should be nearly zero or equal to zero.

Madpoo 2017-11-16 04:30

[QUOTE=James Heinrich;471653]It may be what you're used to, but the non-JSON results are much harder to deal with when processing manual results. I'm personally in favour of deprecating all non-JSON results and eventually no longer them accepting them in the manual results forms. Don't worry, we're probably years away from that, but be prepared to see more JSON in the future.

BTW: George is less [url=https://en.wikipedia.org/wiki/Hobson%27s_choice]Hobsonian[/url] than I am so the option is already there. I however still strongly encourage you to embrace the JSON in your workflow. :smile:[/QUOTE]

I agree... json is pretty nice. It's as easy to read as the old format, and even more so for a machine since it's well-formatted. As a human, I like being able to look at a value and see the description of it right there, no guessing. With the current/old format, unless you're here on this forum and/or getting into the source, it can be somewhat indecipherable to know what all those values are exactly. I mean, the exponent, residue and is/isn't prime are easy enough, but all that other stuff is important (shift count, error code, assignment id, checksum...)

Madpoo 2017-11-18 00:36

Prime95 v29.4 build 5 is official!
 
The download page has just been updated... v29.4 build 5 is now the official build. George gave his stamp of approval...

Enjoy!
[URL="https://www.mersenne.org/download/"]https://www.mersenne.org/download/[/URL]

GP2 2017-11-18 02:28

[QUOTE=Madpoo;472035]The download page has just been updated... v29.4 build 5 is now the official build.[/QUOTE]

One small issue, the fast Jacobi criterion in the source code should check strcmp(gmp_version, "5.1.0"), [URL="http://www.mersenneforum.org/showthread.php?p=471594#post471594"]as mentioned earlier[/URL].

Madpoo 2017-11-18 04:20

[QUOTE=GP2;472037]One small issue, the fast Jacobi criterion in the source code should check strcmp(gmp_version, "5.1.0"), [URL="http://www.mersenneforum.org/showthread.php?p=471594#post471594"]as mentioned earlier[/URL].[/QUOTE]

[URL="http://www.mersenneforum.org/showpost.php?p=470955&postcount=17"]http://www.mersenneforum.org/showpost.php?p=470955&postcount=17[/URL]

Dubslow 2017-11-18 06:06

[QUOTE=Madpoo;472042][URL="http://www.mersenneforum.org/showpost.php?p=470955&postcount=17"]http://www.mersenneforum.org/showpost.php?p=470955&postcount=17[/URL][/QUOTE]

....what does that have to do with anything? GP2 proposed a fix for a problem, George implemented it, and after that, GP2 realized that the version number wasn't quite right the first time. The second correction is what's failed to be included, and still allows for Prime95 to fail in the same way as before on certain specific versions of GMP (namely >=5.0, <5.1)

R. Gerbicz 2017-11-18 08:02

[QUOTE=GP2;472037]One small issue, the fast Jacobi criterion in the source code should check strcmp(gmp_version, "5.1.0"), [URL="http://www.mersenneforum.org/showthread.php?p=471594#post471594"]as mentioned earlier[/URL].[/QUOTE]

In this case you would introduce another bug, check out:
[CODE]
printf("%d\n",strcmp("6.1.2","5.1.0"));
printf("%d\n",strcmp("10.0.0","5.1.0"));
[/CODE]
this gives:
[CODE]
1
-1
[/CODE]
ofcourse so far the gmp major version not reached 10, but in future gmp version it would be a quite real bug.

ps. not forget [url]https://gmplib.org/manual/Useful-Macros-and-Constants.html[/url]
"Global Constant: const char * const gmp_version
The GMP version number, as a null-terminated string, in the form “i.j.k”. This release is "6.1.2". Note that the format “i.j” was used, before version 4.3.0, when k was zero."

ATH 2017-11-18 13:48

There are variables for the version and minor version, so something like this should work:

[CODE]if ((__GNU_MP_VERSION<5) || (__GNU_MP_VERSION==5 && __GNU_MP_VERSION_MINOR<1)) { jacobi_check=0; }[/CODE]

GP2 2017-11-18 18:48

[QUOTE=ATH;472059]There are variables for the version and minor version, so something like this should work:

[CODE]if ((__GNU_MP_VERSION<5) || (__GNU_MP_VERSION==5 && __GNU_MP_VERSION_MINOR<1)) { jacobi_check=0; }[/CODE][/QUOTE]

But this is at compile time only. It needs a runtime check, to check the version of the shared library. So the global variable gmp_version is needed instead.

retina 2017-11-18 18:52

[QUOTE=GP2;472083]But this is at compile time only. It needs a runtime check, to check the version of the shared library. So the global variable gmp_version is needed instead.[/QUOTE]And using a string for what is essentially a number is such bad practice IMO.

[size=1]Sorry, [/rant] on the state of software development these days.[/size] :sad:

ATH 2017-11-18 23:12

[QUOTE=GP2;472083]But this is at compile time only. It needs a runtime check, to check the version of the shared library. So the global variable gmp_version is needed instead.[/QUOTE]

Ok then this should work:

[CODE]sscanf(gmp_version,"%i.%i",&ver,&mver);
if ((ver<5) || (ver==5 && mver<1)) { jacobi_check=0; }[/CODE]or this longer "manual" way without using "sscanf":

[CODE]
ver=0; mver=0; i=0;
while(gmp_version[i]>=48 && gmp_version[i]<=57) { ver=ver*10+gmp_version[i]-48; i++; }
i++;
while(gmp_version[i]>=48 && gmp_version[i]<=57) { mver=mver*10+gmp_version[i]-48; i++; }
if ((ver<5) || (ver==5 && mver<1)) { jacobi_check=0; }
[/CODE]

Edit: Fixed "gmp_version[i]>=48 && gmp_version[i]<=57" instead of "gmp_version[i]>48 && gmp_version[i]<57


All times are UTC. The time now is 17:51.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.