Re: [computer-go] Digital Mars

2009-04-23 Thread Adrian Grajdeanu

I have two benchmarks:

On an: Intel(R) Core(TM)2 CPU T7200  @ 2.00GHz stepping 06
g++ --version
g++ (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
I had to modify SConstruct to refer to the default g++, not g++.4.2 
and had to remove -march=native


= Benchmarking, please wait ...

= 20 playouts in 2.72759 seconds
73.3249 kpps
36.5657 kpps/GHz (clock independent)
105316/94359 (black wins / white wins)

= 20 playouts in 2.73858 seconds
73.0304 kpps
36.4108 kpps/GHz (clock independent)
104924/94746 (black wins / white wins)

= 20 playouts in 2.72858 seconds
73.2981 kpps
36.5291 kpps/GHz (clock independent)
105097/94582 (black wins / white wins)

= 20 playouts in 2.76258 seconds
72.3961 kpps
36.1141 kpps/GHz (clock independent)
105139/94547 (black wins / white wins)

= 20 playouts in 2.74358 seconds
72.8974 kpps
36.3124 kpps/GHz (clock independent)
104896/94794 (black wins / white wins)

= Try 'help'



on an: Intel(R) Core(TM)2 Quad CPUQ9650  @ 3.00GHz stepping 0a
g++ --version
g++ (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8)
(with -march=native flag)
= Benchmarking, please wait ...

= 20 playouts in 1.65575 seconds
120.791 kpps
40.2566 kpps/GHz (clock independent)
105316/94359 (black wins / white wins)

= 20 playouts in 1.65275 seconds
121.011 kpps
40.3069 kpps/GHz (clock independent)
104924/94746 (black wins / white wins)

= 20 playouts in 1.65375 seconds
120.937 kpps
40.2789 kpps/GHz (clock independent)
105097/94582 (black wins / white wins)

= 20 playouts in 1.65475 seconds
120.864 kpps
40.2917 kpps/GHz (clock independent)
105139/94547 (black wins / white wins)

= 20 playouts in 1.65175 seconds
121.084 kpps
40.3084 kpps/GHz (clock independent)
104896/94794 (black wins / white wins)

= Try 'help'


I'd be curious g++ 4.4 what gives?

Cheers,
Adrian

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Digital Mars

2009-04-21 Thread Adrian Grajdeanu
Just to add my 2c for the performance freaks. I've noticed that code 
generated by g++ 4.3.x was about 40-45% faster non-optimized when 
compared to previous versions of g++ (native linux platform). When 
optimizing code (-O3), 4.3 generated code that was 20% faster. This is 
probably the more relevant number for those that optimize their code 
anyway. Don't know about you, but I was impressed by 20% gain.


If you already use g++ 4.3, pardon my interruption. But if you don't, 
you will be pleasantly surprised once you upgrade to it.


Adrian


Łukasz Lew wrote:

mingw rules!
I compiled libego with it and got a decent 32kpps / GHz ( native g++
was 44kpps / GHz)

Lukasz

2009/4/21 Don Dailey dailey@gmail.com:

I use mingw to produce cros platform executables.   I can build executables
for linux, win32 and win64, which for my chess program is a must since it's
64 bit.

- Don


On Tue, Apr 21, 2009 at 5:33 AM, Łukasz Lew lukasz@gmail.com wrote:

On Tue, Apr 21, 2009 at 11:23, elife elife2...@gmail.com wrote:

I forgot about cygwin indeed. It is a good idea.
But can you ran the binary on a system without cygwin?

We can run the binary on a system without cygwin if we provide
cygwin1.dll.

That is great.
Another good idea is mingw.

BTW
I would like to recommend stackoverflow.com for programming questions.
I asked this question there

http://stackoverflow.com/questions/771756/what-is-the-difference-between-cygwin-and-mingw
and got few good answers within a minute.

Lukasz


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Bobby Fischer

2008-09-11 Thread Adrian Grajdeanu
I read that story in a book, just after Bobby Fisher's death. Don't 
remember all details, save that he was astonished he got beaten.

Adrian

Don Dailey wrote:

Does anyone remember an anecdote about Bobby Fischer learning to play
go?   I don't remember the details but I'm trying to find a reference to
this.

I remember in this story that Bobby learned the rules, played a game
and was beaten but that he expected to be a good player immediately
based on his chess skill.

- Don


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] now: operating systems and love

