Cray Blitz 49h available (working!)

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
Jim Ablett
Posts: 1411
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Cray Blitz 49h available (working!)

Post by Jim Ablett »

towforce wrote: Wed Mar 20, 2024 11:37 pm
Jim Ablett wrote: Wed Mar 20, 2024 8:48 pmThe Fortran src files have been converted to C src files but I haven't been able to compile a working executable from it so far. Once I get over that stage then it should be straightforward to add winboard or uci interface to it.

I cant do it in Fortran, I don't know the language :cry:

That's OK, because you don't need to! Both Gemini and ChatGPT give a useful response to the prompt, "Write FORTRAN code to send a command to the Windows command prompt."

You might be reviving one of the great programs of old - but you don't have to live with the constraints of the old times! :)

You can also ask questions like, "What does this FORTRAN code do?", and then paste 100 lines or so of FORTRAN code.
I'll have to look into that.
Thanks for the info,

Jim.
Dann Corbit
Posts: 12563
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Cray Blitz 49h available (working!)

Post by Dann Corbit »

Here is a UCI engine written in Fortran :
https://github.com/ker2x/fortiche
I wrote lots of Fortran IV and Fortran 77 code but I'm not up to speed on Fortran 90
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
User avatar
Jim Ablett
Posts: 1411
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Cray Blitz 49h available (working!)

Post by Jim Ablett »

Dann Corbit wrote: Thu Mar 21, 2024 8:22 am Here is a UCI engine written in Fortran :
https://github.com/ker2x/fortiche
I wrote lots of Fortran IV and Fortran 77 code but I'm not up to speed on Fortran 90
Thanks Dann,

I'll take a look through it.

Jim.
JohnW
Posts: 381
Joined: Thu Nov 22, 2012 12:20 am
Location: New Hampshire

Re: Cray Blitz 49h available (working!)

Post by JohnW »

Anyone know how to enter a move while Cray Blitz is pondering? Isn't doesn't seem to accept input when pondering.
User avatar
Jim Ablett
Posts: 1411
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Cray Blitz 49h available (working!)

Post by Jim Ablett »

JohnW wrote: Thu Mar 21, 2024 12:43 pm Anyone know how to enter a move while Cray Blitz is pondering? Isn't doesn't seem to accept input when pondering.
Bob Hyatt stated pondering was not working >

https://www.talkchess.com/forum/viewtop ... 85&t=23616

Jim
Werewolf
Posts: 1803
Joined: Thu Sep 18, 2008 10:24 pm

Re: Cray Blitz 49h available (working!)

Post by Werewolf »

Jim Ablett wrote: Thu Mar 21, 2024 2:25 pm
JohnW wrote: Thu Mar 21, 2024 12:43 pm Anyone know how to enter a move while Cray Blitz is pondering? Isn't doesn't seem to accept input when pondering.
Bob Hyatt stated pondering was not working >

https://www.talkchess.com/forum/viewtop ... 85&t=23616

Jim
Jim your work is incredible.

In Bob's message, which you reference, is he talking in his present (2008) or the past (i.e. early 1990s using an actual Cray machine) when he writes:
I was quite surprised at the speed. It is nowhere near as fast as crafty, but it can easily hit 500-800K nodes per second, even with all the array-based stuff we did to use vectors on the cray. I can include the cray assembly language parts if you want, although they are essentially useless except for historical analysis.
User avatar
Jim Ablett
Posts: 1411
Joined: Fri Jul 14, 2006 7:56 am
Location: London, England
Full name: Jim Ablett

Re: Cray Blitz 49h available (working!)

Post by Jim Ablett »

Werewolf wrote: Thu Mar 21, 2024 2:40 pm
Jim Ablett wrote: Thu Mar 21, 2024 2:25 pm
JohnW wrote: Thu Mar 21, 2024 12:43 pm Anyone know how to enter a move while Cray Blitz is pondering? Isn't doesn't seem to accept input when pondering.
Bob Hyatt stated pondering was not working >

https://www.talkchess.com/forum/viewtop ... 85&t=23616

Jim
Jim your work is incredible.

In Bob's message, which you reference, is he talking in his present (2008) or the past (i.e. early 1990s using an actual Cray machine) when he writes:
I was quite surprised at the speed. It is nowhere near as fast as crafty, but it can easily hit 500-800K nodes per second, even with all the array-based stuff we did to use vectors on the cray. I can include the cray assembly language parts if you want, although they are essentially useless except for historical analysis.
I think Bob's talking about when he ported the code (2008) to his own PC.

Jim.
JohnW
Posts: 381
Joined: Thu Nov 22, 2012 12:20 am
Location: New Hampshire

Re: Cray Blitz 49h available (working!)

