Networking Prime95:
PrimeNet Server for NT 4.0
Parallel Technology for the Great Internet
Mersenne Prime Search
Updated 01/06/98
PrimeNet 3.0 Features PrimeNet 2.6 Passes the 100 Site Mark!
NEW STUFF!
|
PrimeNet 2.6
Demographics*
Now 101 installed server sites!
31 U.S. ISP users (13.com, 18.net)
20 unspecified domain type sites
18 international ISP users
... (4:de,3:nl,2:no,1:au,be,ca,ch,cz,fr,it,th,uk)
10 commercial businesses
6 .edu universities
1 .mil U.S. military base
1 .org dialup ISP
*as of 10/22/97 - download server
names
excluding repeats for updates, Parallel Test
Challenge sites and source code built sites
(221 run-time licenses downloaded)1
out of every 5 web visitors
downloads PrimeNet software
20% of you
have something in common...
Easy, mass Mersenne test
production! |
Contents
~ HOME ! PARALLEL
TEST CHALLENGE @ INSTALLATION # ADMIN
GUIDE $ TIPS & HELP %
Introduction
PrimeNet is about more easily running many concurrent
Mersenne number tests for the Great Internet
Mersenne Prime Search project. The free software, below, can let you access and use
the Internet PrimeNet Server, or operate your own testing network.
THINGS TO DO USING PRIMENET!
If you are interested only in testing Mersenne numbers,
you can skip directly to the PrimeNet Parallel Test
Challenge, which is a complete 'kit' for starting a test setup on the Internet. We
provide the server and manage the testing for you!
If you are already running Prime95.exe or NTPrime.exe
15.2, testing exponents for the GIMPS project, you can also connect to the Internet Prime
Server for test assignments and results collection.
PrimeNet has two parts: the PrimeNet server, and the
PrimeNet client DLL. Both are currently available for Windows NT and Windows 95/98.
PrimeNet 2.6 Server does not support Prime95 15.1 or 15.2 clients.
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.
PrimeNet's server software coordinates parallel Mersenne
prime tests using any of George Woltman's
Mersenne test programs (14.4 and later)
with the PrimeNet.dll interface on the Internet or an NT network. 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, 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:
non-PrimeNet
n-Parallel
each of n machines has: |
|
PrimeNet
n-Parallel
each of n machines has: |
PrimeNet
network server has:
|
PrimeNet
control console
(often at the server) has: |
prime95.exe
p(exponent)
q(exponent)
database
*factors
results.txt
c:\winnt\prime95.ini*when factoring |
|
prime95.exe
p(exponent)
q(exponent)
*factors
results.txt
PrimeNet.dll
PrimeNet.bin
PrimeNet.spl
c:\winnt\prime95.ini*when factoring |
primesvc.exe
database.bin
results.net
primesvc.log
myOnlineReport.txt
c:\winnt\PrimeNet.ini
|
primecom.exe
PrimeNet.dll
c:\wintnt\prime95.ini
|
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
deleted
- 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
generation, etc.
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
- Robert
(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 and changes to enhance Prime95
for parallel operation
Good luck and happy hunting. Send me bugs, suggestions,
setup problems & ideas.
- Scott Kurowski
kurowski@entropia.com
Prime95 15.2 Beta 3
Today, a thousand accounts are testing well over
3000 Prime95 exponent assignments. using PrimeNet 3.0 as the official Internet
PrimeNet Server for the Great Internet Mersenne Prime Search!
IPS is jointly operated by myself and George Woltman, who
issues assignment test ranges and collects test results received by the server. The IPS
server produces an automatic IPS Top
Producers Awards report, cumulative for exponent test assignments received by IPS.
George separately credits these on his GIMPS
Top Producer Awards.
On 3 January, general availability of Prime95 beta 3
version 15.2 was announced, specifically designed for use with the Internet PrimeNet
Server (IPS), running PrimeNet Server 3.0. The beta software can be downloaded directly
from ftp://ftp.tipjar.com/pub/woltman/prime95b.zip.
The Internet PrimeNet Server (IPS) was upgraded to
PrimeNet 3.0 on 18 October, safely transitioning over 150 Prime95 14.4/PrimeNet 2.6 Parallel Test Challenge clients. Fine-tuning and testing
continued for the next several weeks, while hundreds of GIMPS testers moved to the server
with Prime95 15 beta 1, and later beta 2, 15.1. Now Prime95 15.2 opens proxy and firewall
support as well as putting more Mersenne testing control and tracking into your hands.
Several new features will be rounded out incrementally
over the course of the first few PrimeNet 3.0 and Prime95 15.0 releases.
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
section.
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.
84kb.
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
Server
- NT domain security handling support for security level 1
- Windows 95 and Windows 98 and WinNT 4.0 security
compatibility
- PrimeNet NT 2.6 source code, makefiles &
projects (9/20/97 build) in VC++ 5.0, pnsource.zip.
50kb.
What's in PrimeNet 2.6
Updated 10/26/97
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
results.
PrimeNet 2.6 currently contains these incrementally
delivered features:
- 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
parameter:
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
reports.
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
parameter:
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
transaction rollback:
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
milliseconds:
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
minutes.
- 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
clients.
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.
PrimeNet 3.0 pre-release build Features
The latest PrimeNet software is designed specifically for
Internet-based Mersenne number testing.
- A single test client API using standard
platform-independent Open Software Foundation (OSF) Distributed Computing Environment
(DCE) RPC, making non Win32 platform client interfaces easier to develop to communicate
with PrimeNet 3.0.
- Revised wider database format for tracking
- multiple concurrent Lucas-Lehmer, factoring, or both
overlapped test ranges
- client identification by PrimeNet ID (later by ID and CPU#
for that ID)
- floating point factoring state to log2(largest factor
attempted) bits
- value of smallest factor found or Lucas-Lehmer 64-bit
residue
- time stamps for assignment out, estimated completion, last
assignment activity
- a test program identifier to support programs other than
Prime95.exe
- 16 distinct exponent tracking states
- New test client user account table for PrimeNet server ID
and password, optional name and e-mail address, test and factoring credit, and last
activity time stamp.
- New PrimeNet API operations for tighter tracking coupled
directly into Prime95 15.0, including
- arbitrary updates of estimated completion date for more
accurate server assignment timeout decisions,
or query the server for the estimated completion date to decide to cancel a current
(possibly expired) assignment
- client chooses factoring, Lucas-Lehmer test or
server-decides assignment type
- client-initiated assignment cancellation option
- user ID, name/handle and e-mail address registration and
updating
- Automatic online reports
- Optional daily 'Top Producers' test client CPU time and
factoring count reports.
- Optional hourly exponent testing and completion status
reports.
- Custom, web page form-supplied user info generates custom
test report for individual accounts
- (later builds) Report Summary and separate
tests-in-progress and test-completed pages
- Database maintenance
- Two-phase transaction commits of exponent assignments, the
second phase of which requires an initial estimated completion time for the assignment.
- Online database merge from Woltman's database updates and
completed assignment export
- Optional automatic daily exponent database file backup
with 7-day rotation.
- Automatic daily overdue exponent assignment scan and
overdue exponent checkins for retesting
- User account maintenance
- Remote Prime95 15.0 online user registration with server
- Add, update or inactivate user accounts
- Export user accounts to text file
- Import user accounts from text file
- Test range management
- Activate or inactivate multiple concurrent, overlapping
Lucas-Lehmer and factoring test ranges.
- PrimeNet 2.6 compatibility
- Full operational support for Prime95 14.4 test clients
using PrimeNet 2.6 DLLs (Build 9/21/97)
- Automatic initial conversion of PrimeNet 2.6 database
format to PrimeNet 3.0 format
- Automatic initial conversion of 2.6 PrimeNet.ini [Users]
section creates accounts table
- Automatic initial Lucas-Lehmer and factoring test range
activation using RangeLow, RangeHigh, FactoringRangeLow and FactoringRangeHigh values from
2.6 PrimeNet.ini [PrimeSvc] section.
- Remote management console application for
- test range management
- user account management
- database maintenance
- on-demand online report generation
- manual exponent checkin, checkout and test results posting
Unfinished Work List
Updated 9/23/97
- 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
application.
There are several areas where someone could contribute to
the project:
- 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,
Inc.
>
6 April 1997.