WBEC Ridderkerk new results.

Archive of the old Parsimony forum. Some messages couldn't be restored. Limitations: Search for authors does not work, Parsimony specific formats do not work, threaded view does not work properly. Posting is disabled.

WBEC Ridderkerk new results.

Postby Leo Dijksman » 05 Aug 2004, 15:52

Geschrieben von:/Posted by: Leo Dijksman at 05 August 2004 16:52:39:

1st Division:
Round 12:
Patriot 1.2.3 1½01 2.5/4
Dragon 4.5CF 0½10 1.5/4
---------------------------------
El Chinito 3.4 0½11 2.5/4
Maestro 1.06uci 1½00 1.5/4
---------------------------------
SlowChess 2.93a 0½11 2.5/4
PostModernist 1010a 1½00 1.5/4
---------------------------------
Patzer 3.62 0111 3.0/4
Abrok 5.0 1000 1.0/4
---------------------------------

3rd Division:
Round 13:
TheCrazyBishop 0052 011½ 2.5/4
Tytan 3.66 100½ 1.5/4
---------------------------------
Cerebro 1.26g 1110 3.0/4
Scidlet 3.6 0001 1.0/4
---------------------------------
Knightx 1.83 1½10 2.5/4
Averno 0.70a 0½01 1.5/4
---------------------------------
DanChess 1.06d 0101 2.0/4
Snitch 0.3.72 1010 2.0/4
---------------------------------

4th Division:
Round 1:
First results in a day or 3!
Test tourney is running.
--------------------------------------------------------------

6th Division Group D:
Round 1:
Rinko 1.15 - Ajedrez Tactico 2.20 0-1 71 = Tactico hangs after the game!
Ajedrez Tactico 2.20 - Rinko 1.15 1-0 85
RDChess 3.23 - Chad'sChess 1.5 1-0 23
Chad'sChess 1.5 - RDChess 3.23 0-1 29
PolarChess 1.3 - Murderhole 1.0.10 1-0 54
Murderhole 1.0.10 - PolarChess 1.3 0-1 105
Embracer 1.12 - Mint 2.3 1-0 67
Mint 2.3 - Embracer 1.12 0-1 51
Matacz 0.997 - StAndersen 1.31 1-0 34
StAndersen 1.31 - Matacz 0.997 0-1 61
Zotron 4.4.6 - Smash 0.9-rc1 0-1 58
Smash 0.9-rc1 - Zotron 4.4.6 1-0 88
Qalat 0.19b - Parrot 040501 0-1 221 = wrong drawclaim by Qalat!
--------------------------------------------------------------

Crosstables and pgn on the WBEC homepage.
Enginelist, latest updates/new engines:
05/08/2004:
Updated: DarFusc v0.01 (UCI only!)
Best wishes,
Leo.


WBEC Ridderkerk homepage.
Leo Dijksman
 

Re: WBEC Ridderkerk new results.

Postby Cesar Contreras » 05 Aug 2004, 16:02

Geschrieben von:/Posted by: Cesar Contreras at 05 August 2004 17:02:25:
Als Antwort auf:/In reply to: WBEC Ridderkerk new results. geschrieben von:/posted by: Leo Dijksman at 05 August 2004 16:52:39:
--------------------------------------------------------------

6th Division Group D:
Round 1:
Rinko 1.15 - Ajedrez Tactico 2.20 0-1 71 = Tactico hangs after the game!

Tactico Hangs because he can't believe he wins
I'm working on it Leo, hope i have the fix soon, yesterday i was dealing with "PeeekNamedPipe" to check for messages, but it seems that your need to create o process to work with it, i don't have any experience with this, but hope to make it work soon.
Thx.
Cesar Contreras
 

Re: WBEC Ridderkerk new results.

Postby Volker Boehm » 05 Aug 2004, 16:55

Geschrieben von:/Posted by: Volker Boehm at 05 August 2004 17:55:08:
Als Antwort auf:/In reply to: Re: WBEC Ridderkerk new results. geschrieben von:/posted by: Cesar Contreras at 05 August 2004 17:02:25:
--------------------------------------------------------------

6th Division Group D:
Round 1:
Rinko 1.15 - Ajedrez Tactico 2.20 0-1 71 = Tactico hangs after the game!

