Which compiler to use?

Programming Topics (Computer Chess) and technical aspects as test techniques, book building, program tuning etc

Moderator: Andres Valverde

Which compiler to use?

Postby Volker Pittlik » 27 Mar 2008, 17:12

Re-installing all the engines on my computer I started to compile them with gcc, usually with -O3 optimization. It is well known that the Intel compiler makes faster executables. I have tested it with Fruit, Scorpio and Glaurung and found that the executables are ~25% faster (in nps) than those made with gcc.

It can be expected that the faster executables perform better and I a short test I found:

Code: Select all
Rank Name                  Elo    +    - games score oppo. draws
   1 Spike 1.2 Turin       179   90   85    40   66%    64   23%
   2 Fruit 05/11/03        166   86   82    40   65%    64   30%
   3 Glaurung 2.0.1        138   84   81    40   61%    64   33%
   4 Scorpio 2.0 Intel      82   39   39   200   62%   -13   30%
   5 Ruffian 2.1.0          74   83   82    40   53%    64   30%
   6 Scorpio 2.0 gcc        46   40   40   200   57%   -13   22%
   7 Yace Paderborn          3   84   87    40   41%    64   23%
   8 Sloppy020-0.2.0       -10   81   84    40   39%    64   33%
   9 Arasan 10.3 (1 cpu)   -28   83   87    40   36%    64   28%
  10 Crafty-22.0           -83   79   85    40   26%    64   43%
  11 Phalanx XXII Reborn  -259  101  129    40   11%    64   13%
  12 Xpdnt 080209         -309  110  151    40    9%    64    8%


Most of the engines have been compiled with gcc. Scorpio has been compiled with both compilers. And I don't know how Spike, Yace and Ruffian have been made.

Spike seems to be too far ahead here (compared to older tests and compared with other lists). Making the profiled Intel executables is time consuming. OTOH faster chess engines are better for obvious reasons.
OTOOH the rating list is possibly "unfair" because older engines have been compiled with older compiler version and are therefore possibly slower.

I guess I will make them as fast as possible. Any opinions?


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

Re: Which compiler to use?

Postby Pradu » 31 Mar 2008, 22:26

Volker Pittlik wrote:...It can be expected that the faster executables perform better...
How many ELO points are the engines better on average with the faster compiles?
User avatar
Pradu
 
Posts: 343
Joined: 12 Jan 2005, 19:17
Location: Chandler, Arizona, USA

Re: Which compiler to use?

Postby Ron Murawski » 01 Apr 2008, 16:40

Pradu wrote:
Volker Pittlik wrote:...It can be expected that the faster executables perform better...
How many ELO points are the engines better on average with the faster compiles?


The usual estimate is an increase of 60-70 Elo per doubling of speed. Volker's 25% faster compiles should be about 15-17.5 points stronger.

Ron
User avatar
Ron Murawski
 
Posts: 352
Joined: 26 Sep 2004, 21:50
Location: Schenectady, NY, USA

Re: Which compiler to use?

Postby Dann Corbit » 01 Apr 2008, 20:55

Volker Pittlik wrote:Re-installing all the engines on my computer I started to compile them with gcc, usually with -O3 optimization. It is well known that the Intel compiler makes faster executables. I have tested it with Fruit, Scorpio and Glaurung and found that the executables are ~25% faster (in nps) than those made with gcc.

It can be expected that the faster executables perform better and I a short test I found:

Code: Select all
Rank Name                  Elo    +    - games score oppo. draws
   1 Spike 1.2 Turin       179   90   85    40   66%    64   23%
   2 Fruit 05/11/03        166   86   82    40   65%    64   30%
   3 Glaurung 2.0.1        138   84   81    40   61%    64   33%
   4 Scorpio 2.0 Intel      82   39   39   200   62%   -13   30%
   5 Ruffian 2.1.0          74   83   82    40   53%    64   30%
   6 Scorpio 2.0 gcc        46   40   40   200   57%   -13   22%
   7 Yace Paderborn          3   84   87    40   41%    64   23%
   8 Sloppy020-0.2.0       -10   81   84    40   39%    64   33%
   9 Arasan 10.3 (1 cpu)   -28   83   87    40   36%    64   28%
  10 Crafty-22.0           -83   79   85    40   26%    64   43%
  11 Phalanx XXII Reborn  -259  101  129    40   11%    64   13%
  12 Xpdnt 080209         -309  110  151    40    9%    64    8%


Most of the engines have been compiled with gcc. Scorpio has been compiled with both compilers. And I don't know how Spike, Yace and Ruffian have been made.

Spike seems to be too far ahead here (compared to older tests and compared with other lists). Making the profiled Intel executables is time consuming. OTOH faster chess engines are better for obvious reasons.
OTOOH the rating list is possibly "unfair" because older engines have been compiled with older compiler version and are therefore possibly slower.

I guess I will make them as fast as possible. Any opinions?


Volker


For engines with open source, I see no problem with recompilation to make them faster. It's an age old tradition with Winboard engines that started over a decade ago.

I remember a few chess engine authors that were using really bad compilers and I made builds for them that were 2-3x faster than their originals and their eyes popped out of their heads.

I guess that a faster build can only make them happy. For those older engines -- one of the costs of closed source is that the engine is frozen in time unless the author maintains it.
Dann Corbit
 

Re: Thanks

Postby Volker Pittlik » 03 Apr 2008, 14:11

Thanks to all for replying. After pondering about it and some more tests I think now the difference in terms of nodes per second is much bigger than in terms of rating points.

Because I do not plan to establish another "official" rating list I can even live with a mix of both compilations. If I had plans to participate in a tournament with money to win I would try to get the fastest thing I could get. To buy faster hardware would have a bigger effect :-).

I guess I will make both version of all the programs and use them depending on the purpose. To beat me a debug version of an average engine on ancient hardware is enough.

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


Return to Programming and Technical Discussions

Who is online

Users browsing this forum: No registered users and 45 guests