Thanks Ian. I run these batches overnight, but it won't hurt to add 'set priority to idle'. I am running an i7 processor, so I'll also add 'set threads to 4'. The whole point of this exercise is that I ran across a ton of match files from 15-20 years ago and I'm interested in the difference in analysis over the years. I even located my copy of Snowie4.
Chris On Tue, Mar 2, 2021 at 1:35 AM Ian Shaw <[email protected]> wrote: > Hi Chris, > > I think Jim is recommending that you have a copy of .gnubg/gnubgautorc.rc > with your preferred settings for batch analysis. > > In the batch file, before running gnubg, you can have > > rename .gnubg/gnubgautorc.rc .gnubg/gnubgautorc.rc.play and > rename .gnubg/gnubgautorc.rc.batch .gnubg/gnubgautorc.rc. > > run gnubg bg with commands > > Then do the reverse at the end of the batch file to restore the original > settings. > > I don’t see much difference between doing that and loading a command file > within gnubg. I suppose the main point is to, whichever way you do it, > restore the settings that you use when not doing batch analysis, if they > are different to your regular settings. > > Set threads n is the command to use to specify a number of threads. You’d > have to look up the number of cores your processor has, and double it if > you have a multithreading processor like an i7. > > I’d do it differently though. I’d use set priority low or set priority > idle. This would let gnubg use all the power when nothing else is > happening, but back off on hogging resources when you’re doing other stuff. > I have set priority idle as a permanent setting. > > Cheers, > Ian > > From: Bug-gnubg [mailto:[email protected]] > On Behalf Of Chris Wilson > Sent: 02 March 2021 02:12 > To: Philippe Michel <[email protected]> > Cc: [email protected] > Subject: Re: No command line? > > Thanks to everyone for the information. Ok, I put the following lines into > a file called matches01.txt: > > --- > set cache 1048576 > set cube use on > > set analysis movefilter 1 0 4 12 0.32 > set analysis movefilter 2 0 4 12 0.32 > set analysis movefilter 2 1 -1 0 0 > set analysis movefilter 3 0 4 12 0.32 > set analysis movefilter 3 1 -1 0 0 > set analysis movefilter 3 2 0 4 0.08 > set analysis movefilter 4 0 4 12 0.32 > set analysis movefilter 4 1 -1 0 0 > set analysis movefilter 4 2 0 4 0.08 > set analysis movefilter 4 3 -1 0 0 > > set analysis cubedecision eval plies 4 > set analysis chequerplay eval plies 4 > > set analysis luckanalysis plies 2 > set analysis luckanalysis prune on > > import mat 'G:\NewMatches\scoper10.mat' > analyze match > save match 'G:\NewMatches\Analyzed\scoper10.sgf' > relational add match > --- > > I then executed the command gnubg-cli.exe -c matches01.txt and I received > an 'Invalid argument' error. (I'm on Windows 10) I removed the quotes from > around the paths and the error went away. (The quotes were a requirement 15 > years ago) With respect to the "set analysis" parameters, are you saying > to place them into a separate file and then issue a "load commands > <parameters file>" from within the script? > > BTW, what do I issue to set the threads to half the cores? > > Chris > > On Mon, Mar 1, 2021 at 2:26 PM Philippe Michel <[email protected]> > wrote: > On Mon, Mar 01, 2021 at 09:23:49PM +0100, Jim Segrave wrote: > > > And I then run gnubg: > > > > /usr/local/bin/gnubg -t -c /tmp/4413280.cmd > > > > This works exactly as it should > > On Windows the equivalent of gnubg -t is gnubg-cli.exe and the -c option > works juste the same : > %homepath%\AppData\Local\gnubg\gnubg-cli.exe -c cmdfile.cmd > or something similar. > > > My advice for setting options like the luckanalysis ones would be to > > save your current .gnubg/gnubgautorc.rc file and replace it one with the > > settings you want here, then put the original back when you're done. > > Unfortunately, there's no command line option to specify the > > configuration file to use. > > The gnubgautorc file is huge and full of irrelevant parameters. It would > probably be simpler to start the analysis command files with a "load > commands <parameters file>", the parameters file containing the kind of > commands Chris shows at the beginnig of his script. > > FWIW, for 4 ply analysis I use: > > set cube use on > > set analysis movefilter 1 0 4 12 0.32 > set analysis movefilter 2 0 4 12 0.32 > set analysis movefilter 2 1 -1 0 0 > set analysis movefilter 3 0 4 12 0.32 > set analysis movefilter 3 1 -1 0 0 > set analysis movefilter 3 2 0 4 0.08 > set analysis movefilter 4 0 4 12 0.32 > set analysis movefilter 4 1 -1 0 0 > set analysis movefilter 4 2 0 4 0.08 > set analysis movefilter 4 3 -1 0 0 > > set analysis cubedecision eval plies 4 > set analysis chequerplay eval plies 4 > > set analysis luckanalysis plies 2 > set analysis luckanalysis prune on > > > > On 3/1/21 2:55 PM, Chris Wilson wrote: > > > Years ago I would batch analyze my matches. I wrote a program that > > > created entries in the following format (minus the dashes): > > > > > > --- > > > set cache 65536 > > > set Priority Idle > > > set analysis luckanalysis plies 2 > > > set analysis luckanalysis reduced 2 > > > set analysis luckanalysis cubeful on > > > > > > import mat 'G:\NewMatches\scoper10.mat' > > > analyze match > > > save match 'G:\NewMatches\Analyzed\scoper10.sgf' > > > relational add match > > reduced is not used any more but everything else should still work. > Maybe set cache larger since current computers have plenty of memory, or > rely on the default value set from the GUI. Maybe set threads to some > value lower than the number of cores of your machine (half of them ?) if > you run that while doing something else. > > > > I would like to accomplish the same task at > > > 4-ply as well as automate rollouts on some matches. > > "Automating rollouts on a match" is tricky. There are commands to mark > moves or cube decsions to be rolled out later. That's fine from the GUI > or to roll out a list of positions with command files like: > > set matchid cAm1ABAAGAAA > set board f/sAACDsdgsKAA > hint > cmark move set rollout 1 2 > analyse rollout move > save position pos.sgf > > or > > set matchid cAmgABAAGAAA > set board //YAAEDtthsAAA > hint > cmark cube set rollout > analyse rollout cube > export position text pos.txt > > But there is no easy way to select them automatically in a whole match. > A way to do this would be to analyse it at, say, 3 ply, and have commands > like: > > cmark move set rollout analysed plies 3 > cmark cube set rollout analysed plies 3 > analyze rollout match > > to roll out the errors and the decisions close enough for the move > filters to select them for 3 ply analysis. > > alas, the first two don't exist... It may be possible to do this with > the python interface, or to add the above commands to gnubg. >