Tactico Hangs because he can't believe he wins
I'm working on it Leo, hope i have the fix soon, yesterday i was dealing with "PeeekNamedPipe" to check for messages, but it seems that your need to create o process to work with it, i don't have any experience with this, but hope to make it work soon.
Thx.
Hi,
when you peek the pipe, then take a look at crafty´s code (and you are using c or c++). It has implemented this. It is a bit tricky
I like to use a second thread that waits for input and stops the calculating thread by setting a flag (boolean variable).
This is a bit tricky too, because you could get races.
If you need help just post here or in talkchess. I can help for the thread part, but I am sure that others know about the pipe part.
Greetings Volker
Volker Boehm
 

Re: WBEC Ridderkerk new results.

Postby Eric Oldre » 05 Aug 2004, 18:40

Geschrieben von:/Posted by: Eric Oldre at 05 August 2004 19:40:04:
Als Antwort auf:/In reply to: Re: WBEC Ridderkerk new results. geschrieben von:/posted by: Volker Boehm at 05 August 2004 17:55:08:
--------------------------------------------------------------

6th Division Group D:
Round 1:
Rinko 1.15 - Ajedrez Tactico 2.20 0-1 71 = Tactico hangs after the game!

Tactico Hangs because he can't believe he wins
I'm working on it Leo, hope i have the fix soon, yesterday i was dealing with "PeeekNamedPipe" to check for messages, but it seems that your need to create o process to work with it, i don't have any experience with this, but hope to make it work soon.
Thx.
Hi,
when you peek the pipe, then take a look at crafty´s code (and you are using c or c++). It has implemented this. It is a bit tricky
I like to use a second thread that waits for input and stops the calculating thread by setting a flag (boolean variable).
This is a bit tricky too, because you could get races.
If you need help just post here or in talkchess. I can help for the thread part, but I am sure that others know about the pipe part.
Greetings Volker
Volker,
I am also using a 2nd thread which waits for input and sets a flag (but a little different), it seems to work fine.
however you mention that you could get issues with races. I am new to both C and multi-threading, you could say I'm using my engine as a project to learn, but i mostly do it for fun. Anyway, If there was a problem with races, how would this be detected? would there be obvious problems with the engine? or simply slight performace losses?
Thanks for your help,
Eric
Eric Oldre
 

Re: WBEC Ridderkerk new results.

Postby Volker Boehm » 05 Aug 2004, 21:36

Geschrieben von:/Posted by: Volker Boehm at 05 August 2004 22:36:57:
Als Antwort auf:/In reply to: Re: WBEC Ridderkerk new results. geschrieben von:/posted by: Eric Oldre at 05 August 2004 19:40:04:
--------------------------------------------------------------

6th Division Group D:
Round 1:
Rinko 1.15 - Ajedrez Tactico 2.20 0-1 71 = Tactico hangs after the game!

Tactico Hangs because he can't believe he wins
I'm working on it Leo, hope i have the fix soon, yesterday i was dealing with "PeeekNamedPipe" to check for messages, but it seems that your need to create o process to work with it, i don't have any experience with this, but hope to make it work soon.
Thx.
Hi,
when you peek the pipe, then take a look at crafty´s code (and you are using c or c++). It has implemented this. It is a bit tricky
I like to use a second thread that waits for input and stops the calculating thread by setting a flag (boolean variable).
This is a bit tricky too, because you could get races.
If you need help just post here or in talkchess. I can help for the thread part, but I am sure that others know about the pipe part.
Greetings Volker
Volker,
I am also using a 2nd thread which waits for input and sets a flag (but a little different), it seems to work fine.
however you mention that you could get issues with races. I am new to both C and multi-threading, you could say I'm using my engine as a project to learn, but i mostly do it for fun. Anyway, If there was a problem with races, how would this be detected? would there be obvious problems with the engine? or simply slight performace losses?
Thanks for your help,
Eric
Hi Eric,
a "race condition" is a situation where one event happens a little bit earlier than another and than it should happen. The consequence could for example lead to a hang of the chess engine.
Example
1rst tread runs the following code
Init();
Stop = false
Search(); // Stops only if Stop is true
Exit();

