Scorpio 1.8 some impressions and some questions

Discussions about Winboard/Xboard. News about engines or programs to use with these GUIs (e.g. tournament managers or adapters) belong in this sub forum.

Moderator: Andres Valverde

Scorpio 1.8 some impressions and some questions

Postby Volker Pittlik » 13 Jun 2006, 13:30

First of all thanks to Daniel for the new version of his program!

Since I have changed to Linux I'm more interested in engines coming with source code so please excuse my possibly stupid questions.

- Are the personality files really necessary for the program? I didn't unzip them and deleted everything related to them from the scorpio.ini. It seems to work fine.

- I made a single threaded Linux executable (at least I hope so) by adapting Glaurung's Makefile on Scorpio. It plays not to bad here:

[Event "Computer chess game"]
[Site "vlk-ubuntu"]
[Date "2006.06.13"]
[Round "1"]
[White "Scorpio 1.8"]
[Black "Crafty-20.13"]
[Result "1-0"]
[TimeControl "180+3"]

1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 d6 6. Bg5 e6 7. Qd2 a6 8.
O-O-O h6 9. Be3 Be7 10. f4 Nxd4 11. Bxd4 b5 12. Qe3 Bb7 13. Bxf6 gxf6 14.
Bd3 Qa5 15. Kb1 b4 16. Ne2 Qc5 17. Nd4 Bc6 18. Rhe1 Bd7 19. f5 e5 20. Nb3
Qc7 21. Nd2 a5 22. Bc4 a4 23. Qg3 a3 24. Qg7 Rf8 25. b3 h5 26. Bd5 Bb5 27.
Nc4 O-O-O 28. Bxf7 Kb8 29. Bd5 Rh8 30. Rd3 Rde8 31. Red1 Qa7 32. R3d2 Rhf8
33. Qg3 Rc8 34. Be6 Rc6 35. Qf3 Bxc4 36. Bxc4 Rh8 37. Qg3 Rhc8 38. Qg7 h4
39. Qh7 R6c7 40. Re2 h3 41. Qxh3 Qb7 42. Be6 Rd8 43. Bd5 Qa7 44. Qg3 Rh8
45. h4 Qb6 46. Red2 Rh6 47. Bc4 Rb7 48. Rd5 Qd8 49. Qe1 Qc7 50. g4 Rh7 51.
g5 fxg5 52. hxg5 Bxg5 53. Qg1 Rg7 54. Rxd6 Bd2 55. Rg6 Rxg6 56. Qxg6 Qd8
57. Qg1
{Black resigns} 1-0

[Event "Computer chess game"]
[Site "vlk-ubuntu"]
[Date "2006.06.13"]
[Round "2"]
[White "Crafty-20.13"]
[Black "Scorpio 1.8"]
[Result "0-1"]
[TimeControl "180+3"]

1. e4 e5 2. Nf3 Nf6 3. Nxe5 d6 4. Nf3 Nxe4 5. d4 d5 6. Bd3 Bd6 7. O-O O-O
8. c4 c6 9. Re1 Re8 10. Nc3 Nxc3 11. bxc3 Rxe1+ 12. Qxe1 h6 13. Ne5 Be6 14.
c5 Bc7 15. Bf4 Nd7 16. Ng6 Nf8 17. Ne5 Nd7 18. Ng6 Nf8 19. Nxf8 Kxf8 20.
Qd2 b6 21. cxb6 Bxf4 22. Qxf4 axb6 23. Re1 Kg8 24. Qd2 c5 25. Re5 c4 26.
Bb1 Qd6 27. Qc2 g6 28. Qe2 Kg7 29. f4 b5 30. Qe1 Ra6 31. h4 b4 32. cxb4 Ra4
33. f5 Bxf5 34. Bxf5 gxf5 35. Qg3+ Qg6 36. Re3 Qxg3 37. Rxg3+ Kf6 38. a3 f4
39. Rc3 Kf5 40. Kf2 Ke4 41. Rf3 f5 42. Ke1 Kxd4 43. Kd2 Ke4 44. Rc3 Ra8 45.
Kc1 Rg8 46. Rc2 d4 47. Re2+ Kd5 48. Rf2 c3 49. b5 d3 50. a4 Re8
{White resigns} 0-1


