Cool, works great now. Do you want the test to run to completion?
It looks like it's making good use of all of my CPU cores. My per-iteration time is 0.008sec - not sure how that translates to cEMs/s though.
It's been brought to my attention that the client is out-dated and lacking in many key areas. I've come up with a solution. I'm still testing this but I'd like your early feedback.
Basically, I've reverse engineered GIMPS Primenet server using their helpful documentation:
http://v5.mersenne.org/v5design/v5webAPI_0.97.html#8.0
And from their specification, I've created a 197 line php "server" which is handing out real tests that can be delivered and returned DIRECTLY to SB using the standard GIMPS client.
Here is how you can test this new SB client / server.
1) Download a client from ftp://mersenne.org/gimps/
for win32: ftp://mersenne.org/gimps/p95v259.zip
for win64: ftp://mersenne.org/gimps/p64v259.zip
there are clients in this directory for linux, Mac OS X, and NT as well.
2) Unzip and run the client
3) Tell it you want to use Primenet and do GIMPS testing.... set it up however, but once it downloads a test and starts crunching, close it.
4) Delete "worktodo.txt"
5) Open "prime.txt" and add this line to the bottom
MersenneIP=www.seventeenorbust.com
and update the V5UserID line like so
V5UserID=louie
where you put your own SB username there.
6) Run the client again... ta da! You're doing tests for SB.
So what are people's thoughts on this? I *just* finished putting together the new server to handle these requests so several things aren't supported (like saving progress reports, saving P-1 factors, etc) but it should actually work in other ways. This gives you the GIMPS client which has faster, more recently optimized code, and better features (multi-core, battery settings, etc).
Some specific feedback I'd like are:
* Benchmarks for the same (or similar) tests in SB v2.5.0 vs GIMPS v25.9. Several computers would be nice if someone or multiple people can provide this. I'm curious what the raw gain in efficiency would be from helping people upgrade through this path.
* Bug reports - This procedure to setup the client works on my MacBook and my gfs Toshiba. I think I fixed a problem with the client misinterpreting the test key as the k value but I'm not positive. It should also actually start adding those of you who test this way to the results / checkouts db. So this running for a bit and checking out a test or two will help even if you don't finish them or otherwise give feedback.
If we actually roll this out, I'll find a far less disruptive way to install it. For GIMPS so we don't check out their tests and for SB users so it's not so clumsy. But assuming it didn't require so many steps, would using this client be a net positive? Let me know your results. Thanks!
-Louie
Cool, works great now. Do you want the test to run to completion?
It looks like it's making good use of all of my CPU cores. My per-iteration time is 0.008sec - not sure how that translates to cEMs/s though.
Shouldn't I get a different assignment for each core?Originally Posted by mprime
I got this too when I tried 4 tests at once - I figured it was just because this is an early version and multiple assignments would be implemented in the future so I switched down to just running 1 worker thread but to use all 8 cores, and it did speed up by about 40% or so over 1 worker and 4 cores, so it is utilizing the extra cores.
On another note - it looks like I got a new k/n pair sometime last night (22699*2^13273822+1), but it looks like I am still crunching on the first test (10223*2^13272329+1). In my preferences it is set to queue up 5 days worth of work, so this may be why, but wanted to make sure this is supposed to happen.
You're both right. Yes - you should get a different assignment. And yes, it was handing out multiple copies of each test because I was trying to test this without pulling too many tests out of the queues at first.
Anyway, it's fixed now and should be able to grab as many unique assignments as you request. Can you all test it out and see if you get new assignments when you install it and request multiple worker threads? Thanks!
-Louie
I haven't seen any benchmarks yet but my own testing seems to show that even though this version of GIMPS is from 2009 and the math code in SB v2.5.0 is from 2005, the running speeds seem to be almost identical. I got 0.135sec/iteration using SB (well, PRP 3.2 which uses the same math lib as SB), and 0.133sec/iteration using Prime95 v25.9 on a WinXP Core 2 Duo 1.66GHz. So *maybe* a 1.5% speed increase but more than likely just testing variation.
Can anyone else confirm these benchmarks? Maybe someone actually using SB? Just run SB and look at the log file it creates. There are timestamps so just look at how many seconds it takes between report submissions and how many bits it does between each and convert it to iterations / sec. As long as the k/n numbers you test in each are close enough to use the same size FFT, it will be a valid benchmark.
GIMPS client may also be faster in practice just because there aren't delays where the computation thread stops to ping the server like SB does. These might be significant so if someone wants to help time this, that'd be appreciated as well.
The main benefits of upgrading this way may be because of the multi-cpu support and the separate worker and communication threads.
Grabbed 4 tests, seems to work fine. Looks like since it is queuing up work, I'll actually end up with around 12 tests checked out.
Running one instance of SoB, I get 0.031 sec/iter
Running one worker thread on one logical CPU in GIMPs, I get 0.027 sec/iter (approx. 15% increase in efficiency)
Running one worker thread on all 8 logical CPU's in GIMPs, I get 0.008 sec/iter, so a definate improvement using GIMPs if you were to only run 1 test at a time (But if you have the cores, I am pretty sure running multiple tests is more efficient overall)
My n's for this are 13278797 for SoB and 13272329 for GIMPs.
It is getting a bit late here, but if you'd like I could run some more tests tomorrow, such as comparing 4 or 8 SoB instances against 4 or 8 worker threads in GIMPS.
This is on an Intel i7 965 w/ Vista 64-bit.
The network comm lag with SoB does take a big chunk of time, especially on faster CPU's, but setting the transmit to every 50 blocks effectively reduces the time spent on this by 98% so I don't think it's a very big deal when set up that way.
If you were to roll this out, I think the main benefit for SoB would be making it easier for Vista folks to run tests and adding the ability for OS X machines to crunch SoB tests.
I've enabled the server to save progress reports now (instead of simply ignoring them) so depending on how often Prime95 sends them (daily?) you may begin seeing stats for your tests.
Go to
http://www.seventeenorbust.com/accou...sPending.mhtml
to see if progress is showing up. Let me know if you figure out whether this is working or a good way to trigger the client to send an update to test this. Even if you just notice that one of your Prime95 tests is listed as having progress let me know.... do the scores look correct?
Also, you can of course expire out your pending tests you check out that you're no longer working on too which may come up depending on the testing you do with this client.
Cheers,
Louie
Benchmarking my computer again with SB (instead of PRP), I'm seeing a roughly 10-20% slow down vs Prime95 too. Wow. That's significant to begin with. No doubt the multi-core optimization make it very effective for most users to install this since they are not using the service version to enable multiple tests.
Also, the comm delay takes about 5-7 seconds on my high-speed cellular connection which adds roughly 0.05 sec / iteration. Works out to adding a 3% slowdown. More if the internet is slow or the computer is faster. As you point out, this can be avoided, but I worry that not everyone is updating their settings as optimally as you and a lot of folks are running with default settings.
I fixed a bunch of minor bugs in the progress reporting and result receiving code.
You should now see cEMs show up if you run NEW tests through Prime95. It may still be broken for a few of the tests already checked out.
The server also accepts factors found during a theoretical P-1 test. I'm trying to force the client to do P-1 testing before prp testing but it has so far resisted the obvious, automatic way that this should be accomplished.
Cheers,
Louie
Not sure how to configure the client, once it's running, but on an I7, I told it 8 worker windows and 8 cpus.
Let's see what happens next. It looks like worker 1 and 2 are doing something, but the others don't appear to be doing anything yet, after about 5 minutes.
Should I just configure it with 4 workers and 8 cpus?
What's optimal for an Intel I7 4 core, 8 core w/HT ?
Edit: 8 minutes into running and all workers are showing progress.
http://www.seventeenorbust.com/accou...sPending.mhtml Shows no pending tests for me yet.
Louie:
I did see a big jump in my work rate graph this morning (about 15 cEMs/sec, which seems about right for the sec/iter I am getting), but the test is not showing any progress in my pending test list. This was reserved before you fixed the bugs though, so when I get a chance I will see what happens with a brand new test.
IronBits:
When I was running SoB on my i7, I ran 8 clients, which would be equivalent to running 8 worker windows on 1 CPU a piece. Right now I am testing with 1 worker and 8 CPU's. Optimally, I believe you want the workers * CPU's to equal your cores, 8 in the case of an i7.
I haven't done the testing to figure out what is optimal on an i7, but I suspect it would either be 8 workers on 1 CPU each or 4 workers on 2 CPU's each.
If the website doesn't show any pending tests for you, make sure you are doing SoB tests and not Mersenne tests. I had this happen when I first set it up because I was just closing the window and not completly exiting the program during installation step 3.
Followed all the instructions, exit the program, added the seventeenorbust line, and in worktodo.txt are the SoB tests, but I also don't see them under PendingTest
(using linux64 prime client)
It looks like I am now getting an error trying to go to my tests pending page. This started happening right after I requested a new test via Prime95. Basically I removed all of my worktodo entries, restarted the client, and it got a new test as expected, but when I went to go expire all the unfinished tests I already received is when I first saw the error.
error: Illegal division by zero at /usr/local/apache/htdocs/sb/account/testsPending.mhtml line 54.
context:
...
50: % my $percent = floor(100 * $proth->{progress} / $proth->{n});
51: % my $start = gmtime($proth->{assigntime});
52: % my $end = "never";
53: % if ($proth->{reporttime}){ $end = gmtime($proth->{reporttime}); }
54: % my $speed = floor($proth->{cems} / ($proth->{reporttime} - $proth->{assigntime}));
55:
56: <tr>
57: <td><% $proth->{id} %></td>
58: <td><% "$proth->{k}•2^$proth->{n}+1" %></td>
Hmm.. the two of you who don't have pending tests showing up... I want you to check a couple things.
1) Did you edit prime.txt to change "V5UserID=" to "V5UserID=louie" where "louie" is your SB username?
2) Did you open the Prime95 preferences panel and save settings? If so, that could be the problem. I've already noticed that Prime95 has a nasty habit of blowing away the "MersenneIP=www.seventeenorbust.com" line in "prime.txt" when you do this. That bug confused me for several hours once already. So just check that "MersenneIP" is still really there.
3) Any tests you currently have are going to stay with whatever username the server assigned them so if one of the above settings was off, you'll need to check out a brand new test before it will register it.
Let me know if these steps help you get tests under your username.
Cheers,
Louie
Still not seeing any tests pending
V5UserID=IronBits
MersenneIP=www.seventeenorbust.com
.049 iteration time on all worker windows
worker 1: 24737*2^13282327+1
I'll blow everything away except .exe and .ini and let er rip again and see what happens.PHP Code:
[Mon Feb 16 12:07:29 2009 - ver 25.8]
Updating computer information on the server
URL: http://v5.mersenne.org/v5server/?v=0.95&px=GIMPS&t=uc&g=45d90c0a9904e53d17ad02aa266feea4&hg=6636b78dd6a066fec074cf1a12d9bde5&wg=74936761282b15117ad0e4518917131f&a=Windows64,Prime95,v25.8,build+4&c=Intel(R)+Core(TM)+i7+CPU+++++++++920++@+2.67GHz&f=Prefetch,SSE,SSE2,SSE4&L1=32&L2=256&np=4&hp=2&m=12279&s=3477&h=24&r=1000&L3=8064&u=IronBits&cn=VISTA&ss=9454&sh=2909257F9AE32AA0523C2F5EC230AC4A
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
g=45d90c0a9904e53d17ad02aa266feea4
u=IronBits
un=IronBits
cn=VISTA
od=0
==END==
Exchanging program options with server
URL: http://v5.mersenne.org/v5server/?v=0.95&px=GIMPS&t=po&g=45d90c0a9904e53d17ad02aa266feea4&nw=2&w=0&Priority=1&DaysOfWork=5&DayMemory=4000&NightMemory=4000&DayStartTime=450&NightStartTime=1410&RunOnBattery=1&ss=19488&sh=C832B40BFB568E763E4D1AFD56BAD43C
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
od=1
==END==
... then at the bottom of the prime.log ...
Getting assignment from server
URL: http://www.seventeenorbust.com/v5server/?v=0.95&px=GIMPS&t=ga&g=45d90c0a9904e53d17ad02aa266feea4&c=7&ss=25985&sh=B8098B2F53F06799DF926FB7CAD8F35E
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
k=000000000000000000000000000ECE42
w=150
A=55459
b=2
n=13282858
c=1
sf=54.0
p1=0
=END=
Got assignment 000000000000000000000000000ECE42: PRP 55459*2^13282858+1
Sending expected completion date for 55459*2^13282858+1: Feb 26 2009
URL: http://www.seventeenorbust.com/v5server/?v=0.95&px=GIMPS&t=ap&g=45d90c0a9904e53d17ad02aa266feea4&k=000000000000000000000000000ECE42&c=7&p=0.0000&d=86400&e=409395&ss=30161&sh=6E17CEFCBD2E5B1411F0B04EAEEBEA7E
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
=END=
[Worker #1]
PRP=000000000000000000000000000ECE78,24737,2,13286191,1,54,0
[Worker #2]
PRP=000000000000000000000000000ECE79,24737,2,13286263,1,54,0
[Worker #3]
PRP=000000000000000000000000000ECE7A,10223,2,13286345,1,54,0
[Worker #4]
PRP=000000000000000000000000000ECE7B,24737,2,13286383,1,54,0
default gave me 4 worker windows, 2 threads each, CPUs are pegged at 100%
When I check to see if I have work reserved
PHP Code:
error: Illegal division by zero at /usr/local/apache/htdocs/sb/account/testsPending.mhtml line 54.
context: ...
50: % my $percent = floor(100 * $proth->{progress} / $proth->{n}); 51: % my $start = gmtime($proth->{assigntime}); 52: % my $end = "never"; 53: % if ($proth->{reporttime} > $proth->{assigntime}){ $end = gmtime($proth->{reporttime}); } 54: % my $speed = floor($proth->{cems} / ($proth->{reporttime} - $proth->{assigntime})); 55:
56: <tr> 57: <td><% $proth->{id} %></td> 58: <td><% "$proth->{k}•2^$proth->{n}+1" %></td> ...
code stack: /usr/local/apache/htdocs/sb/account/testsPending.mhtml:54
/usr/local/apache/htdocs/sb/account/autohandler:6
/usr/local/apache/htdocs/sb/autohandler:68
/usr/local/apache/htdocs/sb/syshandler:20
There we go. The pending page wasn't working at first, but then I went to Advanced>Manual Communication in Prime95 and sent updates and it's working now.
Incidentally, running 4 workers on 2 cpu's each gives me about 0.027 sec/iter per test, which is 0.00675 sec/iter when divided by 4, so about an 18% increase in productivity over running 1 test at a time.
Still need to try 8 workers, but wanted to work out the kinks in the pending test page first.
EDIT: My user id keeps getting set to The_Man every time I close out of Prime95 and go back in. - I wonder if it has something to do with the fact that I don't have a GIMPs account?
Opps, I goofed when I was trying to patch this earlier today. It's hard to re-test because this isn't happening to me. Should be corrected now. Let me know if you can cause this error again.
Thanks a lot for your feedback and testing this. I know it's frustrating cause they are all dumb errors right now but It's really helping a lot.
-Louie
I just checked http://www.seventeenorbust.com/accou...sPending.mhtml and indeed, the work units are now showing up as reserved.
Nice work.
It looks like every time I do a Manual Communication and send new expected completion times to the server my username gets erased.
Normally u=enderak and un=enderak...[Comm thread Feb 21 23:37] URL: http://www.seventeenorbust.com/v5ser...8f7d658297482f
[Comm thread Feb 21 23:37] RESPONSE:
[Comm thread Feb 21 23:37] pnErrorResult=0
[Comm thread Feb 21 23:37] pnErrorDetail=SUCCESS
[Comm thread Feb 21 23:37] g=13eb7d72568d7545a05242d8510cad54
[Comm thread Feb 21 23:37] u=
[Comm thread Feb 21 23:37] un=
[Comm thread Feb 21 23:37] cn=
[Comm thread Feb 21 23:37] od=10
[Comm thread Feb 21 23:37] =END=
Hmm still I don't see pending tests.
this is my config of prime.txt
maybe I am doing something wrong?
V24OptionsConverted=1
SendAllFactorData=1
WGUID_version=2
StressTester=0
UsePrimenet=1
DialUp=0
V5UserID=woolysheep
AskedAboutMemory=1
WorkPreference=4
OutputIterations=10000
ResultsFileIterations=999999999
DiskWriteTime=10
NetworkRetryTime=2
NetworkRetryTime2=60
DaysOfWork=1
DaysBetweenCheckins=1
TwoBackupFiles=1
SilentVictory=0
[PrimeNet]
Debug=1
ProxyHost=
MersenneIP=www.seventeenorbust.com
Last edited by woolysheep; 02-22-2009 at 06:22 AM.
Close Prime95, Delete your worktodo file and Restart to get new assignments.
A number of issues I've resolved the past 48 hours could have caused your current tests to not be properly assigned to you, but I'm hoping they are all fixed now. As for your current tests, nothing will make them go to the right user so just delete your worktodo and retry.
If you still don't get assigned work, please post the end of your prime.log file. Thanks!
Cheers,
Louie
I tried and still no pending tests:
prime.log
worktodo.txt[Sun Feb 22 12:17:42 2009 - ver 25.8]
Getting assignment from server
URL: http://www.seventeenorbust.com/v5ser...C1AEB76A36EC73
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
k=000000000000000000000000000ECEB7
w=150
A=21181
b=2
n=13290572
c=1
sf=54.0
p1=0
=END=
Got assignment 000000000000000000000000000ECEB7: PRP 21181*2^13290572+1
Sending expected completion date for 21181*2^13290572+1: Mar 7 2009
URL: http://www.seventeenorbust.com/v5ser...429B60F53A3614
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
=END=
Getting assignment from server
URL: http://www.seventeenorbust.com/v5ser...AE613F759101FA
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
k=000000000000000000000000000ECEB8
w=150
A=67607
b=2
n=13290651
c=1
sf=54.0
p1=0
=END=
Got assignment 000000000000000000000000000ECEB8: PRP 67607*2^13290651+1
Sending expected completion date for 67607*2^13290651+1: Mar 7 2009
URL: http://www.seventeenorbust.com/v5ser...0787A7372D3EAE
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
=END=
[Worker #1]
PRP=000000000000000000000000000ECEB7,21181,2,13290572,1,54,0
[Worker #2]
PRP=000000000000000000000000000ECEB8,67607,2,13290651,1,54,0
Thanks for the log file. I see what's wrong. The database had registered your computer's ID as being The_Man and no amount of you requesting new work was going to change that. I removed the database entry for your computer, but I want you to check out new work again to make sure it automatically makes it right now.
Repeat the procedure I suggested before of deleting the worktodo and restarting and let me know your results. Thanks for your patient help!
Cheers,
Louie
Still the same no pending test.
logfile again
[Sun Feb 22 13:19:41 2009 - ver 25.8]
Getting assignment from server
URL: http://www.seventeenorbust.com/v5ser...2CE57211210B25
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
k=000000000000000000000000000ECEC0
w=150
A=21181
b=2
n=13291148
c=1
sf=54.0
p1=0
=END=
Got assignment 000000000000000000000000000ECEC0: PRP 21181*2^13291148+1
Sending expected completion date for 21181*2^13291148+1: Mar 7 2009
URL: http://www.seventeenorbust.com/v5ser...04382DD79DEB3D
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
=END=
Getting assignment from server
URL: http://www.seventeenorbust.com/v5ser...5412A1F0442CE6
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
k=000000000000000000000000000ECEC1
w=150
A=21181
b=2
n=13291172
c=1
sf=54.0
p1=0
=END=
Got assignment 000000000000000000000000000ECEC1: PRP 21181*2^13291172+1
Sending expected completion date for 21181*2^13291172+1: Mar 7 2009
URL: http://www.seventeenorbust.com/v5ser...030118D9AFDB09
RESPONSE:
pnErrorResult=0
pnErrorDetail=SUCCESS
=END=
well, the good thing about this is it is still checking out tests for the anonymous user if something goes wrong, so that's a plus.
I think I understand what's going on but I'm not positive. Can you just delete your entire file structure and unzip it and retry again? I think your local.txt file is somehow telling your computer it doesn't need to re-send it's info even though it does. Cause there are 12 other users who got put into the user table for this, but just not you.
But I'm learning from this so yeah, blow it all away and restart and see if THAT complete it and then I'll know it was only a temporary hold-over error caused by previously resolved bugs. Thanks!
Cheers,
Louie
Complete new install and still it doesn't show up in the pending test under my username.
local.txt
OldCpuSpeed=1000
ComputerGUID=15f78b0f18315b207fd3f953f4841579
ComputerID=woolysheepPC
Memory=800 during 7:30-23:30 else 800
Affinity=100
ThreadsPerTest=1
Pid=17298
SrvrUID=2061435891
SrvrComputerName=2061435891
SrvrPO1=4
SrvrPO2=1
SrvrPO3=5
SrvrPO4=800
SrvrPO5=800
SrvrPO6=450
SrvrPO7=1410
SrvrPO8=1
SrvrPO9=2
SrvrP00=0
LastEndDatesSent=1235327888
RollingAverage=1000
RollingStartTime=0
Last edited by woolysheep; 02-22-2009 at 02:07 PM.
Prime.txt
Worktodo.txtV24OptionsConverted=1
SendAllFactorData=1
WGUID_version=2
StressTester=0
UsePrimenet=1
DialUp=0
V5UserID=woolysheep
AskedAboutMemory=1
WorkPreference=4
[PrimeNet]
Debug=1
ProxyHost=
MersenneIP=www.seventeenorbust.com
[Worker #1]
PRP=000000000000000000000000000ECEF0,21181,2,12965540,1,54,0
[Worker #2]
PRP=000000000000000000000000000ECEF1,67607,2,12965651,1,54,
It should show up in your stats once the test is completed. The first test I completed did at least.
Louie,
It looks like there's still some bugs with the tests pending page getting progress updates. All of my Prime95 tests show a progress of only 1 or 2 iterations and a cEMs/s of about 1.5M when they should be closer to 4-5M each.