![]() |
![]() |
#1 |
Dec 2019
22×32 Posts |
![]()
Hello fellow Crunchers,
Cruncher Teal Dulcet (@tdulcet) and I (@danc2) have been working to expedite the computation of prime numbers. As a part of a separate project, we decided to debug, optimize, and add features to the existing PrimeNet Python script that exists to interact with the GIMPS project's V5 API. Please feel free to use, give feedback, and contribute to the project. Below are an unordered list of features. You may download the newest PrimeNet at this link. Features
|
![]() |
![]() |
![]() |
#2 |
"/X\(‘-‘)/X\"
Jan 2013
https://pedan.tech/
3,203 Posts |
![]()
Nice! Will you be adding GPU72 support?
|
![]() |
![]() |
![]() |
#3 |
"Teal Dulcet"
Jun 2018
Computer Scientist
3·43 Posts |
![]()
No, it is primarily for primality testing. We are currently working on adding support for GpuOwl. However, if anyone wanted to add support for GPU72 and trial factoring, we would definitely accept a pull request.
|
![]() |
![]() |
![]() |
#4 |
"Teal Dulcet"
Jun 2018
Computer Scientist
3·43 Posts |
![]()
Since Daniel's update above almost six months ago, I have added several new features to our PrimeNet script:
If anyone would like to contribute, there is a list of ideas here. |
![]() |
![]() |
![]() |
#5 |
"Teal Dulcet"
Jun 2018
Computer Scientist
3×43 Posts |
![]()
Since my last update above almost nine months ago, I have added several new features to our PrimeNet script:
If anyone would like to contribute, there is a list of ideas here. |
![]() |
![]() |
![]() |
#6 |
"Teal Dulcet"
Jun 2018
Computer Scientist
3·43 Posts |
![]()
As can be seen from this very long post, a lot has happened since my last update above almost a year ago. I now consider our PrimeNet script to be feature complete, so I thought it would be a good opportunity to officially announce the version 1.0 release. Going forward I will increment this version number whenever I make any additional fixes or improvements. Users can of course use the --version option at any time to output their current version. I will also try to avoid any more backwards incompatible changes if possible, except for consistency in cases where Prime95/MPrime is making a change. Our PrimeNet script does not support the "Benchmark Data Statistics" (bd) endpoint, as I presume @Prime95 does not want users submitting benchmarks for GIMPS programs other than Prime95/MPrime, but our script now fully supports all eight other endpoints of the PrimeNet v5 API, including 2½ additional ones since my last update.
Here are the notable changes to our PrimeNet script since my last update, which are now all included in this version 1.0 release:
Run the -h/--help option for more information about many of these new features. Feedback is welcome! For some context on what it took to get to version 1.0, the original PrimeNet script by @ewmayer et al. was 481 lines of code (LoC). Another similar version by @preda et al., which also supports PRP proof uploading, is 272 LoC (across two files). The updated version by Loïc Le Loarer in 2020, which added partial PrimeNet API support, was 919 LoC. The initial release by @danc2 and I at the top of this thread in 2021 was 1,716 LoC. This version 1.0 release is now 3,015 LoC, over six times larger than that original version and over 11 times larger than @perda's variant. LoC can be a bad metric for comparing code, because more does not necessarily mean better, but this this case our version 1.0 PrimeNet script has significantly more functionality then those previous versions, including full support for three GIMPS programs (Mlucas, GpuOwl and CUDALucas). I have actually have gone to great lengths to reduce the LoC as much as possible, so that our script can still be easily reviewed by users before they run it. Hopefully our script can now replace all those previous versions, so that there can be just a single PrimeNet script going forwards. Thank you to everyone who has tested and provided feedback on the many previous versions of our script, which has enabled us to get to this point. |
![]() |
![]() |
![]() |
#7 |
"Teal Dulcet"
Jun 2018
Computer Scientist
3×43 Posts |
![]()
It has only been a couple of weeks since the official version 1.0 release, but I am now releasing a version 1.0.1 update with some changes requested by @Madpoo to help make the PrimeNet administrators lives easier. Users are encouraged to upgrade at their earliest convenience.
Here are the notable changes to our PrimeNet script:
Run the -h/--help option for more information about many of these new features. Feedback is welcome! Note that the next major version of our script (version 2.0) is most likely going to drop support for Python 2.6 - 3.2, as well as support for doing manual testing with the --password option. This version will probably not be released for a while, but please do let us know before then if you still need support for these older Python versions and/or for doing manual testing. We occasionally are asked the easiest way to initially download and update our script, so I thought I should provide brief instructions here:
|
![]() |
![]() |
![]() |
#8 | |
"/X\(‘-‘)/X\"
Jan 2013
https://pedan.tech/
3,203 Posts |
![]() Quote:
mlucas runs on many architectures, for instance. I'm sure it won't be long until someone is running GpuOwl on a RISC-V host. Might be better to concatenate platform.system() with platform.platform(). |
|
![]() |
![]() |
![]() |
#9 | ||
"Teal Dulcet"
Jun 2018
Computer Scientist
3×43 Posts |
![]() Quote:
However, @Madpoo did recently suggest including more detailed OS information in the JSON results that are submitted to the server. I am still waiting for him to make a more detailed proposal with what specifically he wants added and in what format, but I am sure the architecture could be added as well. This could then be included in my next update of our script. Quote:
|
||
![]() |
![]() |
![]() |
#10 |
"Teal Dulcet"
Jun 2018
Computer Scientist
2018 Posts |
![]()
Shortly after the version 1.0.1 announcement in post #7, we realized that the new "application version string" format was causing issues with the PrimeNet server, so unfortunately I had to revert this change. I still believe that this information would be valuable to both users and the PrimeNet administrators, so hopefully we will be able to readd it in some format in a future version of our script.
Thanks to @James Heinrich, we now have a download mirror of our script on his mersenne.ca website: https://download.mersenne.ca/primenet.py/. This will automatically update nightly with the latest version of our script. This allows users to download the latest version of our script by just clicking a link instead of having to run that curl command listed in post #7. In addition, the mirror includes basic instructions to download and setup our script at the top of the page. Feedback on the instructions is welcome! For Windows users on x86 systems, we now also have a standalone executable that packages the latest versions of both Python and our script. Similar to @kriesel's standalone executables for @preda's legacy PrimeNet script, this allows Windows users to use our script without needing to first download, install and setup Python on each of their systems. I setup a continuous deployment (CD) system in my repository to automatically build these executables with PyInstaller and then upload them to the download mirror whenever our script is updated. The mirror also includes simple instructions to download and setup these standalone executables at the top of the page. Both x86 (32-bit) and x86-64 (64-bit) executables are available. They use the latest stable version of Python, which is currently 3.11, so they require Windows 8.1 or newer. However, if any users still need support for older versions of Windows, I could change this to use an older version of Python. For example, Python 3.8 should support Windows Vista or newer. Huge thanks to @James Heinrich for setting up this mirror and for working with me to automate the process of uploading the Windows executables. |
![]() |
![]() |
![]() |
#11 |
P90 years forever!
Aug 2002
Yeehaw, FL
22×2,089 Posts |
![]()
Thank you for this software! I've just gotten around to using it. So far no issues.
Any thoughts on how one might implement a new feature: send me an email if the GPU makes no progress since the last update. Even better might be an auto-reboot if no progress since last update. |
![]() |
![]() |
![]() |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Strange GPU interaction (bump) | kladner | Hardware | 2 | 2017-02-24 21:34 |
PHP vs. Python vs. C (all with GMP) | daxmick | Programming | 2 | 2014-02-10 01:45 |
Program interaction | Chuck | GPU Computing | 6 | 2014-01-06 04:29 |
Newest idea of an idiot | science_man_88 | Miscellaneous Math | 33 | 2010-04-21 16:33 |
Help w/ python. | a216vcti | Programming | 7 | 2005-10-30 00:37 |