Very serious. I will be renting it and it's not even very expensive, about 130 EUR/month because I don't need any resources other than CPU Cores, while Leela doesn't need even those...
Thanks, this is a great tip!...suggest using Ordo in addition to other tools.
Sample command:
./ordo -Q -N 0 -D -a 0 -A "nameofengineusedforzeroElo" -W -n4 -s500 -U "0,1,2,3,4,5,7,8,9,10,6" -p your.pgn
If you stop/restart cutechess-cli matches before normal completion, there are games with '*' results, which Ordo does not like.
For that, just use SCID. Import pgn, search headers to exclude '*' result games, then export pgn.
I myself wrote already a mini-mini pgn tool that at least give some information about how things go:
Code: Select all
java -jar TourneyEval.jar FourTour.pgn
Fruit 2.1: 132.0
Glaurung 2.1: 121.0
OliThink 5.5.8: 79.0
OliThink 5.4.11: 48.0
Here the java src for TourneyEval:
Code: Select all
public class TourneyEval {
public static void main(String[] args) throws Exception {
FileReader fr = new FileReader(args[0]);
BufferedReader bf = new BufferedReader(fr);
Map<String, Integer> engines = new HashMap<String, Integer>();
String buf = null;
String we = "";
String be = "";
while ((buf = bf.readLine()) != null) {
if (buf.startsWith("[White") || buf.startsWith("[Black")) {
int n1 = buf.indexOf('"');
int n2 = buf.indexOf('"', n1 + 1);
String e = buf.substring(n1 + 1 , n2);
if (!engines.containsKey(e)) {
engines.put(e, 0);
}
if (buf.startsWith("[White")) we = e; else be = e;
}
if (buf.startsWith("[Result")) {
int n1 = buf.indexOf('"');
int n2 = buf.indexOf('"', n1 + 1);
int wp = 0;
int bp = 0;
String r = buf.substring(n1 +1, n2);
if ("1-0".equals(r)) {
wp+=2;
} else if ("0-1".equals(r)) {
bp+=2;
} else {
wp++; bp++;
}
engines.put(we, engines.get(we) + wp);
engines.put(be, engines.get(be) + bp);
}
}
bf.close();
fr.close();
while (!engines.isEmpty()) {
String leading = ""; int maxval = -1;
for (String e : engines.keySet()) {
if (engines.get(e) > maxval) {
leading = e;
maxval = engines.get(e);
}
}
System.out.println(leading + ":\t" + maxval/2.0);
engines.remove(leading);
}
}
}