2cnd thread runs the following code
if ("go") then
{
start 1st tread.
}
else if ("force") then
{
Stop = true; // stops thread 1
}
If now 2-cnd thread starts the first thread when processing a go command and a force command follows very quckly then perhaps 1-st Thread is still in the init function when second thread sets "Stop" to true. After Init the first thread sets stop to false and thus will ignore the force command.
As this only happens when force follows go very quickly it may only happen in very rare cases making debugging very hard. If you write "Stop = false" before the Init() function it will make this problem happen again much more rarely, but don´t solve the problem.
Solution: Don´t set the stop flag only by the 1st tread. Better to write:
1-st:
Init();
Search(); // Stops only if Stop is true
Exit();

2-cnd
if ("go") then
{
Stop = false;
Start 1-st tread;
}
else if ("force") then
{
Stop = true;
}
This is a race-safe version of the problem as the stop flag is only written by thread 2 and never by thread 1.
Greetings Volker
Volker Boehm
 

Re: WBEC Ridderkerk new results.

Postby Eric Oldre » 06 Aug 2004, 15:02

Geschrieben von:/Posted by: Eric Oldre at 06 August 2004 16:02:15:
Als Antwort auf:/In reply to: Re: WBEC Ridderkerk new results. geschrieben von:/posted by: Volker Boehm at 05 August 2004 22:36:57:
--------------------------------------------------------------

6th Division Group D:
Round 1:
Rinko 1.15 - Ajedrez Tactico 2.20 0-1 71 = Tactico hangs after the game!

Tactico Hangs because he can't believe he wins
I'm working on it Leo, hope i have the fix soon, yesterday i was dealing with "PeeekNamedPipe" to check for messages, but it seems that your need to create o process to work with it, i don't have any experience with this, but hope to make it work soon.
Thx.
Hi,
when you peek the pipe, then take a look at crafty´s code (and you are using c or c++). It has implemented this. It is a bit tricky
I like to use a second thread that waits for input and stops the calculating thread by setting a flag (boolean variable).
This is a bit tricky too, because you could get races.
If you need help just post here or in talkchess. I can help for the thread part, but I am sure that others know about the pipe part.
Greetings Volker
Volker,
I am also using a 2nd thread which waits for input and sets a flag (but a little different), it seems to work fine.
however you mention that you could get issues with races. I am new to both C and multi-threading, you could say I'm using my engine as a project to learn, but i mostly do it for fun. Anyway, If there was a problem with races, how would this be detected? would there be obvious problems with the engine? or simply slight performace losses?
Thanks for your help,
Eric
Hi Eric,
a "race condition" is a situation where one event happens a little bit earlier than another and than it should happen. The consequence could for example lead to a hang of the chess engine.
Example
1rst tread runs the following code
Init();
Stop = false
Search(); // Stops only if Stop is true
Exit();

2cnd thread runs the following code
if ("go") then
{
start 1st tread.
}
else if ("force") then
{
Stop = true; // stops thread 1
}
If now 2-cnd thread starts the first thread when processing a go command and a force command follows very quckly then perhaps 1-st Thread is still in the init function when second thread sets "Stop" to true. After Init the first thread sets stop to false and thus will ignore the force command.
As this only happens when force follows go very quickly it may only happen in very rare cases making debugging very hard. If you write "Stop = false" before the Init() function it will make this problem happen again much more rarely, but don´t solve the problem.
Solution: Don´t set the stop flag only by the 1st tread. Better to write:
1-st:
Init();
Search(); // Stops only if Stop is true
Exit();

2-cnd
if ("go") then
{
Stop = false;
Start 1-st tread;
}
else if ("force") then
{
Stop = true;
}
This is a race-safe version of the problem as the stop flag is only written by thread 2 and never by thread 1.
Greetings Volker

Volker,
As it turns out I was doing things similar to your "race safe" example code, which explains why i haven't had issues with that approach so far. probably a case where it's better to be lucky than good. :)
I was concerned though because being new to multi-threaded programming, I simply didn't know what was meant by 'race conditions'.
Thanks for taking the time to post that great explaination!!!
Eric Oldre
Eric Oldre
 


Return to Archive (Old Parsimony Forum)

Who is online

Users browsing this forum: No registered users and 29 guests