For the Intel compiler experts

Discussion of chess software programming and technical issues.

Moderator: Ras

Dann Corbit
Posts: 12792
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

For the Intel compiler experts

Post by Dann Corbit »

I am going to buy the latest Intel C++ compiler, but I would like to know what tool set I need to purchase.

They have "Parallel Studio" and "C++ composer" and all sorts of different collections of things.

I already have the high-end MS compiler and so I have a nice IDE and debugger already. But I would like to be able to produce the fastest possible binaries and so I need to know what is the minimum tool set I need to purchase to accomplish this goal.

Besides performance, I am also sick and tired of having to convert C99 programs to C89 in order to be able to compile them.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: For the Intel compiler experts

Post by bob »

Dann Corbit wrote:I am going to buy the latest Intel C++ compiler, but I would like to know what tool set I need to purchase.

They have "Parallel Studio" and "C++ composer" and all sorts of different collections of things.

I already have the high-end MS compiler and so I have a nice IDE and debugger already. But I would like to be able to produce the fastest possible binaries and so I need to know what is the minimum tool set I need to purchase to accomplish this goal.

Besides performance, I am also sick and tired of having to convert C99 programs to C89 in order to be able to compile them.
You are not going to get far with MS debugger and Intel compiler. You need a debugger that is compatible with the compiler's output. I simply use the intel C++ compiler + debugger package on all of my linux boxes. And you can get that for nothing. For windows I am not sure, but you do want both the compiler and debugger. Which might mean your IDE will present some issues.
Dann Corbit
Posts: 12792
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: For the Intel compiler experts

Post by Dann Corbit »

bob wrote:
Dann Corbit wrote:I am going to buy the latest Intel C++ compiler, but I would like to know what tool set I need to purchase.

They have "Parallel Studio" and "C++ composer" and all sorts of different collections of things.

I already have the high-end MS compiler and so I have a nice IDE and debugger already. But I would like to be able to produce the fastest possible binaries and so I need to know what is the minimum tool set I need to purchase to accomplish this goal.

Besides performance, I am also sick and tired of having to convert C99 programs to C89 in order to be able to compile them.
You are not going to get far with MS debugger and Intel compiler. You need a debugger that is compatible with the compiler's output. I simply use the intel C++ compiler + debugger package on all of my linux boxes. And you can get that for nothing. For windows I am not sure, but you do want both the compiler and debugger. Which might mean your IDE will present some issues.
They are compatible and I have used that combination before. We used to use the Intel compiler up to version 6.1 and we did our debugging in the MS Visual Studio IDE. For Windows, we always had to do that. On Linux, you can use Eclipse with the C++ compiler and that works real nice.

The only problem I am facing is that there are dozens of combinations and a huge spectrum of price ranges. I just want to know which one I need to get the high end C++ compiler. I don't need Fortran or some of their other stuff.
Joost Buijs
Posts: 1641
Joined: Thu Jul 16, 2009 10:47 am
Location: Almere, The Netherlands

Re: For the Intel compiler experts

Post by Joost Buijs »

You have to be very careful about this. Recently I found out that the C++ compiler that comes with the Parallel Studio package does not support PGO. For the time being I will stick to one of the older compilers.

I think it is a waste of money to buy the latest compiler if you already bought an older version because there is hardly any difference between v10, v11 and now v2011.
Mincho Georgiev
Posts: 454
Joined: Sat Apr 04, 2009 6:44 pm
Location: Bulgaria

Re: For the Intel compiler experts

Post by Mincho Georgiev »

The latest Intel compiler version is integrated in the Intel Composer XE 2011 package. For windows, this is going to be the way is managed from now on i think. I am still not sure what is the complete set of features of the composer package, so you need to read it carefully.
For Windows, I am always using windbg for debugging intel builds. That is IMO the best option available. Unfortunately, the very same thing happened to the windbg 2 years ago, it was "integrated" and now is available only after downloading Microsoft Windows SDK, which is not a huge problem, but somehow annoying:
http://www.microsoft.com/downloads/en/d ... laylang=en

For Linux - intel debugger is the best debugging tool available in my opinion (including UI and everything else).
CThinker
Posts: 388
Joined: Wed Mar 08, 2006 10:08 pm

Re: For the Intel compiler experts

Post by CThinker »

bob wrote:
Dann Corbit wrote:I am going to buy the latest Intel C++ compiler, but I would like to know what tool set I need to purchase.

They have "Parallel Studio" and "C++ composer" and all sorts of different collections of things.

