Instructions for RobsECDL, version: Alpha 111. Get the binaries or else get the source code and compile with something like: gcc-2.8.1 -O4 -mcpu= ecdl2K-95.c -o ecdl or: cc -migrate -O5 -tune -std1 ecdl2K-95.c -o ecdl where is ev4, ev5, or ev6 for 2106x, 21164 or 21264 respectively. NB: To compile with an old version of gcc that barfs with "Internal compiler error", use -O1 instead of -O4. You can test it like this: > ./ecdl test me Testers bla bla bla RobsECDL, version: Alpha 111. Mode ...... test User ...... me Team ...... Testers Machine ... bla Hardware .. bla OS ........ bla Comment ... none Generating new starting points. Computing iterations... TEST|i|000000001EF6|u|06B56322ED188515A586AFA65|v|03EDB38945AFBCDE9657DCFA7|x|0FA87050048C407B7D97ED5FF|y|11C0C6424B2B24E7E91048EE3|RobsECDL|Alpha 111|me|Testers|bla|bla|bla|none Iterations during this run = 126816 at 148581/sec TEST|i|000000006C46|u|063F273D69DBE865D0CD55A7B|v|043CCACECAB5CD7FE0EF8F887|x|1D32D79937C804ADC18FBB644|y|1B51DEDED7F69BE23347FD1DF|RobsECDL|Alpha 111|me|Testers|bla|bla|bla|none Iterations during this run = 443488 at 148701/sec TEST|i|00000000749A|u|0127163445B0E14EFDA68D39D|v|02BD503025BD67F9FE613274B|x|0E1D273C0CBA771AEDF1C8478|y|14188F5A366133D10B116FAB2|RobsECDL|Alpha 111|me|Testers|bla|bla|bla|none Iterations during this run = 477600 at 148606/sec TEST|i|00000000AF7C|u|0521F58E5C594BBAD63E26A15|v|028DB24A0027D981571FB6489|x|066C85FDB9043A980857D2308|y|165B80C3B0B4DBBE1CA5A16A7|RobsECDL|Alpha 111|me|Testers|bla|bla|bla|none Iterations during this run = 718784 at 148604/sec TEST|i|0000000111A6|u|0613A0215CBE151F85039BCB5|v|016768D19059909355EFBF020|x|174ED52AC4F55A00134A41EA4|y|1ABCBB6A79177BA7BDDA8C3A9|RobsECDL|Alpha 111|me|Testers|bla|bla|bla|none Iterations during this run = 1120864 at 148655/sec [...and so on...] Everything should match except for the iterations per second (typical numbers are 40 to 50 K on a 300 MHz ev4 and 130 to 150 K on a 500 MHz ev5). If you're not sure which chip version you have, you could try both ev4 and ev5 and compare the speeds (if you had ev6 you'd know all about it :). Then on each machine you want to run on, make a directory for that machine, 'cd' into it and run the real thing! mkdir `uname -n` cd `uname -n` nohup nice ../ecdl [...arguments, see below...] > ecdl.log & The arguments have the following syntax: ecdl { } : Either "test", "mail", "alt" or "batch". : Something to identify you by e.g., your email address. : Name of the team you are on e.g., one you just made up! : The machine name e.g., as given by "uname -n". : The machine hardware type e.g., as given by "uname -m". : The OS name e.g., as given by "uname -s". : Optional extra text. None of these fields should contain the | character (but they can contain spaces and stuff as long as you use 'single quotes' around the fields concerned on the command line). Examples: ecdl mail 'Robert Harley' INRIA corton '500 MHz 21164a' Linux ecdl mail biff@skool 'Hackerz from Hell' `uname -n` `uname -m` `uname -s` ecdl batch anon 'Anonymous People' bla bla bla 'Yo dude, check this out!' Test mode quickly produces some (useless) output to stdout along with info on iterations per second. This allows you to compare compilers, optimisation flags etc. If you change the code, compare your test output with the example given above. Mail mode emails a result back to ecdl@pauillac.inria.fr every few hours or so (as well as writing it to stdout). INRIA's excessively aggressive spam filters might refuse the email; in that case switch to "alt" mode which sends to robert@vlsi.cs.caltech.edu instead. For machines not permanently connected to the Net, "batch" mode only writes the results to stdout, so you should redirect that to a log file and email the file by hand once in a while. When the program is running and you want to stop it, find it's PID (second column of the 'ps' output) and send the TERM signal: ps uxw | grep ecdl kill This saves the program's internal state in a file to avoid losing any work. When you restart in the same directory: nohup nice ../ecdl [...arguments...] >> ecdl.log & the program will read the saved state file, if it exists, and continue. Otherwise it will generate a new starting state and work from there. (The reason why each machine should have it's own directory is to avoid the saved states getting mixed up!) Note that test mode doesn't mess with the saved state. NB: If you compile on Digital Unix with -non_shared and run on Linux then use batch mode, since otherwise the compiled program will look for /sbin/sh whereas Linux has /bin/sh instead. NB: If you are interested in an OpenVMS version, please contact John Sager (jcs@zoo.bt.co.uk) and cc me (Robert.Harley@inria.fr).