View Single Post
Old 2010-08-30, 21:41   #3
A Sunny Moo
mdettweiler's Avatar
Aug 2007

3·2,083 Posts
Lightbulb LLRnet client setup instructions

The main difference to note between PRPnet and the "new" LLRnet client is that the LLRnet client only can be configured with one server, whereas PRPnet can split its time between any number of servers and have backup servers in case its primary servers go down. Thus LLRnet can be slightly simpler to configure, at the expense of some flexibility. (IMHO, they're both just about as easy to configure, but opinions on this vary both ways.)

To set up the client:
  • Download the latest client for your operating system here. There are a few different versions available there, but for Windows you want v0.73 and for Linux you want v0.71. (Ignore the disparity in version numbers, they're really completely separate programs.)
At this point the instructions differ depending on your operating system. For Windows:
  • First of all, note that the Windows client package includes a preconfigured LLRnet server setup alongside the client. For most users this is not needed and you should ignore it entirely to avoid confusion. Extract just the contents of the "LLRnet_client" subdirectory to a new folder on your computer. You can also extract LICENSE.txt and README.txt from the root directory to the same place if you'd like.
  • Right-click the file do.bat and click Edit. Do NOT double-click on it; this will run the batch file and start the program (which won't work yet since you haven't configured it).
  • At the top of the file you'll see the following lines:
    set op_Iterations=10000
    set op_Timeout=60
    set op_Beep=TRUE
    set op_indPrimeLog=FALSE
    set op_connect=FALSE
    These are your configuration options. They're (sort of) self-explanatory: op_Iterations controls LLR's OutputIterations option (how often it should update the % complete display on the screen); op_Timeout adjusts how long the client should wait before retrying if it can't connect to the server; op_Beep sets whether the computer will make a "BEEP!" sound out of the system speaker when a prime is found (FYI, this often happens even if your volume is muted); op_indPrimeLog sets whether the program should log primes to a file in the client's own directory (TRUE) or in the directory above it (FALSE--useful for multicore systems); op_connect sets whether the client should keep waiting for an unresponsive server to come back online (TRUE), checking every op_Timeout seconds, or shut down after the first failure (FALSE). I recommend leaving op_Iterations and op_Timeout be, setting op_indPrimeLog to true if your system has only one core (but leave it at false if otherwise), and setting op_connect to true. As for op_Beep, that's truly a matter of personal preference.
  • Save and close the file. Now open llr-clientconfig.txt in a text editor (you can double-click this one).
  • Change the server and port lines as follows:
    server = ""
    port = 12050
    Set username to your name here on the forum and WUCacheSize to the amount of pairs you'd like the client to do in each batch. If in doubt here, 1 is a safe option.
  • Save and close the file.
  • Double-click on do.bat to run it. It will fetch the number of pairs specified in WUCacheSize, process them, return them, grab another batch and do it all over again until you hit Ctrl-C to stop the client.
  • If you shut down the client and don't plan to restart it for more than 3 days, run _cancel.bat to tell the server that you won't be processing them (otherwise, it will assume that after 3 days has elapsed). Then run _new.bat to clean out any junk left in the folder. The client will now be emptied out and ready to start afresh on new work when you run do.bat in the future.
For Linux:
  • Note: you must have Perl installed on your system to run this. (Specifically, Perl 5.8 or greater, though it may work with earlier versions and I just don't know it.) Most Linux systems have Perl pre-installed.
  • Extract the zip file to a new directory on your computer.
  • Open in a text editor. Starting at line 15 you'll see the following:
    # Configuration variables, set as desired
    $llrPath = './llr';
    $llrnetPath = './llrnet';
    $beepOnPrime = "false";
    $individualPrimeLog = "false";
    $iniOptions = "OutputIterations=10000\n";
    $errorTimeout = 60;
    llrPath and llrnetPath can be safely left alone. beepOnPrime specifies whether the client should beep the PC speaker when it finds a prime. (Note that this often will occur even if your speakers are muted.) individualPrimeLog tells it whether to log primes to a file in the client's own directory, or in the next directory up (useful for multicore systems). iniOptions lets you specify custom options for LLR, such as OutputIterations (how often LLR should update the % complete figure on the screen); if you want to add more, be sure to affix each with "\n". errorTimeout is how long the client should wait before attempting to reconnect to a downed server.
  • After editing the configuration variables however you'd like, save and close the file. Open llr-clientconfig.txt in a text editor.
  • Set server and port as follows:
    server = ""
    port = 12050
    Set username to your name here on the forum and WUCacheSize to the amount of pairs you'd like the client to do in each batch. If in doubt here, 1 is a safe option. The other options can be safely ignored.
  • Save and close the file.
  • Open a terminal and run the command "perl". Alternately, you can run "chmod +x" and thereafter "./" will work the same. The client will fetch WUCacheSize k/n pairs, process them, return them, and do another batch until you press Ctrl-C to stop the client.
  • To cancel any unfinished pairs in queue, run "perl -c" (or, "./ -c" if you've done the chmod thing).
Note that the Linux client package currently contains LLR v3.8.0. The latest version is 3.8.1, which has a few minor bugfixes. The more major ones don't really affect the kind of numbers TPS does, so you should be OK with 3.8.0, but if you want to upgrade to the latest version you can grab the 3.8.1 for Linux binary at and replace the one in your LLRnet directory with it.

If you have any questions about the LLRnet client, post them here and I or someone else knowledgeable of this stuff will answer them.


Last fiddled with by mdettweiler on 2010-08-30 at 21:48
mdettweiler is offline   Reply With Quote