It went deeper than Crafty usually, therefore I think I didn't break anything. Hints how to get a better results (I got dozens of compoler warnings) are appreciated.

BTW: Has someone an idea why Crafty resigned so early? I have
resign 7 3

in my .craftyrc. Although it wrote to the log file
resign after 3 consecutive moves with score < -7


it resigned at 6.26 in game 1 and -8.68 for the first time in game 2.

Regards

Volker
User avatar
Volker Pittlik
 
Posts: 1031
Joined: 24 Sep 2004, 10:14
Location: Murten / Morat, Switzerland

Re: Scorpio 1.8 some impressions and some questions

Postby Bryan Hofmann » 13 Jun 2006, 14:42

Volker Pittlik wrote:First of all thanks to Daniel for the new version of his program!

BTW: Has someone an idea why Crafty resigned so early? I have
resign 7 3

in my .craftyrc. Although it wrote to the log file
resign after 3 consecutive moves with score < -7


it resigned at 6.26 in game 1 and -8.68 for the first time in game 2.

Regards

Volker


If you look at the code (line 454 & 455 in the option.c) you will see when it recieves the computer command (xboard sends this in engine vs engine matches) it is set to resign at 5 with the resign counter at 4 , thus over riding the .craftyrc file.


Bryan
Bryan Hofmann
 
Posts: 98
Joined: 02 Oct 2004, 20:26
Location: USA

Re: Scorpio 1.8 some impressions and some questions

Postby Volker Pittlik » 13 Jun 2006, 15:07

Bryan Hofmann wrote:...
If you look at the code (line 454 & 455 in the option.c) you will see when it recieves the computer command (xboard sends this in engine vs engine matches) it is set to resign at 5 with the resign counter at 4 , thus over riding the .craftyrc file.
...


Thanks! Maybe I'm going to change it for me. OTOH 5 4 isn't bad too, although I have seen games which went to a draw after such an eval.

Volker
User avatar
Volker Pittlik
 
Posts: 1031
Joined: 24 Sep 2004, 10:14
Location: Murten / Morat, Switzerland

Re: Scorpio 1.8 some impressions and some questions

Postby Daniel Shawul » 14 Jun 2006, 05:44

First of all thanks to Daniel for the new version of his program!


Thanks also to you for testing!

[quote]
Are the personality files really necessary for the program? I didn't unzip them and deleted everything related to them from the scorpio.ini. It seems to work fine.
[\quote]

