Only for those that can compile their own. Looking for feedback on usability with Chessbase, Areana, XBoard and others Chess GUIs.
source: https://github.com/MichaelB7/Stockfish/releases/tag/X4
Changes since X3:
https://github.com/MichaelB7/Stockfish/ ... lB7:McCain
Specific item to test:
Now accepts 4 polyglot books
Book1 is primary and should very specific to an opening ( or player)
Book2 is wider than book 1, with the secondary lines of book 2 or expanded to more players
Book3 is wider than book 2 , I recommend Thomas Zipproth NN book
Book4 is the big book, Cerebellum or something else that covers a wide variety of lines.
Play By Elo (Engine_ELo) - check the box and pick your ELo. Rating of 1200 should be about 7 nodes per second if you a TC that provides for about 10 seconds per move ( 1 min with 9 second increment) , Goes up to about 2850 which is the vicinity of 150K nps for McCain
Engine Level - select a predefined level and make sure Play by Elo is not checked, no other box to check.
Also, the Lc0 scoring percentage is now the default, but can be picked switched back to centipawn by the user. 0 means loss, 100 means win and 50 is drawish
From Xboard:
Pre-Release McCain X4
Moderators: hgm, Rebel, chrisw
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Pre-Release McCain X4
I know a lot of folks appreciate the added features, but some folks want to know how does it do against SF. Most of the time, I don't know, since changes are almost always tested again the previous version of McCain.
So fo those that want to see a 500 game match with a time of 5 min with 3 second increment , enjoy!
Results:
https://www.dropbox.com/s/dkazl66lxw6p6 ... a.txt?dl=1
Games:
https://www.dropbox.com/s/cbx3cgyjrlh04 ... s.pgn?dl=1
Early results:
https://www.dropbox.com/s/cbx3cgyjrlh04 ... s.pgn?dl=1
Updates will be at the completion of 20 games or every 789 seconds ( calculated by the script based on time control how often the planned showings are , i.e, every xx games ) I still use Bob Hyatt's testing code he used for Crafty , of course I have modified it over the years and it's fully integrated with his "watcher" script, using env variables - so that the watcher script know the time control and the planned output. The watcher script then calculates a time to display intermediate results that makes sense for the given time control and planned output.
Note all note scripts are for a unix like shell environment - if that does not interest you, you may stop here.
current submit script:
current getelo script
current watcher script:
so far most of these scripts are probably not useful for most people. So if you hung around this long, I wrote script to change a word or phrase globally on multiple files using grep and sed. Using sed and grep is not too difficult for most programmer types, but for others why bother. Well grep and sed are much faster and more versatile than any GUI . The script tis called findNreplace. To use it just type
So here's a little Easter Egg for those who took the time to read this entire post.
findNreplace
and who said csh is dead ? ....
So fo those that want to see a 500 game match with a time of 5 min with 3 second increment , enjoy!
Results:
https://www.dropbox.com/s/dkazl66lxw6p6 ... a.txt?dl=1
Games:
https://www.dropbox.com/s/cbx3cgyjrlh04 ... s.pgn?dl=1
Early results:
https://www.dropbox.com/s/cbx3cgyjrlh04 ... s.pgn?dl=1
Updates will be at the completion of 20 games or every 789 seconds ( calculated by the script based on time control how often the planned showings are , i.e, every xx games ) I still use Bob Hyatt's testing code he used for Crafty , of course I have modified it over the years and it's fully integrated with his "watcher" script, using env variables - so that the watcher script know the time control and the planned output. The watcher script then calculates a time to display intermediate results that makes sense for the given time control and planned output.
Note all note scripts are for a unix like shell environment - if that does not interest you, you may stop here.
current submit script:
Code: Select all
#!/bin/csh
#set echo on
# Round Robin Submit
# set time limit and increment this is probably all that needs to be
# changed in this script, and most of the time this doesn't change
# either. positions_per_match tells the thing how many matches to run
# per job. as this increases, load balancing suffers, but the time per
# job goes up which can be useful if running against other users that
# submit long-running jobs. Note that the times are in 10ms units, so
# time = 1000 = 10 seconds, inc = 5 = 50ms (0.05 seconds)
#
#tidy things up
set skipper = 0
if ( $skipper > 0 ) goto skipcleanup
rm -rf run
mkdir run
rm pgn.*
rm game.* log.*
rm -rf elo*.txt
./resubmit_clean_match
#echo "In cleanup loop"
skipcleanup:
setenv threads 1
setenv base 60 ## in seconds
setenv inc_factor 1 #base times inc_factor equals increment
setenv display_results 20
setenv inc_ratio 100 # use 60 for 60 + 1 sec, use 100 for 60 +.6 sec etc
set hours_rt = 1 ## set runtime in hours
set minutes_rt = 0 ## set runtime in minute
set plug = 0
set tar_num_pos = 250 ### target number of positions , currently 250
set position = 0 #you can change this to start @ different position in the file
@ startposition = $position
setenv cpus 12
@ hosts = ($cpus / $threads) #### set hosts to 12/cpus
setenv hosts $hosts # hosts equals number of concurrent active games
set hash = 256
set eng1 = stockfish.ini
set eng2 = McCain-X4.ini
set opponents1= ( $eng1 $eng2 )
set opponents2= ( $eng2 $eng1 )
set players1 = $#opponents1
set players2 = $#opponents2
@ players_factor = $players1 * ( $players2 - 1 )
setenv players_factor $players_factor
set positions_r = $tar_num_pos ### when posiitons are enter , return positions , default is 200
@ tar_num_pos = $tar_num_pos * 10
@ positions_r = $positions_r * 10
set i = 0
while ( $i < 3 )
@ i = $i + 1
@ runtime = ($minutes_rt * 60 * $tar_num_pos + $hours_rt * 3600 * $tar_num_pos ) / ($positions_r )
echo "Base: $base seconds"
@ time = $base * 100 ##match program uses centiseconds
set inc = `echo "scale=4; ($inc_factor * $base) / $inc_ratio" |bc -lq`
echo "increment $inc seconds"
set t_inc = `echo "scale=0 ; $inc * 60 / 1" |bc -lq`
echo "t_inc $t_inc"
@ inc_centi = `echo "scale=0; (($inc * 100) / 1)" |bc -lq` # change $inc to centiseconds for match
@ t_time = $base + $t_inc
set total_game_time = `echo "scale=0 ; ( 2 * $base + $inc * 195 ) / 1" |bc -lq`
setenv total_game_time $total_game_time
echo $t_time total player time
echo $total_game_time total game time
@ Expectedtime = ($players_factor * $tar_num_pos * $total_game_time) / $hosts / 10 #odd, that this needs to be divided by 10
set secs = $Expectedtime
set h = `echo $secs/3600 | bc`
set m = `echo "$secs/60 - 60*$h" | bc`
set s = `echo $secs%60 | bc`
echo "Expected playing time: $h h: $m m: $s s"
sleep 3
set games_per_position = 1
@ positions = (( ( $runtime * 40 * $hosts) / $cpus / $t_time / $players_factor / $games_per_position ) + $plug)
if ($positions == $tar_num_pos) then
goto nextstep
endif
if ($positions_r == $tar_num_pos ) then
@ positions = $positions_r
goto nextstep
endif
@ positions_r = (( ( $runtime * 40 * $hosts) / $cpus / $t_time / $players_factor / $games_per_position ) + $plug)
@ ret_pos = $positions_r
# echo $positions positions debug info for testing
# echo "$positions_r pos_r line 147"
# echo "$ret_pos ret_pos line 148"
echo "target $tar_num_pos positions $positions"
end
nextstep:
@ positions = $positions / 10
@ tar_num_pos = $tar_num_pos / 10
echo $positions positions
if ($positions != $tar_num_pos) then
echo ""
echo "ERROR"
echo "$positions positions does not equal target $tar_num_pos"
echo "Adjust time or target and retry ..."
exit
endif
echo ""
echo "QUIT NOW or forever hold your peace..."
sleep 2
set file = DrSullivan250.epd
set time_odds = 1
set positions_per_match = 1
@ rounds = $positions * 2
echo "using $positions positions from EPD file"
@ gamesPlanned = ( $players1 ) * ( $players2 - 1 ) * $positions * $games_per_position
setenv gamesPlanned $gamesPlanned
echo $gamesPlanned "games planned"
@ runtime = $gamesPlanned * $total_game_time / $hosts
setenv runtime $runtime
echo "$rounds rounds : $total_game_time total_game_time"
echo "runtime : $runtime"
sleep 2
@ counterStart = (( $gamesPlanned / ( $positions * $games_per_position ) ) * $display_results / 2 + $hosts )
@ counterIncrement = ( $counterStart - $hosts )
echo "$counterStart"
echo "$counterIncrement"
cd run
set logid1 = 101
set logid2 = 50101
set logid3 = 10001
set logid4 = 5000101
rm -f commands
@ pairings = 0
set counter = 0
set gamesStarted = 0
@ gamesPlanned = $gamesPlanned + ( 2 * $startposition )
loop:
@ position = $position + 1 # start at the 1st position
#@ position = `jot -r 1 1 40457` #use for picking positions at random from a 40,000 position plus epd file
foreach player1 (`jot $players1`)
foreach player2 (`jot $players2`)
if ($opponents1[$player1] == $opponents2[$player2] ) goto skip # do not want engines to play themselves
echo "./match "match$position.$player1" $file $position $games_per_position $positions_per_match $time $inc_centi $opponents1[$player1] localhost $logid1 $opponents2[$player2] localhost $logid2 $time_odds" >> commands
@ logid1 = $logid1 + $games_per_position * $positions_per_match
@ logid2 = $logid2 + $games_per_position * $positions_per_match
@ pairings = $pairings + $games_per_position
@ completed = ( $pairings - $hosts + 1 + ( 2 * $startposition )) # for match restarts
@ gamesStarted = $pairings - $counter
if (( $gamesStarted + 1 ) < $counterStart ) goto skip
echo "echo " "" >> commands
echo "echo " "" >> commands
echo "echo "$completed of $gamesPlanned games completed..."" >> commands
echo "echo "Time control: $base seconds + $inc seconds"" >> commands
echo "echo "Threads = $threads"" >> commands
echo "echo "Hash = $hash"" >> commands
echo "./geteloRR1" >> commands
echo "echo " ">>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "echo "$completed of $gamesPlanned games completed...">>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "echo "Time control: $base seconds + $inc seconds ">>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "echo "Threads: $threads ">>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "echo "Hash: $hash ">>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "./geteloRR2>>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "cp pgn.txt /Users/michaelbyrne/Dropbox/Shared\ Folder/all.txt" >> commands
echo "rm -f game.* log.*" >> commands
@ counter = $counter + $counterIncrement
skip:
end
end # round is completed with both colors scripted
### echo "rm game.* log.*" >>commands
if ($pairings < $gamesPlanned ) goto loop
echo "EOF" >> commands
touch run.1
foreach file (run.*)
rm $file
end
@ record = 0
foreach run ({0,1,2,3,4,5,6,7,8,0}{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9})
if ($run == "00000") continue
@ record = $record + 1
set command = `cat commands | head -$record | tail -1`
if ($command[1] == "EOF") break
touch run.$run
echo "$command &" >> run.$run
echo "wait" >> run.$run
chmod +x run.$run
if ($command[1] == "EOF") break
end
if ($run == "99999") then
echo "ERROR, more than 99999 commands, fix script and retry"
exit
endif
echo "$record run scripts were prepared."
echo "$gamesPlanned games were planned"
set started = `date +%m/%d/%y' : '%H:%M:%S`
set started_s = `date +%s`
echo "Match started: $started"
@ target_compl = $started_s + $runtime - 14400
## adjust for time zone difference between EST and GMT in seconds
set t_c = `date -u -r $target_compl +%m/%d/%y' : '%H:%M:%S`
echo "Target completion: $t_c"
echo
echo "Base: $base seconds"
echo "Increment: $inc seconds"
sleep 2
setenv engine_count $players2
#open -a Terminal /Users/michaelbyrne/cluster.mfb/watcher
/Users/michaelbyrne/cluster.mfb/watcher &
cd ..
#
# Now we are going to cycle through each version that is to be tested. we
# will run a complete test with that version, then we will save the summary
# information and run the next test, until all have been completed.
#
# we use the "autosub" program that submits just enough jobs to keep a
# specified number of processors busy. As one finishes, another is submitted
# via qsub to take its place, until all matches are run.
#
#
# note: if you are running on just one machine (regardless of the number of
# cores, comment out the "./setup" below
# for RR , section can be cleaned up, but you have to be careful not to break
# the script
touch honeyElo.txt
echo '25.1 initial calibration for 25.0 25.1 with new opponents' >> honeyElo.txt
# cp .craftyrc .craftyrc.save
set now = `date +"%m%d%H%M"`
foreach scale ( 1 )
foreach version ( RR-$now )
# ./cleanfiles
#./setup
echo "scale $scale" >> .craftyrc
./autosub
#
# The test has finished, now we just save the results and we are done.
#
#echo off
echo " "
@ pairings = $pairings + (2 * $startposition)
echo "$rounds rounds and $pairings games completed..."
echo "Time control: $base seconds + $inc seconds"
echo "Target completion: $t_c"
./geteloRR1
./getfiles
### IDs pgn file at end
./resubmit_mv
###
echo "%s/$version/$version-$scale/g" > excmd
echo "wq" >> excmd
./rename
echo " " >>~/Dropbox/Shared\ Folder/elota.txt
set current_time = `date +%s`
@ time_spent = $current_time - $started_s
set time_spent = `date -u -r $time_spent +%T`
echo "Time to complete: $time_spent"
echo "Time to complete: $time_spent" >>~/Dropbox/Shared\ Folder/elota.txt
echo "$rounds rounds and $pairings games completed..." >>~/Dropbox/Shared\ Folder/elota.txt
echo "Time control: $base + $inc seconds " >>~/Dropbox/Shared\ Folder/elota.txt
echo "Threads = $threads" >>~/Dropbox/Shared\ Folder/elota.txt
echo "Hash = $hash" >>~/Dropbox/Shared\ Folder/elota.txt
echo " " >>~/Dropbox/Shared\ Folder/elotb.txt
echo "$rounds rounds and $pairings games completed..." >>~/Dropbox/Shared\ Folder/elotb.txt
echo "Time control: $base + $inc seconds " >>~/Dropbox/Shared\ Folder/elotb.txt
echo "Threads = $threads" >>~/Dropbox/Shared\ Folder/elotb.txt
echo "Hash = $hash" >>~/Dropbox/Shared\ Folder/elotb.txt
./geteloRR4>> ~/Dropbox/Shared\ Folder/elota.txt
touch master.pgn
rm game.* log.*
echo `date` >> honeyElo.txt
echo "time control = $base + $inc seconds " >> honeyElo.txt
./geteloRR3 >> honeyElo.txt
./geteloRR3 >>~/Dropbox/Shared\ Folder/honeyElo.txt
cp .craftyrc.save .craftyrc
end
end
rm pgn pgn.* games.pgn
exit
Code: Select all
#!/bin/bash
#foreach host (`cat hosts | awk '{print $1}'`)
#set comment = `echo $host | fgrep "#" | wc -l`
#if ($host != "local" && $comment == 0) then
#echo "copying files from $host..."
#scp {$host}:~/cluster.test/match\?.\* . >& /dev/null
dat=`date +"%D"`
#echo "Current date : time (EDST)"
nowt=`date +"%T"`
echo "Date: $dat : $nowt"
num=($(seq 1 24))
for i in "${num[@]}"
do
cat match*.$i >pgn.$i -type d 2>/dev/null
done
rm pgn.txt
for i in "${num[@]}"
do
cat pgn.$i >>pgn.txt
done
cp pgn.txt games.pgn
bayeselo <<eof | egrep -i "\-|Honey|Fair|Top|McC|S_XPrO|shash|McB|And|SF|gf|Cra|nat|ceebo|cor|Sweet|Mat|EXc|Ari|Sun|Gir|Houd|Brain|cf|Ether|Sting|Glaurung|Bla|Hawk|Mik|k|fruit|toga|Igor|Ippo|Ivan|robb|crit|chen|vajo|Gull|prot|fire|rank|deep|stock|texe|senp|hakk|aras|komo|craf|Sugar|shre|Hiar" |sed -e 's/ResultSet-EloRating>ResultSet-EloRating>//g'|sed -e '1,3d;$d' |sed -e 's/ResultSet-EloRating>ResultSet-EloRating>//g'|sed -e '1,3d;$d' |sed -e 's/ResultSet>ResultSet>ResultSet-EloRating>3100//g' |sed -e 's/ResultSet-EloRating>//g'
readpgn pgn.txt
elo
offset 3100
confidence 0.95
mm 0 1
ratings
x
eof
Code: Select all
#!/bin/csh
#set echo on
#sleep 600
cd /Users/michaelbyrne/cluster.mfb
clear
./getfiles
echo " "
set in_progress = `ps -ef | grep autosub | grep -v grep | wc -l`
@ in_progress = $in_progress - 1
if ($in_progress < 1) then
echo "No match in progress."
else if ($in_progress > 0) then
set started = `date +%m/%d/%y' : '%H:%M:%S`
echo "Match started: $started"
echo "$in_progress game currently running"
endif
echo " "
set cpus = $cpus
set base = $base
set inc_ratio = $inc_ratio # use 60 for 60 + 1 sec, use 100 for 60 +.6 sec etc
set display = $display_results
set total_game_time = $total_game_time
set gamesPlanned = $gamesPlanned
set hosts = $hosts
echo "total game time: $total_game_time"
set loopsleep = 5
set loopsleep2 = 5
@ sleep_initial = ( $total_game_time * $display_results * $players_factor ) / ($hosts * 3)
@ sleep_use = (($sleep_initial * 3 ) / 5 )
echo "initial sleep $sleep_initial seconds"
@ sleep_display_quarter = $sleep_use / 4
set spi = $sleep_initial
printf ""
while ($spi > 9)
if ( $spi % 5 == 0 ) then
goto work
endif
printf " ...seconds remaining: $spi \r"
sleep 1
@ spi = $spi - 1
end
work:
while ($spi > 5)
printf " ...seconds remaining: $spi \r"
sleep $loopsleep
@ spi = $spi - $loopsleep
end
while ($spi > 0)
printf " ...seconds remaining: $spi \r"
sleep 1
@ spi = $spi - 1
end
printf " ...seconds remaining: 0 \r"
printf ""
loop:
printf ""
./getfiles
set in_progress = `ps -ef | grep autosub | grep -v grep | wc -l`
@ in_progress = $in_progress - 1
if ($in_progress < 1) then
goto quickexit
endif
echo " "
./geteloRR1
echo " ">>~/Dropbox/Shared\ Folder/elota.txt
./geteloRR2>>~/Dropbox/Shared\ Folder/elota.txt
cp games.pgn ~/Dropbox/Shared\ Folder/
cat pgn.txt >act.pgn
cat pgn.txt >pgn
echo " "
set in_progress = `ps -ef | grep autosub | grep -v grep | wc -l`
@ in_progress = $in_progress - 1
if ($in_progress > $hosts * 3 / 4 ) then
echo "Match in progress, $in_progress games are running..."
set secs = $sleep_use
echo "sleep seconds $sleep_use"
while ($secs > 9)
if ( $secs % 5 == 0 ) then
goto work2
endif
printf " ...seconds remaining: $secs \r"
sleep 1
@ secs = $secs - 1
end
work2:
while ($secs > 5 )
printf " ...seconds remaining: $secs \r"
sleep $loopsleep2
@ secs = $secs - $loopsleep2
end
while ($secs > 0)
printf " ...seconds remaining: $secs \r"
sleep 1
@ secs = $secs - 1
end
printf " ...seconds remaining: 0 \r"
echo " "
goto loop
endif
echo " "
if ($in_progress < $hosts * 3 / 4 + 1 ) then
echo "Match in progress, $in_progress games running..."
echo "Wrapping up soon!"
goto quickexit
endif
quickexit:
exit
and yes, it makes backup of all the files you changing before you change them..and you can change files that are multiple levels down from the current directory and it counts how many files you plan to review for a changefindNreplace "this is blah" "this is cool" <file.txt> or <file"*".txt>
So here's a little Easter Egg for those who took the time to read this entire post.
findNreplace
Code: Select all
#!/bin/csh
# by Michael Byrne 5/28/2019
# Invoke using terminal
# findNreplace <find word phrase> <replace with> <file.txt> or <file"*".txt> using a wildcard,
# do not type the "less than" (<) or "greater than" (>)symbols; however, do type the quote marks
# around the wildcard symbal "*". You may also identify a range within the quotes:
# findNreplace <find word> <replace with> <file"*"."[1-2]">
# to replace a phrase with spaces, use double quotes
# findNreplace "this is blah" "this is cool" <file.txt> or <file"*".txt>
##set echo on
set find = $1
echo "find = $1"
set replace = $2
echo "replace = $2"
set file = $3
echo "file = $3"
setenv countf $#
echo "$countf arguments provided"
set counter = 0
foreach x (`ls $3`) ## files at the top,i.e., in current pwd
@ counter = $counter + 1
cp $x $x.bak ### to make a backup, leave uncommented (recommended)
echo $x
grep -rliR . $x | xargs -I@ sed -i "" "s/$1/$2/gw $x.tmp" @
# $x.tmp will show the changed item, if zero bytes, no changes were made
end
foreach x (`ls -1dR **/$3`) ## one level down in immediate (pwd) folders
@ counter = $counter + 1
echo $x
cp $x $x.bak ### to make a backup, leave uncommented (recommended)
grep -rliR . $x | xargs -I@ sed -i "" "s/$1/$2/gw $x.tmp" @
end
foreach x (`ls -1dR **/*/$3`) ## deep run , 2 directory levels down
@ counter = $counter + 1
cp $x $x.bak ### to make a backup, leave uncommented (recommended)
echo $x
grep -rliR . $x | xargs -I@ sed -i "" "s/$1/$2/gw $x.tmp" @
end
foreach x (`ls -1dR **/*/*/$3`) ## deeper run, three levels down from immediate (pwd) folders
@ counter = $counter + 1
echo $x
cp $x $x.bak ### to make a backup, leave uncommented (recommended)
grep -rliR . $x | xargs -I@ sed -i "" "s/$1/$2/gw $x.tmp" @
end
echo "found $counter files that matched criteria"
wait
## rm -fr *.bak *.tmp **/*.bak **/*.tmp **/*/*.bak **/*/*.tmp */*/*.bak */*/*.tmp **/*/*.bak **/*/*.tmp **/**/**/*.bak **/**/**/*.tmp
## rerun with this uncommented to delete temp file *.bak and *.tmp
exit
-
- Posts: 62
- Joined: Thu Nov 08, 2018 6:30 pm
- Full name: Chief PushesWood
Re: Pre-Release McCain X4
Moved my help request to technical...
A bit off topic for Mikes stuff here.
A bit off topic for Mikes stuff here.
-
- Posts: 62
- Joined: Thu Nov 08, 2018 6:30 pm
- Full name: Chief PushesWood
Re: Pre-Release McCain X4
Hey Mike,
I figured out how to compile the engine... Here is a screenshot in Chessbase... Everything is working just fine including the drop downs, etc. Obviously you can see one of the words is truncated (Analysis Contempt) but I don't really care about that.
Thank you for working on this.
Let me know if there is anything else I can test for you specifically.
Chief
I figured out how to compile the engine... Here is a screenshot in Chessbase... Everything is working just fine including the drop downs, etc. Obviously you can see one of the words is truncated (Analysis Contempt) but I don't really care about that.
Thank you for working on this.
Let me know if there is anything else I can test for you specifically.
Chief
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Pre-Release McCain X4
+1 awesome ..congrats - for us non-programmers, that is a milestone! ( that's how I started over 20 years ago...)ChiefPushesWood wrote: ↑Thu Jun 13, 2019 12:12 am [snip]
I figured out how to compile the engine...
[snip]
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Pre-Release McCain X4
I was able to get some Windows and macOS binaries for those I who like to kick the ties and provide input.
https://github.com/MichaelB7/Stockfish/releases/tag/X4
https://github.com/MichaelB7/Stockfish/releases/tag/X4
-
- Posts: 215
- Joined: Sun Feb 24, 2008 2:08 am
Re: Pre-Release McCain X4
MikeMikeB wrote: ↑Thu Jun 13, 2019 2:05 am I was able to get some Windows and macOS binaries for those I who like to kick the ties and provide input.
https://github.com/MichaelB7/Stockfish/releases/tag/X4
I tried the Lucas compile. The options look ok in CB15 but the hash shows 2764 even though I set it to 512 outside CB.
This is the uci file I use.
Code: Select all
[ENGINE]
Name=McCain X4
Author=M. Byrne, Stockfish authors and others
Filename=c:\mccain\McCain-X4_x64_bmi2.exe
[OPTIONS]
UCI_Chess960=true
W_Contempt=0
B_Contempt=0
Best Move 3=false
Dynamic_Contempt=false
Threads=1
Hash=512
SyzygyPath=SyzygyPath=c:\tablebases\syzygy
Is this a bug?
Thanks for all your great work.
-
- Posts: 4889
- Joined: Thu Mar 09, 2006 6:34 am
- Location: Pen Argyl, Pennsylvania
Re: Pre-Release McCain X4
final result and this is not a fluke:MikeB wrote: ↑Wed Jun 12, 2019 6:58 am I know a lot of folks appreciate the added features, but some folks want to know how does it do against SF. Most of the time, I don't know, since changes are almost always tested again the previous version of McCain.
So fo those that want to see a 500 game match with a time of 5 min with 3 second increment , enjoy!
Results:
https://www.dropbox.com/s/dkazl66lxw6p6 ... a.txt?dl=1
Games:
https://www.dropbox.com/s/cbx3cgyjrlh04 ... s.pgn?dl=1
Early results:
https://www.dropbox.com/s/cbx3cgyjrlh04 ... s.pgn?dl=1
Updates will be at the completion of 20 games or every 789 seconds ( calculated by the script based on time control how often the planned showings are , i.e, every xx games ) I still use Bob Hyatt's testing code he used for Crafty , of course I have modified it over the years and it's fully integrated with his "watcher" script, using env variables - so that the watcher script know the time control and the planned output. The watcher script then calculates a time to display intermediate results that makes sense for the given time control and planned output.
[big snip]
Code: Select all
500 rounds and 500 games completed...
Time control: 300 seconds + 3.0000 seconds
Target completion: 06/12/19 : 13:37:04
Date: 06/12/19 : 13:08:54
500 game(s) loaded
Rank Name Rating Δ + - # Σ Σ% W L D W% =% OppR
---------------------------------------------------------------------------------------------------------
1 Stockfish 090619 64 POPC 3102 0.0 15 15 500 253.5 50.7 68 61 371 13.6 74.2 3098
2 McCain X4 3098 4.4 15 15 500 246.5 49.3 61 68 371 12.2 74.2 3102
---------------------------------------------------------------------------------------------------------
RR-061219-1308.pgn
this probably close to real as well, maybe a 10 Elo improvement over X3 - thanks to the SF team:
Code: Select all
500 rounds and 500 games completed...
Time control: 60 seconds + .6000 seconds
Target completion: 06/12/19 : 15:54:18
Date: 06/12/19 : 15:22:31
500 game(s) loaded
Rank Name Rating Δ + - # Σ Σ% W L D W% =% OppR
---------------------------------------------------------------------------------------------------------
1 McCain X4 3105 0.0 17 17 500 257.5 51.5 86 71 343 17.2 68.6 3095
2 McCain X3 3095 10.9 17 17 500 242.5 48.5 71 86 343 14.2 68.6 3105
---------------------------------------------------------------------------------------------------------
RR-061219-1522.pgn
-
- Posts: 62
- Joined: Thu Nov 08, 2018 6:30 pm
- Full name: Chief PushesWood
Re: Pre-Release McCain X4
Hash in CB is handled outside of the UCI parameters.JohnS wrote: ↑Thu Jun 13, 2019 3:48 amMikeMikeB wrote: ↑Thu Jun 13, 2019 2:05 am I was able to get some Windows and macOS binaries for those I who like to kick the ties and provide input.
https://github.com/MichaelB7/Stockfish/releases/tag/X4
I tried the Lucas compile. The options look ok in CB15 but the hash shows 2764 even though I set it to 512 outside CB.
This is the uci file I use.Setting the hash to 512 in engine properties while running McCain in CB seems to work. BTW the hash is not even shown in the screenshot from CPW.Code: Select all
[ENGINE] Name=McCain X4 Author=M. Byrne, Stockfish authors and others Filename=c:\mccain\McCain-X4_x64_bmi2.exe [OPTIONS] UCI_Chess960=true W_Contempt=0 B_Contempt=0 Best Move 3=false Dynamic_Contempt=false Threads=1 Hash=512 SyzygyPath=SyzygyPath=c:\tablebases\syzygy
Is this a bug?
Thanks for all your great work.
Chief
-
- Posts: 215
- Joined: Sun Feb 24, 2008 2:08 am
Re: Pre-Release McCain X4
Thanks Chief. I wonder if this is a "feature" or a bug in CB.ChiefPushesWood wrote: ↑Thu Jun 13, 2019 4:52 am
Hash in CB is handled outside of the UCI parameters.
Chief