I already have the high-end MS compiler and so I have a nice IDE and debugger already. But I would like to be able to produce the fastest possible binaries and so I need to know what is the minimum tool set I need to purchase to accomplish this goal.

Besides performance, I am also sick and tired of having to convert C99 programs to C89 in order to be able to compile them.
You are not going to get far with MS debugger and Intel compiler. You need a debugger that is compatible with the compiler's output. I simply use the intel C++ compiler + debugger package on all of my linux boxes. And you can get that for nothing. For windows I am not sure, but you do want both the compiler and debugger. Which might mean your IDE will present some issues.
Quote from:
http://software.intel.com/en-us/article ... -visual-c/

Debugging Capability and the Intel Parallel Debugger Extension

The Intel C++ Compiler is fully source- and binary- (native code only) compatible with Visual C++ 2005, Visual C++ 2008 and Visual C++ 2010 compiler when the option “/Qvc8”, “/Qvc9” or "/Qvc10" is specified. Binaries built with the Intel C++ Compiler can be debugged from within the Microsoft Visual Studio IDE.

It’s possible to build only several files or build several projects with the Intel C++ Compiler.

Intel Parallel Debugger Extension is a plug-in to Visual Studio Debugger. It provides great functionalities for debugging parallel programs. Please see the Intel(R) Parallel Debugger Extension article for detail information.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: For the Intel compiler experts

Post by Don »

I am experimenting with the intel C compiler right now and I'm wonder if there is anything I need to know to get more out of it.

It produced a binary with no changes to my source code, but I'm not familiar with optimizations that might apply to the Intel compiler. I'm using the same GCC options I was using before. I do get a 2 percent speedup without even experimenting with options.
Mincho Georgiev
Posts: 454
Joined: Sat Apr 04, 2009 6:44 pm
Location: Bulgaria

Re: For the Intel compiler experts

Post by Mincho Georgiev »

Don wrote:I am experimenting with the intel C compiler right now and I'm wonder if there is anything I need to know to get more out of it.

It produced a binary with no changes to my source code, but I'm not familiar with optimizations that might apply to the Intel compiler. I'm using the same GCC options I was using before. I do get a 2 percent speedup without even experimenting with options.
Start with something simple for pgo, like:

1. build with:
icpc src/*.c -O2 -prof-gen

2. train the executable (make 2 games in GUI or something similar to real world usage)

3. build again after the profile is generated:
icpc src/*.c -O2 -ipo -prof-use

4. test the speed again (and so on until you find the proper pgo combination for your particular code)
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: For the Intel compiler experts

Post by bob »

Dann Corbit wrote:
bob wrote:
Dann Corbit wrote:I am going to buy the latest Intel C++ compiler, but I would like to know what tool set I need to purchase.

They have "Parallel Studio" and "C++ composer" and all sorts of different collections of things.

I already have the high-end MS compiler and so I have a nice IDE and debugger already. But I would like to be able to produce the fastest possible binaries and so I need to know what is the minimum tool set I need to purchase to accomplish this goal.

Besides performance, I am also sick and tired of having to convert C99 programs to C89 in order to be able to compile them.
You are not going to get far with MS debugger and Intel compiler. You need a debugger that is compatible with the compiler's output. I simply use the intel C++ compiler + debugger package on all of my linux boxes. And you can get that for nothing. For windows I am not sure, but you do want both the compiler and debugger. Which might mean your IDE will present some issues.
They are compatible and I have used that combination before. We used to use the Intel compiler up to version 6.1 and we did our debugging in the MS Visual Studio IDE. For Windows, we always had to do that. On Linux, you can use Eclipse with the C++ compiler and that works real nice.

The only problem I am facing is that there are dozens of combinations and a huge spectrum of price ranges. I just want to know which one I need to get the high end C++ compiler. I don't need Fortran or some of their other stuff.
Every time I have tried, I find a glitch here and there. Not a lot, but enough that it makes debugging a hassle at times. I either use gcc/gdb or else icc/idb...
rbarreira
Posts: 900
Joined: Tue Apr 27, 2010 3:48 pm

Re: For the Intel compiler experts

Post by rbarreira »

Using the Intel C Compiler is fine if your executables are for personal use or if you only intend it to run on Intel CPUs.

If you intend for the code to run on AMD CPUs, it will pretty much run like crap because the CPU is detected not to be Intel and is given a crappy codepath (or doesn't start up at all if one of the -x options is used).