Networking Prime95 14.4:
PrimeNet Server 2.6
The Original Parallel Technology for the
Great Internet Mersenne Prime Search
PrimeNet 2.6 Demographics*
101 installed server sites
31 U.S. ISP users (13.com, 18.net)
20 unspecified domain type sites
18 international ISP users
10 commercial businesses
6 .edu universities
1 .mil U.S. military base
1 .org dialup ISP
*as of 10/22/97 - download server
excluding repeats for updates, Parallel Test
Challenge sites and source code built sites
(221 run-time licenses downloaded)
~ HOME ! PARALLEL
TEST CHALLENGE @ INSTALLATION # ADMIN
GUIDE $ TIPS & HELP %
If you are interested only in testing Mersenne numbers
for the Great Internet Mersenne Prime Search
(GIMPS), you can skip directly to Internet
PrimeNet Server free software section. You will find free, ready-to-use Windows, Linux
and OS/2 software for testing Mersenne numbers for GIMPS on the Internet. We provide the
server and manage the testing for you!
In 1997, I developed PrimeNet Version 2.6 as a free software package to automatically
distribute and manage concurrent, parallel Mersenne number primality and factoring tests
for GIMPS. It uses George Woltman's Prime95 and NTPrime Version 14.4 programs.
Complete documentation for installation, configuration and administration of a working
PrimeNet 2.6 test network is provide on this web site.
This software package does not work with Prime95 15.x, NTPrime 15.x, MPrime 15.x and other
software based on version 15 test programs. These programs did not exist until PrimeNet
2.6 was already in widespread use, and were developed specifically for the official GIMPS
Internet PrimeNet Server (IPS) 3.0. IPS 3.0 was written by Entropia.com using
PrimeNet 2.6 as a prototype. Other ambitious programmers should have no trouble
generalizing PrimeNet 2.6 to their own distributed computing projects.
THINGS TO DO USING PRIMENET 2.6
PrimeNet has two parts: the PrimeNet server, and the
PrimeNet client DLL. Both are currently available for Windows NT and Windows 95/98.
The software is free, including the source code, so long
as you do not sell it, or sell parts of it, or use it as part of a sold product or
service. If you know anything about writing software, you will probably notice the source
code reflects several programming no-nos. I'm quite out of practice, and PrimeNet is just
for fun anyway.
Use of PrimeNet is assumed to be in conjunction with the Great Internet Mersenne Prime Search project. The more
familiar you are with Prime95.exe 14.4, the easier it will be for you to network several
of them using PrimeNet. If you will be setting up PrimeNet so that the client and server
are in different NT domains, some NT security admin expertise might be important.
This server implementation works on NT 4.0 or 3.51
servers or workstations and Windows 95 workstations (in console mode) for:
- an NT Internet or TCP/IP network server with the ncacn_ip_tcp
protocol using a 'real' IP address - no virtual domains
- an NT Microsoft network with the ncacn_np
(\\servername named pipe) protocol
- an NT Internet or TCP/IP network server with the ncadg_ip_udp
datagram protocol - no virtual domains
- a IPX/SPX network with the ncacn_bp_ipx
(\\servername) protocol (untested)
- on an NT or Windows 95 machine using ncalrpc,
(local IPC) - in which case no \\servername is required
The client can be another NT Server, NT workstation or
Windows 95. I have not tried the RPC with a non-Win32 client, but clearly non-Win32 client
support is desirable.
Here's what Prime95 needs for a collection of parallel
test systems before and after installing PrimeNet:
each of n machines has:
each of n machines has:
network server has:
(often at the server) has:
There are a few changes in which files are used by
Prime95 when using PrimeNet:
- The database used by Prime95 has been 'moved' to the
server where it is shared as a single database by all test clients
- Client Prime95 programs each configure which PrimeNet
parallel test server to use in Prime95.ini
- messages in results.txt for each Prime95 client are
duplicated in arrival order in the server's results.net file - and can be periodically
- you send the Prime Server's results.net file to Woltman
instead of each clients' results.txt file
- Everything in the results.net file plus a bunch of server
and client state and timings are also logged to primesvc.log
- PrimeNet.dll acts as a local 'server' to Prime95 that can
get up to 10 exponents and factoring states between server interactions until you connect
to the Prime Server again
- You control the PrimeNet server using a simple command
console application, with support for checkins, checkouts, online database status report
The PrimeNet 2.6 database is 64 bits per record. You
periodically merge updates from the 32-bit databases that George Woltman distributes into
this database using the command console.
Protocol and server identification is done on the
PrimeNet client side configuration. I've tested the TCP/IP configuration on an NT Internet
server but I don't know how loose the firewall must be. The RPC dynamically assigns a port
number greater than 1024, so when using proxys it must support the 'default' port to let
the server assign it.
Special thanks to:
- The Parallel Test Challenge testers!
- Several people who reported a problem and how they
resolved it. The Tips & Help section is
growing with their help. Sometimes I needed them to try a diagnostic test and tell me what
happened, or answer other questions.
- Ken Kriesel for
testing PrimeNet, tips and troubleshooting advice, bug reporting & suggestions
(Robban) Friberg for testing PrimeNet (notice these last two guys are near the top of
George's Top Producer's List...?)
- Duncan Booth who
wrote the prototype PrimeNet 1.x RPC NT server and PrimeNet.dll code
- George Woltman
for the GIMPS project
Good luck and happy hunting. Send me bugs, suggestions,
setup problems & ideas.
- Scott Kurowski
PrimeNet 2.6 Software
When installing updated versions of PrimeNet over earlier
versions please check the Installing Updates to
Earlier Versions section to see if there are special steps necessary to update the
software. Free e-mail support help, as well as known problems or bugs in earlier versions
of PrimeNet, are described in the Tips & Help
Download Free Software:
PrimeNet Freeware License Agreement: PrimeNet
software and source code are licensed for free use if you do not sell it, sell parts of
it, or include it as a part of a sold product or use it for a sold service. PrimeNet
source code, intact or modified, is licensed for use solely with the Great Internet
Mersenne Prime Search project. No warranties or liabilities are assumed, offered or
implied. Use of PrimeNet software and/or source code constitutes implicit agreement with
the terms of this freeware license.
- The complete parallel Mersenne test system,
PrimeNet 2.6 for Prime95 14.4 - primenet.zip (9/20/97
build), includes PrimeSvc.exe NT RPC service, example PrimeNet.ini, client PrimeNet.dll,
example Prime95.ini, Primecom.exe online Prime Server management console application.
Fixes for these bugs, new code and reworked old code are included:
- please see the Tips & Help section for details
- Cancellation of Connection Manager automatic dial-up no
longer hangs Prime95
- Factoring assignment smarts has been added to the Prime
- NT domain security handling support for security level 1
- Windows 95 and Windows 98 and WinNT 4.0 security
- PrimeNet NT 2.6 source code, makefiles &
projects (9/20/97 build) in VC++ 5.0, pnsource.zip.
What's in PrimeNet 2.6
The last major enhancement to PrimeNet 2.6 will be it's
hierarchial server support. This will enable PrimeNet 2.6 servers to be a client of a
PrimeNet 3.0 server, which will assign block exponent test ranges and collect block test
PrimeNet 2.6 currently contains these incrementally
- Build 9/20/97:
- Factoring ability of Prime95 clients is determined by the
exponent value at the time the server assigns it.
Factoring clients no longer need to specify their maximum factoring capacity in bits, in
the Prime95.ini parameter OnlyFindFactors. For Prime95
clients already having OnlyFindFactors=61 set, no change in configuration is required.
- Build 9/4/97:
- Set PrimeNet user IDs and passwords using Primecom.exe -u
The new -u userid^password setting command sets userid=password in the
remote Prime Server's PrimeNet.ini file [Users] section. To set a blank
password simply omit the ^password suffix. See the PrimeNet
Admin Guide to Parallel Testing for details.
- New, improved format for manual and automatic status
The reports now reflect factoring state and composite or prime state for tested exponents.
If a factoring client can factor a Mersenne number better than the current maximum
bit-factored-through value, all those exponents become available for factoring again and
will disappear from the cleared factoring assignment list.
You may also have the report generator include the contents of an external text file in
reports. Set the ReportMessageFile=yourfilename.txt parameter in PrimeNet.ini.,
where yourfilename.txt is the text file you create.
- Build 8/27/97: test code for IPX/SPX protocol support
(protocol operation is unverified).
- Build 8/13/97:
- Improved format for manual and automatic status reports
has labeled, tabular columns.
- Set testing exponent ranges remotely using Primecom.exe -t
The new -t 'test' range-setting command sets RangeLow and RangeHigh
(together), NextRangeLow and NextRangeHigh, FactoringRangeLow
and FactoringRangeHigh, and FactoringNextRangeLow and FactoringNextRangeHigh.
See the PrimeNet Admin Guide to Parallel Testing for details.
- Automatic database consistency checking and uncommitted
The RollbackCheckDelaySec parameter in PrimeNet.ini
specifies how long after Prime Server detects a database inconsistency it starts to check
and rollback uncommitted transactions. The default delay is 4 seconds.
- Build 7/25/97:
- Automatic status report generation:
Prime Server can be configured to produce periodic status reports just like those made
using the 'Primecom -r status.txt' command. The Internet Prime Server is now doing this.
Set the ReportIntervalMins and AutoReportFile values in PrimeNet.ini.
- Optional 'blind' results checkin support:
If there's a possibility a Prime95 client will send its test results to the Prime Server,
yet the tested exponent was not assigned by it, you should consider using the AllowBlindCheckins=1
value in PrimeNet.ini. Setting this tells Prime Server to clear the
tested exponent as completed in its database anyway. If this is missing or set to 0, Prime
Server will operate as before, logging the result, but refusing to update its database
with the unexpected result.
- Internet dial-up enhancements:
Intermittent network connections are no longer a problem! If Prime95 clients try to send a
test result to the Prime Server but the network is not connected, every 90 seconds
thereafter it retrys the connection until it is restored. The retry interval is set in Prime95.ini
by the RetryMs value, in milliseconds. The default is 90000 ms.
When the connection is restored, the retry timer is shut off, the spooled results are
sent, and the assignment stack (if more than 1 exponent) is 'topped off'.
- Build 7/11/97:
- Incomplete exponent assignment rollback timeout, in
You can set the amount of time Prime95 clients have to acknowledge new exponent
assignments to the Prime Server. The default is 2 seconds (2000 ms).
This is set in the server by the value TransactionTimeoutMs in the
server's PrimeNet.ini file. You should only increase this if Prime95
clients are getting assignments and returning results, but the Prime Server times them out
before it gets the client's response back.
- Automatic overdue assignment exponent management:
Prime Server periodically scans the current outstanding exponent assignments however many
minutes you specify by the value CheckIntervalMinutes in the server's PrimeNet.ini
file. The default is once each day, or 1440 minutes. It is not necessary to scan the
database more often than this.
During the outstanding assignment scan, exponents that have been checked out longer than a
drop-dead overdue 'age' are checked back into the database and will later be reassigned to
a different client. You set this by the value DropDeadOverdueMinutes in
the server's PrimeNet.ini file. The default is 90 days, or 129600
- Prime95 client authentication
The PrimeNet Server checks the userid and password sent by the Prime95 program before
permitting the connection to complete.
- Build 7/5/97:
- Factoring Prime95 client support with separate or
overlapping exponent ranges:
You can assign exponents in one test range to factoring Prime95 clients and assign
exponents in a second or even overlapping range of exponents to LL testing Prime95
This is activated in the server by Prime95 identifying itself as a factoring client and
setting the values FactoringRangeLow and FactoringRangeHigh
in the server's PrimeNet.ini file. You can also set the next factoring
range to automatically switch over to when the first is exhausted. If both ranges are
exhausted, factoring clients do not perform LL testing automatically (should it? this
would require changes in Prime95.exe).
When factoring Prime95 clients report "M(exponent) no factors to 2^bb, ..." the
bits factored field in the database is automatically updated with this information.
- Dial-up networking! No lost exponents! PrimeNet can cache
a block of up to 10 exponents at a time and work on them offline from the network until
they are all tested. If something causes Prime95 to lose the exponent being tested,
PrimeNet's cache will replay the test assignment. Results are spooled to a temporary file
when the server can't be reached and replays it when the connection is recovered - even if
Prime95 is terminated and restarted.
Unfinished Work List
- PrimeNet server hierarchy support: a 'master' server
coordinates several PrimeNet servers each testing a block range using an arbitrary number
of Prime95 test clients - requires block exponent assignments.
- Investigating design for a GUI test assignment manager
There are several areas where someone could contribute to
- Develop your own enhancements.
- Adding an install script or wizard.
- Check into non-Win32 RPC for UNIX prime testing clients.
The source code includes the Interface Definition Language file rpcsvc.idl for
the RPC but if this is not enough I can probably offer some help.
- General testing of new versions PrimeNet and Primecom.exe
server control console application.
~ HOME ! PARALLEL TEST
CHALLENGE @ INSTALLATION # ADMIN
GUIDE $ TIPS & HELP %
*Windows NT and Windows 95 are trademarks of Microsoft,
6 April 1997.