2008-04-09 Thread Adrian Grajdeanu

Linux is a time sinkhole to someone not familiar with it.You are
probably almost unaware of the huge investment in time you spent
learning windows because the lessons happened gradually over many years
and you don't give it a second thought.   You just know it  and forgot
that you had to learn it.


Funny someone should bring this up. I was a Windows guy for all but the 
last 5 years or so. I've switched to Linux, gradually at first, then one 
day when Windows pissed me, I said enough is enough! Sure I had a few 
things that stopped working (like my old trusted SCSI film scanner) but 
after a few years, even those started working in Linux. Yet what 
recently surprised me was that I was given a Windows machine and asked 
to do something that I used to have no problem: program in Visual 
Studio. I had no idea how difficult it would turn out to be. It seemed 
that nothing fits, nor was it where I would expect it to be. Like having 
2 left hands and bumbling between them. Little by little, things started 
coming back to me. In about 2 hours I started to find my way around. 
Given a few days, I'd probably remember most. What I'm trying to say is 
that if you take that gradual learning path on Linux, then Windows seems 
a time sink-hole that no-one in their right mind would want to wither 
their days with. Oh, by the way, I feel that way with Mac user 
interface. I can't find my way around there if my life depended on it!


So, while I do think Linux is the best :), I guess in the end it comes 
down to which OS you know better yourself.


A.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] 19x19 MC improvement

2008-01-26 Thread Adrian Grajdeanu

By the way, does anybody know of any nifty tools or heuristics for
efficient probabilistic multi-parameter optimization? In other words,
like multi-dimensional optimization, except instead of your function
returning a deterministic value, it returns the result of a Bernoulli
trial, and the heuristic uses those trial results to converge as
rapidly as possible to parameter values that roughly maximize the
success probability.


I recommend evolutionary algorithms because they are robust on noise and 
don't require a quadratic or linear model for the function they 
optimize. I would go as simple as a ES(1+1) algorithm (a glorified name 
for a simple hill climber that probes randomly for its next step). I 
would also use restarts: run it once until no more improvement is 
apparent, then run it again and again (restarts) a few times (5-10) and 
take the overall optimum found. You'd be surprised how far you can get 
with this method!


Adrian

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Adrian Grajdeanu
Nick, do you know for a fact that a C++ complier will optimize for the 
base case of a virtual function? I was under the impression that it 
doesn't know (as in can't determine at compile time) whether the 
function was overwritten or not so it doesn't favor any of the cases. In 
fact I can't even figure how it would if it wanted to optimize an 
indirect function call.
I'm not trying to start a war, just to clarify my assumption. As it is I 
generally write code using virtual functions that I most often do 
overwrite. If what you say is true, then I am incurring the penalty most 
of the time and that would be bad...


Cheers,
Adrian


Nick Apperson wrote:

sure thing:

--

struct foo {
  // some stuff gets executed
  virtual void do_something(somestruct s); // base case executed by default
};

struct foo_foo : foo {
  // some stuff gets executed
};

struct foo_bar : foo {
  // some stuff gets executed
  virtual void do_something(somestruct s); // special case
};

So then if we have say:

foo *f;
somestruct s;

// ... some code that sets f to something and changes s

f-do_something(s);



So now when the compiler is optimizing the code, it will optimize for 
the base case of foo::do_something by default unless it has information 
that is even better.  If our code instead read with f as a function 
pointer, the compiler (assuming it can't determine the value) won't have 
a base case.

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/