Post by JohnW »

Jim Ablett wrote: Thu Mar 21, 2024 2:25 pm
JohnW wrote: Thu Mar 21, 2024 12:43 pm Anyone know how to enter a move while Cray Blitz is pondering? Isn't doesn't seem to accept input when pondering.
Bob Hyatt stated pondering was not working >

https://www.talkchess.com/forum/viewtop ... 85&t=23616

Jim
oh ok, thank you. If I enter blitz mode by entering bm(5), it says it's pondering after it moves but I guess there is a bug there somewhere since I can't enter a move. Thanks..
cpeters
Posts: 124
Joined: Wed Feb 17, 2021 7:44 pm
Full name: Christian Petersen

Re: Cray Blitz 49h available (working!)

Post by cpeters »

Jim Ablett wrote: Tue Mar 19, 2024 6:48 pm Image
by Robert Hyatt, Harry L. Nelson, and Albert Gower.

Cray Blitz v49h

I finally compiled a working version (after about 15 years) :)

Console input only. Enter moves as d2d4 etc.

There is no manual with the program.
I have included some literature on the program that I found on the web.

Cray Blitz 49h JA.

https://drive.proton.me/urls/PB3EZGK18R#oSYIxCv3ZIF7

Jim.
Thank you!!

For the Debian Bookworm the source did not compile with gfortran.

So I did fetch:
https://www.intel.com/content/www/us/en ... ml#fortran
(chose "offline")
and let this install in my home. After Makefile was changed (the path to ifort (or do symlinks here, or something in .bashrc...)) a working binary was written.

Code: Select all

?            : repeat the program's last move
 ac           : analyze current game (using history file)
 ag           : analyze a game by keying in all moves
 ai           : enable asynchronous i/o mode
 bm(s)        : set blitz mode (5 min)
 bp           : toggle beep announcing move on/off
 cl?          : control clock
 d            : display board
 dm           : display multiprocessing statistics
 dp=n         : control parallel processing depth

 draw         : offer program a draw
 eb           : activate electronic board
 end          : terminate execution
 f            : force blitz to make a specific move
 h            : list game move history
 hs=n         : change size of hash table [hash,pawn,king]
 in x [title] : read input from file x until <eof>
                [search file for title before processing]
 mp=n         : enable multiprocessing
 msg          : enter message into history file
 nm           : enable/disable null move algorithm
 pg           : print game history (compressed)
 pl           : play black/white (switch sides)
 po           : ponder a specific move
 pr           : program a sequence of automatic commands
 r n          : reset board to a prior position
 rk n         : set board by inputting moves
 sb n         : set up a specific board position
 sc           : score current board position
 scm          : scm 1 50 sets parameter 1 = 50
 scd          : displays current scoring parameters
 sd=n         : set a specific iteration depth
 sl=n         : set status display level (0-3)
 sm(s)        : set simultaneous mode
 sn=n         : set minimum nodes before stats displayed

 so=n         : set opening book score margin
 sp x         : save current board position in file x
 sr           : set/display uscf ratings
 st=n         : set a specific time per move
 sv=n         : set upper bound to terminate search
 tm(s)        : toggle tournament mode on/off
 tr=n         : trace search
 tv           : toggle true-value search on/off
 vt=n         : set/reset video display
  multiple commands may be entered on one line separated 
 by ';' characters.  each command will be executed in
 sequence exactly as if they were entered on separate lines.
 all input is subject to this so caution should be used as
 it is possible to enter several moves at once.

 moves are entered using standard algebraic notation.
 the program will also accept minimum algebraic notation
 if desired.  for example, the following are correct ways
 to input moves:  Nb1-c3, b1-c3, Nc3, Nbc3, Pe2-e4, e2-e4

 e4, Nc3xe4, Nxe4, Ncxe4, Pe4xd5, exd5, exd.  notice that
 pieces are indicated by capital letters and files are
 indicated by small letters.  also, the 'x' is used to
 indicate a capture move.
 note also that the 'pr' command can be used to make the
 program play itself by using 'pl' (change sides) and
 'go' (make move) as the last two programmed commands!
can be fiddled with.

To analyse I did not understand the syntax of "ac/ag" in combination with "rk" (where one can enter moves (which is working)) and did
:st=3000 in combination with feeding fen ("sb").

Supercool, many thanks Jim (and the professor and all the others involved)!

Code: Select all

cp@box~/schach/cray/intex/src/cray-blitz-master$ ./blitz 
 running on a cray ymp 

 Cray Blitz version 49h 
 what is your name?
c
 are you continuing your last game?
n
 should I play white?
n
 your move, c                   
st=3000
 absolute time per move is 50:00.
 your move, c                                      
