Micromax 4.8 ICC compile - try it!

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

Micromax 4.8 ICC compile - try it!

Postby Denis P. Mendoza » 18 Jan 2008, 18:03

Since the released Micromax 4.8 was built using MingW32, I was curious of this so-called "smallest c cjess program" to see how it performs using a better compiler. The speed-up was great!

I made builds from Pentium I to IV so that all can benefit from this nice engine by HG Muller.

http://www.zshare.net/download/6642365eff4a79/
I'm proud to be a Pinoy! Ikaw dre?
Denis P. Mendoza
 
Posts: 84
Joined: 31 Oct 2007, 16:38
Location: Philippines

Re: Micromax 4.8 ICC compile - try it!

Postby H.G.Muller » 18 Jan 2008, 19:22

Wow, thanks! Just in time! I will check out which version runs fastest on my Core 2 Duo, and use that one in the East-West match tomorrow.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Micromax 4.8 ICC compile - try it!

Postby H.G.Muller » 18 Jan 2008, 21:22

You did a good job indeed. I tried all versions on my Core 2 Duo (E6600, 2.4GHz), searching 10 ply from the opening, with the following results

Code: Select all
version time
4.8w   198.80 sec
PIV    135.97 sec
PIII   132.33 sec
PI     111.74 sec
PII    108.65 sec

All node counts were exactly the same. The Pentium II compile seems to work best on the C2D. The speedup is a factor 1.83. That should be 60 Elo. Without adding a single character! 8-)
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Micromax 4.8 ICC compile - try it!

Postby Tony Hecker » 19 Jan 2008, 07:10

What compiler(s) was used for these builds?
Tony Hecker
 
Posts: 25
Joined: 16 Jan 2008, 05:17
Location: USA

Re: Micromax 4.8 ICC compile - try it!

Postby Denis P. Mendoza » 19 Jan 2008, 07:37

H.G.Muller wrote:Wow, thanks! Just in time! I will check out which version runs fastest on my Core 2 Duo, and use that one in the East-West match tomorrow.


Your most welcome Harm, or should I say "Santa Claus" as my 3-yr. old daughter usually say when she sees your avatar at CCC before :D.

But I'm still thinking why PII performed well than (PIII & PIV) as it didn't use the SSE intrinsic functions during compiling (like PI too). For this reason, I built a compile for Core2Duo for you to test.
http://www.zshare.net/download/6661156a3c3a88/
I'm proud to be a Pinoy! Ikaw dre?
Denis P. Mendoza
 
Posts: 84
Joined: 31 Oct 2007, 16:38
Location: Philippines

Re: Micromax 4.8 ICC compile - try it!

Postby Denis P. Mendoza » 19 Jan 2008, 07:42

TonyJH wrote:What compiler(s) was used for these builds?


The compiles with terms "PI-PIV" were built using Intel C/C++ Compiler. I just included the source and the original MingW compile to complete the package.
I'm proud to be a Pinoy! Ikaw dre?
Denis P. Mendoza
 
Posts: 84
Joined: 31 Oct 2007, 16:38
Location: Philippines

Re: Micromax 4.8 ICC compile - try it!

Postby H.G.Muller » 19 Jan 2008, 12:44

Amazingly enough, the speed of the C2D compile on the C2D is only about as fast as the PIV compile. The PII compile remains faster by far! :shock:

I will try some other positions to see if this is generally true, or just a peculiarity of the opening.

I tright a round-robin of all 5 compiles last night, 20 games per pairing from the Nunn positions. (So 80 games per player.) All compiles did about equally well within the statistical noise (45.5 - 42.5 pt), except for the Cygwin one (29 pt). On the other core I let BigLion 2.23 do a gauntlet against all uMax versions (5 Nunn matches of 20 games), and funny enough the Cygwin compile shared first place there with 8.5 pt. But I guess the statistical noise over 20 games is really too large for this to be meaningful.

I suppose this Intel compiler will not have an option to optimize for an Opteron? (In Chess War F uMax will have to play on an Opteron...)
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Micromax 4.8 ICC compile - try it!

Postby Denis P. Mendoza » 19 Jan 2008, 16:03

I suppose this Intel compiler will not have an option to optimize for an Opteron? (In Chess War F uMax will have to play on an Opteron...)


You're right! Unless there will be an AMD C/C++ compiler :D. I just notice that SSE isn't that important when compiling single-cpu engines. - speed-wise I mean. With or without it, there's not much difference or sometimes degradion of performance. I believe most of the functionalities of SSE are just for compatibility and not for performance. The code itself must be programmed to use this function to benefit from it. Hardware issues also must be taken imto consideration. As an example, my pc is AMD and compiler is Intel. That's why I use generic command switches to optimize my builds for my machine. It's kind of tricky sometimes.

But I'm just as happy as you are. Is this the version entered in CCT10? If it is, good luck then!
I'm proud to be a Pinoy! Ikaw dre?
Denis P. Mendoza
 
Posts: 84
Joined: 31 Oct 2007, 16:38
Location: Philippines

Re: Micromax 4.8 ICC compile - try it!

Postby Jim Ablett » 19 Jan 2008, 19:57

Hello H.G/Denis,

I suppose this Intel compiler will not have an option to optimize for an Opteron?


Opteron's 64-bit architecture would suit a 64-bit compile.

Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Micromax 4.8 ICC compile - try it!

