20070227, 19:04  #1 
Feb 2003
76E_{16} Posts 
some tools for weights computing...
I was asked about the tools I'm using to compute the Nash weights for the larger k.
Since there might be some general interest, I'm uploading them into this thread, in hope that you find them useful. Thanks to MinGW I was able to prepare some Windows binaries too (since you're all Windoozers, right?). You should note, that those tools where originally written for my personal use  so there is no detailed information about the algorithms in the code, nor is there any help file etc... Also note, that it's all about Rieselks, e.g. k*2^n1. For the Prothks one has to modify the source code. For general information related to the Nash weights you may also have a look into the 15k forum, where I already posted a Linux binary of the nash weight calculator. The first tool (attached to this post) calculates the Nash weight for a single k. It should work for any k of arbitrary length. Usage is: Code:
nash <k> Code:
nash 12345 12345 2060 2064 The difference between standard Nash weight (w) and modified Nash weight (w') is that the standard Nash weight is computed for n=100001110000, while the modified Nash weight is for n=110000. The latter is related to the Proth weight: Code:
Proth weight = w' / 1751.542 
20070227, 19:09  #2 
Feb 2003
2×3×317 Posts 
The next one is a multiplek Nash calculator. Note that the current version is restricted to k<2^64 (e.g unsigned long)
Usage is: Code:
mnash <kmin> <kmax> <kstep> Code:
mnash 1 10 2 1 925 1176 3 2976 2933 5 2180 2176 7 912 917 9 1674 1678 
20070227, 19:33  #3 
Feb 2003
11101101110_{2} Posts 
The final one is a bit different.
Since the Nash algorithm is quite slow when computing large ranges (e.g. millions) of k, one needs a faster tool. Therefore I implemented an ordinary sieve for p up to 512 and a smaller n range of only 11000. Due to precomputation of the "reversed orders of n" the whole calculation can be done in cache memory and is therefore really fast (e.g. about 3000 k/sec on a 1.7 GHz P4). So one can use multi5 for a fast prescanning of a krange and then do some sorting on the results and run the "good ones" through nash. For some historic reason it is written in Fortran (and lacks any comments) and there are no command line options. Therefore you need to edit the steer.txt file for specifying the krange and a print condition. The latter is necessary since otherwise the sieve would produce hundreds of megabytes of output within minutes... The example steer.txt file reads: Code:
32000000025 KMIN 32001000000 KMAX 30 KSTEP 600 minimum weight for printing Usage is simply: Code:
multi5 Code:
multi5 32000060235 609 32000107425 622 32000193225 612 32000315325 605 32000497485 640 32000553585 618 32000703735 674 32000816445 601 32000982585 622 Code:
multi5 > my_ks.txt Last fiddled with by Thomas11 on 20070227 at 19:48 
20070227, 19:42  #4 
Feb 2003
11101101110_{2} Posts 
I forgot to mention:
For nash and mnash I used a precompiled static GMP library. I haven't tested the binaries on a Windows machine without the GMP lib so far, nor have I tested them on a nonP4 (nonSSE2) machine. So, if you run into trouble, just let me know... 
20070227, 20:46  #5 
I quite division it
"Chris"
Feb 2005
England
31·67 Posts 
Nash Crash
Nash crashes in Windows. I assume I need to download the library you mentioned? Could you provide a direct link please.
XP Home Athlon XP 3200+ Last fiddled with by Flatlander on 20070227 at 20:47 Reason: Spec. added. 
20070228, 10:09  #6  
Feb 2003
2×3×317 Posts 
Quote:
http://www.bempf.de/c/gmp/gmp.html But probably in your case the problem is, that the library is precompiled for SSE2 machines, but your Athlon doesn't have SSE2... Currently I don't have any Athlons running under Windows. But I could try to compile GMP from scratch without the SSE2 options this evening... Edit: amphoria was so kind to generate a Windows binary (attached below) for the older nash3 (which is essentially the same as mnash). I haven't tested it so far, but perhaps it works on your Athlon... Last fiddled with by Thomas11 on 20070228 at 10:12 

20070228, 13:46  #7 
I quite division it
"Chris"
Feb 2005
England
31·67 Posts 
Nash3 works. Thank you.

20070228, 14:39  #8 
Feb 2003
2·3·317 Posts 
P3/Athlon binaries for Windows
I created a new set of Windows binaries by using a different precompiled GMP library from: http://cs.nyu.edu/exact/core/gmp/
The file contains nash.exe and mnash.exe. They are tested on an AthlonXP/Win2000 system and should work on P3 machines as well. 
20090511, 13:04  #9 
Feb 2007
211 Posts 
Thomas 11
do you think multi5 code can be optimized to run faster on 64 bit OS? Thanks cipher 
20090511, 13:21  #10  
Feb 2003
11101101110_{2} Posts 
Quote:
Probably a complete rewrite in C/C++ would be necessary... 

20150702, 21:09  #11 
Dec 2011
After milion nines:)
2·5^{4} Posts 
I search for this article and will say this
"old" nash for 93*10^n1 gives 93 10 5030 5045 "new" nash gives "only" 93 3116 3123 So what is correct ? Second: how to calculate nash weight from 1 to 1000 on base 3? mnash calculate only base 2, right? Thanks for answer 
Thread Tools  
Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Comparison of NFS tools  CRGreathouse  Factoring  3  20180205 14:55 
Benchmark of current tools  Romuald  Factoring  1  20161113 10:59 
GPU Computing Cheat Sheet (a.k.a. GPU Computing Guide)  Brain  GPU Computing  20  20151025 18:39 
Murphy's Law and other tools  Uncwilly  Lounge  5  20140707 22:36 
The difference between P2P and distributed computing and grid computing  GP2  Lounge  2  20031203 14:13 