sb
 enter board position, UPPER=white, lower=black.
 position must start from square (a8)

rnb4r/1ppp1kpp/1p4q1/3PQ3/3B4/1N3N2/PP3KPP/R4B1R w
 your move, c                   
go
                 time limit50:00.
                 depth   time     eval  variation
                   1     0:00    7.590  Bd3 Qg4 Qxc7 ...
                   1->   0:00    7.590  Bd3 Qg4 Qxc7 ...
                   2     0:00    7.590  Bd3 Qg4 Qxc7 ...
                   2->   0:00    7.590  Bd3 Qg4 Qxc7 ...
                   3     0:00    7.628  Bd3 Qh6 Qxc7 
                   3a    0:00     ++0   Qf4+                          
                   3     0:00    7.757  Qf4+ Kg8 Qxc7 Qe8 Qxb6 
                   3->   0:00    7.757  Qf4+ Kg8 Qxc7 Qe8 Qxb6 
                   4     0:00    7.757  Qf4+ Kg8 Qxc7 Qe8 Qxb6 
                   4a    0:00     ++0   d6                            
                   4a    0:00     ++1   d6                            
                   4     0:00    9.905  d6 Re8 Bc4+ Re6 Qxe6+ dxe6 Ne5+ Kg8 
                                        Nxg6 cxd6 
                   4a    0:00     ++0   Bd3                           
                   4a    0:00     ++1   Bd3                           
                   4     0:00   11.664  Bd3 Qf6 Qh5+ g6 Bxf6 gxh5 Bxh8 
                   4->   0:00   11.664  Bd3 Qf6 Qh5+ g6 Bxf6 gxh5 Bxh8 
                   5     0:00   11.664  Bd3 Qf6 Qh5+ g6 Bxf6 gxh5 Bxh8 
                   5->   0:00   11.664  Bd3 Qf6 Qh5+ g6 Bxf6 gxh5 Bxh8 
                   6     0:00   11.534  Bd3 Qf6 Qh5+ g6 Bxf6 gxh5 Bxh8 Kg8 
                   6->   0:02   11.534  Bd3 Qf6 Qh5+ g6 Bxf6 gxh5 Bxh8 Kg8 
                   7a    0:02     ++0   Bd3                           
                   7     0:03   11.957  Bd3 Qf6 Qh5+ g6 Qh6 Qxd4+ Nbxd4 Kg8 
                                        Rhf1 
                   7->   0:13   11.957  Bd3 Qf6 Qh5+ g6 Qh6 Qxd4+ Nbxd4 Kg8 
                                        Rhf1 
                   8a    0:14     ++0   Bd3                           
                   8a    0:14     ++1   Bd3                           
                   8     0:21   13.303  Bd3 Qf6 Qh5+ g6 Qh6 Qxd4+ Nbxd4 Na6 
                                        Rae1 Nb4 Bxg6+ hxg6 Qxh8 Nxd5 
                   8->   1:18   13.303  Bd3 Qf6 Qh5+ g6 Qh6 Qxd4+ Nbxd4 Na6 
                                        Rae1 Nb4 Bxg6+ hxg6 Qxh8 Nxd5 
                   9a    1:23     ++0   Bd3                           
                   9a    1:25     ++1   Bd3                           
                   9     2:23   14.943  Bd3 Qf6 Qh5+ g6 Qh6 Rg8 Bxf6 Kxf6 Rhe1 
                                        Nc6 dxc6 bxc6 Qxh7 
                   9->   8:16   14.943  Bd3 Qf6 Qh5+ g6 Qh6 Rg8 Bxf6 Kxf6 Rhe1 
                                        Nc6 dxc6 bxc6 Qxh7 
Vinvin
Posts: 5228
Joined: Thu Mar 09, 2006 9:40 am
Full name: Vincent Lejeune

Re: Cray Blitz 49h available (working!)

Post by Vinvin »

Werewolf wrote: Wed Mar 20, 2024 9:25 am Do you have nps for the actual Cray Supercomputer? I looked online and found 6000nps, is that really correct? That's about 386 territory.
Bob reported 5Mnodes/second several times :
Based on Cray Blitz's speed of 5M nodes per second on a 2ns T90

Code: Select all

Subject: Re: mate extension
From: Robert Hyatt
E-mail: hyatt@crafty.cis.uab.edu
Message Number: 13911
Date: January 11, 1998 at 10:45:20
  In Reply to: Re: mate extension
  Message ID: 13907
  Posted by: Carsten Kossendey
  At: carsten.kossendey@nrw-online.de
  On: January 11, 1998 at 08:51:06

On January 11, 1998 at 08:51:06, Carsten Kossendey wrote:

