![]() |
[QUOTE=fivemack;466733]Yes, the original tests (eg M4423) were conducted on IBM hardware with 36-bit words (why 36-bit? because they wanted to support ten-digit decimal arithmetic as well as hex, so you need a multiple of 4 greater than 33.2ish)[/QUOTE]
I have not been following this carefully. I don't think we need to over-abbreviate. I also don't like combining multiple concepts into one field. So, IMO P3 s.b. PRP-3 or Gerbicz-PRP-3. Residue should not contain "-dd". Add a new field called residue-checksum. Split program and program version into two fields. Also, I'd add more useful data: Like round-off errors detected, Gerbicz errors, etc. |
[QUOTE=Prime95;466822]I have not been following this carefully. I don't think we need to over-abbreviate. I also don't like combining multiple concepts into one field.
So, IMO P3 s.b. PRP-3 or Gerbicz-PRP-3. Residue should not contain "-dd". Add a new field called residue-checksum. Split program and program version into two fields. Also, I'd add more useful data: Like round-off errors detected, Gerbicz errors, etc.[/QUOTE] OK, we're advancing. How does this sound: { "exponent":25000000, "worktype":"PPR-3", "status":"C", "res64":"fffffffffffffffd", "residue-checksum":"c9caf7dd", "program":"gpuowl", "program-version":"1.0", "time":"Fri Sep 1 03:18:19 2017", "user":"meme", "cpu":"vega", "aid":"FF00AA00FF00AA00FF00AA00FF00AA00" } |
[QUOTE=Prime95;466822]Also, I'd add more useful data: Like round-off errors detected, Gerbicz errors, etc.[/QUOTE]
My implem does not have "round-off errors" anymore. Why do you think that the number of "rollbacks" is important? should that info be optional? (or maybe a bool, "any errors"). |
[QUOTE=preda;466824]... "time":"Fri Sep 1 03:18:19 2017" ...[/QUOTE]I'm not really involved in this, so sorry for butting in, but that time format is horrible. At least make it consistent with regard to the significance of the values, start with the year and work you way down to the seconds. Also don't use text, different languages use different names for the month and day, use numbers. And the day of the week is not necessary. Maybe like this: "2017-09-01 03:18:19". And the time should be UTC based, for consistency, so no need to include the timezone identifier. [/date rant]
|
[QUOTE=preda;466825]My implem does not have "round-off errors" anymore.
Why do you think that the number of "rollbacks" is important? should that info be optional? (or maybe a bool, "any errors").[/QUOTE] Round-off-errors should be optional. I can imagine other optional data such failed Jacobi tests for LL. Shift count. If an optional field is left out either the program does not implement the feature or the value is zero. Number of Gerbicz rollbacks indicate hardware reliability. If the same GPU ran LL tests or TF or P-1 it might prove useful to madpoo and his data-mining project. P.S. Even the residue field is optional - in case of a PRP/Prime result. |
[QUOTE=retina;466827]I'm not really involved in this, so sorry for butting in, but that time format is horrible. At least make it consistent with regard to the significance of the values, start with the year and work you way down to the seconds. Also don't use text, different languages use different names for the month and day, use numbers. And the day of the week is not necessary. Maybe like this: "2017-09-01 03:18:19". And the time should be UTC based, for consistency, so no need to include the timezone identifier. [/date rant][/QUOTE]
Yes I agree. That's the output format of asctime()/ctime(), and that's what's in use right now. What you propose is much more regular. I do think it should be in UTC, yes. |
ISO 8601: [url]https://xkcd.com/1179/[/url]
|
{"exponent":25000000, "worktype":"PPR-3", "status":"C", "res64":"fffffffffffffffd", "residue-checksum":"c9caf7dd", "program":"gpuowl", "program-version":"1.0", "time":"2017-09-01 06:56:08", "errors":{"rollback":1}, "user":"meme", "cpu":"vega", "aid":"FF00AA00FF00AA00FF00AA00FF00AA00"}
changed date format, added errors as a json sub-object to allow various kinds of errors. The result line is now over 256chars. |
"program" could be a sub-object too, like:
"program":{"name":"gpuowl", "version":"1.0"} |
Thoughts after skimming through posts (been a busy week so I haven't been keeping up)...
For a time format, these are user generated timestamps so we should agree that it'll either send them as UTC all the time, or send using the timezone offset format. Bulkier, but imagine a situation where two people report the same "is prime!" (or "is probably prime!") very close to each other. The server will know what time it was reported, but it could be helpful to also see the independently reported timestamp that the *client* finished it's run. Or maybe it wouldn't be helpful and nobody would care... right now the server doesn't save the timestamp in manual results, and auto results don't send it at all, but I think it'd be a "nice to have" option. Ultimately, if the server doesn't store the client's own timestamp then it might as well not send it at all. :smile: As far as the server side goes, this is probably more for George & James but I think something pretty similar to the LL results table, but PRP results, would work fine. The manual results parser should have no problem seeing the text coming in and parsing JSON (PHP does have a JSON deserializer, doesn't it? I was thinking it did but I haven't checked), and it'll know where to store the result based on whether it's PRP or LL. Well, for now any JSON would be from gpuOwl but hopefully such a well-structured input would catch on. Creating a new table, I could do that... James has been the go-to guy for updating the results parser, I think. Once the server is recording that data, then there's also some front-end work where it would show the PRP results... both on the exponent report along with the other data, and also a specific PRP report page, like the LL report page, I guess. |
[QUOTE=Madpoo;466897]As far as the server side goes, this is probably more for George & James but I think something pretty similar to the LL results table, but PRP results, would work fine.[/QUOTE]
Alternatively adding a new column to the LL_results table would work. The column would be something like "primality_test_used" and would be NULL for LL tests, PRP-3 for base-3 PRP tests. This way the "exponent status" page and "LL results" web pages would work (although they would show the residue as coming from an LL test). |
| All times are UTC. The time now is 21:50. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.