They are necessary, but without them it can play with a default personality (i haven't checked whether it is good). But i suggest you put them in because i think there are search parameters that need to be changed by the personality file.

[quote]
I made a single threaded Linux executable
[\quote]

The source code by default is an SMP version. Have you undefined
the PARALLEL directive?

regards
Daniel
User avatar
Daniel Shawul
 
Posts: 366
Joined: 28 Sep 2004, 09:33
Location: Ethiopia

Re: Scorpio 1.8 some impressions and some questions

Postby Volker Pittlik » 14 Jun 2006, 08:47

Daniel Shawul wrote:...

The source code by default is an SMP version. Have you undefined
the PARALLEL directive?


I changed #define PARALLEL in scorpio.h into a comment.
However, at the first time I didn't. But with mt 1 in the scorpio.ini it seems
to run without being handicaped (see the Crafty games).



Daniel Shawul wrote:...

They are necessary, but without them it can play with a default personality (i
haven't checked whether it is good). But i suggest you put them in because i
think there are search parameters that need to be changed by the personality file.

...


That's a bit more complicated. If I compile the files as they are Scorpio does
not find the personality files. After changing line 494 in scorpio.cpp to

Code: Select all
strcpy(temp,"personality/");


(I'm running Linux) it finds them, but it complains about unknown commands
when started from the command line. After deleting the empty lines at the end
of the personality files the number of complaints decreases (2 instead of 6 or so).

I guess the error messages have something to do with (a) missing condition(s)
in the while loop from line 514 to 548 in scorpio.cpp. I also guess these error
message don't indicate something serious, but they are not very nice IMO.

However, Scorpio plays well here:

[Event "Computer chess game"]
[Site "vlk-ubuntu"]
[Date "2006.06.14"]
[Round "1"]
[White "Scorpio 1.8"]
[Black "Fruit 2.1"]
[Result "*"]
[TimeControl "300+5"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Nxe4 6. d4 b5 7. Bb3 d5 8.
dxe5 Be6 9. Nbd2 Nc5 10. c3 Be7 11. Bc2 Bg4 12. Re1 Qd7 13. Nf1 O-O 14. b4
Ne4 15. Bxe4 dxe4 16. Qxd7 Bxd7 17. Rxe4 Bf5 18. Re1 a5 19. bxa5 Rxa5 20.
Bg5 Ba3 21. Re2 Bg4 22. h3 Bxf3 23. gxf3 Nxe5 24. Rxe5 f6 25. Bxf6 Rxf6 26.
Ne3 c6 27. Re1 Bd6 28. Re8+ Kf7 29. Rd8 Rg6+ 30. Ng4 Ra7 31. Kf1 Re6 32.
Rd1 Bf4 33. R1d4 Bc7 34. R8d7+ Re7 35. Rd2 g6 36. Nh6+ Kf8 37. Rxe7 Kxe7
38. Re2+ Kf6 39. Ng8+ Kf7 40. Nh6+ Kf8 41. Ng4 Ra3 42. Nf6 h5 43. Ne4 Be5
44. Rc2 Ke7 45. Kg2 Ke6 46. c4 b4 47. Rd2 Ra7 48. h4 Ra5 49. Re2 Kf5 50.
Ng3+ Kf6 51. Ne4+ Ke6 52. Rc2 Ra3 53. Rd2 Ra8 54. Re2 Bd6 55. Ng3+ Kf7 56.
Ne4 Be5 57. Nc5 Bd4 58. Ne4 Ke6 59. f4 Bf6 60. Kg3 Ra7 61. Nxf6+ Kxf6 62.
c5 Ra5 63. Rb2 Ra4 64. f3 Kf5 65. Rd2 Ra5
*

I hope your own egtbs are not necessary. I don't use any at the moment. If you
don't complain Scorpio will play some test games here soon.

BTW: is there something as a log file? This things are very useful sometimes.

Regards

Volker
User avatar
Volker Pittlik
 
Posts: 1031
Joined: 24 Sep 2004, 10:14
Location: Murten / Morat, Switzerland

Re: Scorpio 1.8 some impressions and some questions

Postby Tord Romstad » 14 Jun 2006, 08:55

Hello Daniel,

Thanks for the new version! What's new compared to 1.7?

I downloaded Scorpio 1.8 this morning and tried to compile it on my Mac. It compiled without any problems, but I got the following error messages when trying to run it:
Code: Select all
opn file not found!
mid file not found!
end file not found!

After studying the code for a few minutes, I found out that the problem was the following line in scorpio.cpp, which assumes that the character '\' is used as a pathname separator (some kind of Windows thing, I suppose):
Code: Select all
        strcpy(temp,"personality\\");

I changed this line to:
Code: Select all
        strcpy(temp,"personality/");

This solved all problems. Perhaps you should add some conditional compilation stuff to handle this cleanly on all major platforms?

Scorpio appears to work very well on my iMac Core Duo 2 GHz. Using two threads, it searches around one million nodes/second in the middle game. I'm playing a Silver match against Glaurung 060612 right now.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scorpio 1.8 some impressions and some questions

Postby Daniel Shawul » 14 Jun 2006, 09:31

Hello Volker, Tord

My linux knowledge is very limited to say the least.
I am not sure what i changed that causes the problem, but my guess is that it is related to something i did in scorpio.h while shuffling the code for smp locks.

(I'm running Linux) it finds them, but it complains about unknown commands
when started from the command line. After deleting the empty lines at the end
of the personality files the number of complaints decreases (2 instead of 6 or so).

I guess the error messages have something to do with (a) missing condition(s)
in the while loop from line 514 to 548 in scorpio.cpp. I also guess these error
message don't indicate something serious, but they are not very nice IMO


Thanks! I will make the changes ASAP.

I hope your own egtbs are not necessary. I don't use any at the moment. If you
don't complain Scorpio will play some test games here soon.

Please go on. Infact the egbbs can not work on a linux machine
BTW: is there something as a log file? This things are very useful sometimes.


It is not released but i had a log file for the smp code. I think i will do that in the next version.

Scorpio appears to work very well on my iMac Core Duo 2 GHz. Using two threads, it searches around one million nodes/second in the middle game. I'm playing a Silver match against Glaurung 060612 right now.


Thanks Tord!
If it is not too much a trouble for you, can you measure how it scales on your dual, probably using the same test positions that you used for glaurung. I suspect that it is very bad , because on an Hyer Threading machine i have here ,the non-smp version seems better.

regards,
Daniel
User avatar
Daniel Shawul
 
Posts: 366
Joined: 28 Sep 2004, 09:33
Location: Ethiopia

Re: Scorpio 1.8 some impressions and some questions

Postby Dann Corbit » 14 Jun 2006, 14:32

Tord Romstad wrote:Hello Daniel,

Thanks for the new version! What's new compared to 1.7?

I downloaded Scorpio 1.8 this morning and tried to compile it on my Mac. It compiled without any problems, but I got the following error messages when trying to run it:
Code: Select all
opn file not found!
mid file not found!
end file not found!

After studying the code for a few minutes, I found out that the problem was the following line in scorpio.cpp, which assumes that the character '\' is used as a pathname separator (some kind of Windows thing, I suppose):
Code: Select all
        strcpy(temp,"personality\");

I changed this line to:
Code: Select all
        strcpy(temp,"personality/");

This solved all problems. Perhaps you should add some conditional compilation stuff to handle this cleanly on all major platforms?

Scorpio appears to work very well on my iMac Core Duo 2 GHz. Using two threads, it searches around one million nodes/second in the middle game. I'm playing a Silver match against Glaurung 060612 right now.

Tord


Actually, it is better to change
Code: Select all
        strcpy(temp,"personality\");


to:
Code: Select all
        strcpy(temp,"personality/");


generically for all systems. According to the ANSI and ISO C standards, whether or not your OS supports it, it must be translated to something that the OS can understand in the second case, but not the first.

In other words, the first example is system specific and the second example works everywhere.
Dann Corbit
 

Re: Scorpio 1.8 some impressions and some questions

Postby Volker Pittlik » 14 Jun 2006, 15:01

Daniel Shawul wrote:...
Please go on. ...


Something like this should not happen:

[Event "Computer chess game"]
[Site "XP2000, Ubuntu"]
[Date "2006.06.14"]
[Round "3"]
[White "Scorpio 1.8"]
[Black "Arasan 9.2"]
[Result "0-1"]
[TimeControl "300+5"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. O-O Nxe4 5. d4 exd4 6. Re1 f5 7. Nxd4
Nxd4 8. Qxd4 c6 9. Bd3 Kf7 10. Bxe4 fxe4 11. Nc3 d5 12. Nxe4 Bf5 13. Bg5
Qd7 14. Rad1 Re8 15. Ng3 Bxc2 16. Rxe8 Qxe8 17. Rc1 Bg6 18. Qxa7 Qc8 19.
Qe3 Kg8 20. Re1 Bd6 21. Bf4 Bb4 22. Rc1 Qf8 23. a3 Be7 24. Re1 Bc5 25. Qe6+
Qf7 26. Qc8+ Qf8 27. Qg4 Qf7 28. b4 Bf8 29. Re6 h5 30. Qxg6 Qxf4 31. Re8
Rh6 32. Qd3 Qc1+ 33. Nf1 Rf6 34. Rd8 h4 35. h3 Qb2 36. Qe3 Rf7 37. f3 Qf6
38. Rb8 Kh7 39. Ra8 Bd6 40. b5 c5 41. Qd3+ Qf5 42. Qd1 c4 43. Qd4 Qg5 44.
Kh1 Re7 45. Qd1 Bg3 46. f4 Bxf4 47. Rf8 Bd6 48. a4 Re4 49. Rd8 Qe5 50. Qb1
c3 51. Qd3 g6 52. Rd7+ Kh6 53. Rxd6 Qxd6 54. Qxc3 Rxa4 55. Qh8+ Kg5 56. Nd2
Qe7 57. Nf3+ Kf4 58. Qc3 Re4 59. Qd2+ Kg3 60. Qd3 Kf2 61. Qd2+ Kg3 62. Qd3
Kf4 63. Qd2+ Kf5 64. Qxd5+ Kf6 65. Qg8 Qe8 66. Qd5 Qe7 67. Qg8 Rb4
{Black wins on time} 0-1

Scorpio had about 30 seconds at move 66. It moved with ~2 seconds left and
then missed the time control. There wasn't any time problems when Scorpo won the games.

Volker
User avatar
Volker Pittlik
 
Posts: 1031
Joined: 24 Sep 2004, 10:14
Location: Murten / Morat, Switzerland

Re: Scorpio 1.8 some impressions and some questions

Postby Daniel Shawul » 14 Jun 2006, 16:59

I could be wrong but i think in this type of time control, the clock can go negative and comes back to positive once the increment is added. This is what i got from Tim-Mann's Winboard protocol page.


The command to set an incremental time control looks like this:

level 0 2 12

Here the 0 means "play the whole game in this time control period", the 2 means "base=2 minutes", and the 12 means "inc=12 seconds". As in conventional clock mode, the second argument to level can be in minutes and seconds.

At the start of the game, each player's clock is set to base minutes. Immediately after a player makes a move, inc seconds are added to his clock. A player's clock counts down while it is his turn. Your flag can be called whenever your clock is zero or negative. (Your clock can go negative and then become positive again because of the increment.)

A special rule on some ICS implementations: if you ask for a game with base=0, the clocks really start at 10 seconds instead of 0. xboard itself does not know about this rule, so it passes the 0 on to the engine instead of changing it to 0:10.



That is exactly what i implemented , so when the engine has few seconds left , and the increment is relatively bigger, this will happen to scorpio.
I do not know how other engines handle this , but i will change the code if necessary.



In other words, the first example is system specific and the second example works everywhere.


Yes you are right. I don't know why it worked for all the previous versions though :?

regards
Daniel
User avatar
Daniel Shawul
 
Posts: 366
Joined: 28 Sep 2004, 09:33
Location: Ethiopia

Re: Scorpio 1.8 some impressions and some questions

Postby Tord Romstad » 14 Jun 2006, 20:30

Daniel Shawul wrote:I could be wrong but i think in this type of time control, the clock can go negative and comes back to positive once the increment is added. This is what i got from Tim-Mann's Winboard protocol page.


The command to set an incremental time control looks like this:

level 0 2 12

Here the 0 means "play the whole game in this time control period", the 2 means "base=2 minutes", and the 12 means "inc=12 seconds". As in conventional clock mode, the second argument to level can be in minutes and seconds.

At the start of the game, each player's clock is set to base minutes. Immediately after a player makes a move, inc seconds are added to his clock. A player's clock counts down while it is his turn. Your flag can be called whenever your clock is zero or negative. (Your clock can go negative and then become positive again because of the increment.)

A special rule on some ICS implementations: if you ask for a game with base=0, the clocks really start at 10 seconds instead of 0. xboard itself does not know about this rule, so it passes the 0 on to the engine instead of changing it to 0:10.



That is exactly what i implemented , so when the engine has few seconds left , and the increment is relatively bigger, this will happen to scorpio.


You are misunderstanding the protocol documentation here, I think. Look at the sentence directly before the one in boldface above: "Your flag can be called whenever your clock is zero or negative". This means that the opponent can claim a win on time on the instant your clock becomes zero. The sentence "Your clock can go negative and then become positive again because of the increment" applies to the situation if your opponent doesn't claim a win or time while your time is zero or negative, and you move fast enough to get your time back above zero again.

I have played 82 games in my Silver match between Glaurung and Scorpio now (at a 4+1 time control), and Scorpio has lost on time twice so far.

I'll run some SMP benchmarks with Scorpio on 1 and 2 CPUs as soon as the running match is finished.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: Scorpio 1.8 some impressions and some questions

Postby Daniel Shawul » 15 Jun 2006, 08:09

The sentence "Your clock can go negative and then become positive again because of the increment" applies to the situation if your opponent doesn't claim a win or time while your time is zero or negative, and you move fast enough to get your time back above zero again.


Okay i understand now. But I must say the documentation is not clear enough. My engine never claim wins on time after looking at opponents clock. I think that the gui (or the adjuncator) should say a loss on time, only if the clock will not be positive after the move is made. If the base time is 0 with 30 seconds increment , It means that the first move should be made instantenously?
User avatar
Daniel Shawul
 
Posts: 366
Joined: 28 Sep 2004, 09:33
Location: Ethiopia


Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 47 guests