>On January 11, 1998 at 01:07:46, Stuart Cracraft wrote:
>
>>Someone on this newsgroup wrote about a useful extension
>>that went something like "If the null move search returns
>>a mate score, e.g. n moves to mate, then extend."
>
>If you use recursive null moves, you will want to limit it to small N's
>since otherwise you start extending lines where your opponent moves 6
>times in a row or something, and even the most quiet positions look like
>mates then ;)
>

I do recursive null-move, but *never* two null-moves back to back, so
that
this isn't a problem.  For me, turning this on (plus the hashing
enhancement
I described after Bruce explained his basic idea) means Crafty now finds
Win At Chess 141 in under 30 seconds.  This position has eluded solution
(by Crafty) for a couple of years.

In one minute per move, I now only miss 2 on a P6/200... number 160 and
number 230.  160 still takes 4 minutes or so, while 230 I don't know.
The
good news (for me) is that Crafty is now approaching Cray Blitz in
tactical
skill *if* hardware is equal.  Cray Blitz still solves 297 in less than
1
second, and gets all 300 in 1 second or less (it only times to the
nearest
second, so a 1 second limit really means up to 1.5 seconds per position
or
so.  Crafty can do all but 2 in 60 secs at 100K nodes per second.  Based
on Cray Blitz's speed of 5M nodes per second on a 2ns T90, Crafty should
be able to hit around 10M nodes per second, or be about 100X faster than
it is now.  That would put it solving all but 2 in under 1 second.
null-move
R=2 seems to affect 230, because the first move tosses a rook, and
null-move
searches below that tend to fail high...


>>I didn't see any improvement (with limited testing) after
>>implementing this. Is it basically in time-to-solve or
>>seeing more solutions?
>>
>>Where's the beef?
>>
>>--Stuart
But at 5M nodes per second, we could spare a few here and there. :)

Code: Select all

Subject: Re: WAC #199 and WAC #273
From: Robert Hyatt
E-mail: hyatt@crafty.cis.uab.edu
Message Number: 15126
Date: February 17, 1998 at 13:37:47
  In Reply to: Re: WAC #199 and WAC #273
  Message ID: 15123
  Posted by: Bruce Moreland
  At: brucemo@seanet.com
  On: February 17, 1998 at 12:46:39

On February 17, 1998 at 12:46:39, Bruce Moreland wrote:

>
>Mine scores Ng3+ as mate in 18 after 40 minutes on a P2/300.
>
>Which is not to say that this is accurate, or that Ng3+ is best.  I'll
>let it run longer.
>
>bruce

Aw shit...  I didn't look at the output carefully enough.  You are
correct...  I don't have the complete PV as it was terminated by a
hash hit, but CB claimed this is a mate in 20.  It is *notorious* for
finding a slightly longer than optimal mate however, so your 18 could
well be correct.

I was fooled in that the +7 PV matched the next PV.  I didn't notice the
mate score as CB doesn't display things like Mat18 and so forth.  It
shows
the integer score...

So in this case, Ng3 seems correct, although I'd probably argue that if
g3 does produce a score of +12, that's winning too.  I despise positions
where you can win the queen or you can mate the opponent.  Because
either
wins...

This was Harry's favorite position I believe.   (Harry Nelson).  He
liked
the way our extensions picked this up in a heartbeat.  One has to do
with
capturing adjacent to the king without being a checking move.  These
extend
(in CB, *not* Crafty) just like checks do, which can be a little
dangerous.
But at 5M nodes per second, we could spare a few here and there.  :)

I'm going to try to re-run it on the Cray to get the full PV, then we
can
compare notes.  But I do have a note in my file where Harry gripes about
our
finding a mate that is too deep, that there is a shorter one available.
He
"proved" this with human and computer analysis... but at some point,
there
was a couple of checking moves that could be replaced by a quiet move to
shorten the mate.  We didn't see that, even with singular extensions...
The quiet move pretty well cut everything off short...

I used to have a really *really* hard mate in 8 to find.  Hard because
the
first 7 moves were all non-checks.  But they were definitely forcing as
they
would threaten mate.  I'm not sure we ever really "solved" that one in
any
reasonable amount of time.  I think one version finally solved it in a
minute
or two, which seems unreasonable for a mate in 8 using that machine.
I'll see
if I can find this thing.

I also used to have a few ugly positions that would exercise extensions.
 IE
one position where the first 20 plies or so are all forced...  each move
a
check, which also gets that side out of check, and it is the only legal
move.
This shredded Cray Blitz several times.  Each time I'd modify the
parallel
search, Harry would toss this position at it and it would promptly crash
and
burn.  Obviously singular extensions runs this out *quite* deeply.  :)