📜 ⬆️ ⬇️

We are testing the new Intel Parallel Studio XE 2011 beta

Here, finally, I got to try the C ++ compiler included in the Intel Parallel Studio XE 2011 beta. I give a brief account of my experiments.


Download and try the new version of Parallel Studio here: Intel Parallel Studio XE 2011 for Windows * Beta Registration . The license for the beta version is granted for several months, so time for experimenting with the instrument is sufficient. The size of the distribution (for IA-32 / Intel 64 - 1 GB) is somewhat surprising, but at the present time, I think, downloading it will not be problematic.

My colleagues at Intel Parallel Studio were actually interested in one single issue - the build of PVS-Studio . I wanted to see if we get a performance boost? and what will be this increase.
')
I am not interested in abstract small example programs where something is quickly considered mathematical. It is too detached from reality. And we have our own completely real project in our hands, which is a work on graphs ( parse tree ).

The PVS-Studio analyzer has a configuration for building under Win32 and Win64. We were finished, first of all, interested in the 64-bit build, but, unfortunately, it didn’t work well with it. We use Boost, which we failed to build for Win64. Perhaps we did something wrong and our hands are not there. However, it seems the reason is still in the compiler defect, with the result that in many files we received messages like:
  c: \ boost_1_44_0 \ libs \ iostreams \ src \ file_descriptor.cpp (294) 
 (col. 1): internal error: 0_1374
 compilation aborted for libs \ iostreams \ src \ file_descriptor.cpp 
 (code 4) 

There were no problems with other configurations of the Boost library:
Intel Parallel Studio XE 2011 beta, Boost
As you can see, Debug is successfully built in both 32-bit and 64-bit mode. Unfortunately, the Debug versions are not interesting to us, so we had to limit ourselves to comparing Release Win32 and Release Win64.

Another unpleasant minor moment turned out that Intel C ++ still has not learned to support “nullptr”, which appeared in C ++ 0x. I had to do an insert in stdafx.h:
  #ifdef __INTEL_COMPILER
   #define nullptr 0
 #endif 

And now the most interesting thing is the measurement of the speed of the internal tests. A simple recompilation of a project does nothing, it even slows down its work:
Picture 2
However, using the / Qipo “Multifile interprocedural optimization” and / GA “Optimize for Windows Applications” keys yields a noticeable performance boost:
Picture 3
But the use of the / Qparallel option (Tells the auto-parallelizer to generate multithreaded code in the parallel) did not give anything noticeable. But perhaps we simply “do not know how to prepare them,” and to our shame were not interested in continuing the study. It is not interesting for the reason that more detailed experiments with optimization possibilities make sense for us only relative to the 64-bit version. We hope the release of Intel Parallel Studio will be more stable and then we can continue. However, it is already clear that you can get a significant gain from changing the compiler. I recommend to try.

Source: https://habr.com/ru/post/103121/


All Articles