Postby H.G.Muller » 19 Jan 2008, 20:24

I don't think Chess War will be held under a 64-bit OS.

But even if it would, do you really think a program like micro-Max could benifit from 64-bit compilation. There is not a single u64 variable in the program, and most variables are char.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Micromax 4.8 ICC compile - try it!

Postby Jim Ablett » 19 Jan 2008, 20:53

Olivier's Opterons are run 64-bit

Hardware : Dual Opteron 252 4Gb WinXP Pro x64 (A to F tournaments)



do you really think a program like micro-Max could benifit from 64-bit compilation. There is not a single u64 variable in the program, and most variables are char.


You may get a small speedup. As Olivier's setup is dual-core using the Intel switch '/Qparallel' to parallelize the code loops would be of benefit (maybe Denis used this already)

If speedup it's more than 5% in 64-bit, it's may be worthwhile. I'll compile one and see how it fares.

Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Micromax 4.8 ICC compile - try it!

Postby Denis P. Mendoza » 19 Jan 2008, 22:00

Thanks Jim for the infos.

I didcn't try using /Qparallel switch lately, as some of my compiles didn't benefit using this option. I could have made a wrong assumption, but the commands I used were safely optimized for speed and performance. I only use this option on SMP enabled engines like Crafty and Glaurung.

But I'll try your suggestions as well. No harm in trying Master Jim :wink:
I'm proud to be a Pinoy! Ikaw dre?
Denis P. Mendoza
 
Posts: 84
Joined: 31 Oct 2007, 16:38
Location: Philippines

Re: Micromax 4.8 ICC compile - try it!

Postby H.G.Muller » 19 Jan 2008, 22:22

Hmm, I am not sure if I understand this correctly. Surely Olivier will not allow engines to use two cores, while the opponent tries to ponder?

And I don't really see how a compiler could ever parallellize a loop that contains a recursive call. And the only 5 loops in micro-Max are five nested loops that surround the recursive call to its only function, Search(). Basically that would require the compiler to invent an SMP algorithm.

Code: Select all
Search()
{
    while(NEXT_IID_DEPTH) {
        do {
            while(NEXT_RAY_DIRECTION) {
                do {
                      do {
                            Search();
                      } while(NEXT_LMR_DEPTH);
                } while(NEXT_TO_SQUARE);
            }
        } while(NEXT_FROM_SQUARE);
    }
}
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Micromax 4.8 ICC compile - try it!

Postby Jim Ablett » 19 Jan 2008, 22:34

And I don't really see how a compiler could ever parallellize a loop that contains a recursive call.


Intel compiler can parallelize recursive loop when used also with /Qopenmp switch.

Surely Olivier will not allow engines to use two cores, while the opponent tries to ponder?


Sorry forgot Olivier uses ponder in his tournament.

Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Micromax 4.8 ICC compile - try it!

Postby Jim Ablett » 19 Jan 2008, 23:13

64 bit about 10% faster than Denis's 32 bit compile.

Umax 48 x64

http://mihd.net/2ujvni

Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Micromax 4.8 ICC compile - try it!

Postby H.G.Muller » 19 Jan 2008, 23:23

So with which compile are you comparing that? The PII compile?
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Micromax 4.8 ICC compile - try it!

Postby Jim Ablett » 19 Jan 2008, 23:28

So with which compile are you comparing that? The PII compile?


PIII.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Micromax 4.8 ICC compile - try it!

Postby Jim Ablett » 20 Jan 2008, 00:57

Denis's P2 compile is a lot faster. About equal speed on my x64 Athlon 64 and it's actually a bit faster on my x64 Core 2 Duo system. So nothing gained at all in 64 bit - oh well.

Jim.
___________________________
http://jimablett.net63.net/
Jim Ablett
 
Posts: 721
Joined: 27 Sep 2004, 10:39
Location: Essex, England

Re: Micromax 4.8 ICC compile - try it!

Postby Denis P. Mendoza » 20 Jan 2008, 01:04

Re-upload of deleted post: Sorry!

Intel compiler can parallelize recursive loop when used also with /Qopenmp switch.


You are absolutely right. Using this /Qparallel, it will auto-parallized distributed loops. On my 64-bit compiles with this option, it uses 3 threads looking at the pc taskbar, compared to only 1 thread without this option.. I just finished my 64-bit compiling..

But anyway, you already did a much better compile than mine. Thanks. Micromax really needs some extra wallop! I'll just upload my 64-bits for Harm, for him to see the differences (with and without /Qparallel ). To see is to believe :D.

(I deleted last link as I found some typo-error on my command-lines which could affect previous compiles Here's the new one, just for comparison purposes.)

http://www.zshare.net/download/66872842271c86/
I'm proud to be a Pinoy! Ikaw dre?
Denis P. Mendoza
 
Posts: 84
Joined: 31 Oct 2007, 16:38
Location: Philippines

Re: Micromax 4.8 ICC compile - try it!

Postby Olivier Deville » 20 Jan 2008, 08:55

Thanks Denis and Jim for making these compiles, and for caring about ChessWar :)

So if I understood correctly the x64 compile by Jim will be the fastest on my Opteron. I'll include it in my next test tourney.

Olivier
User avatar
Olivier Deville
 
Posts: 1176
Joined: 26 Sep 2004, 19:54
Location: Aurec, France

Next

Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 12 guests