Compilatore C++ Intel®

ICC vs. GCC: Strange scaling behavior of an OpenMP parallelized benchmark

I am currently preparing two benchmarks of a new 240-core E7-x890v2 server. On a 60-core test machine (four sockets with E7-4890v2, HyperThreading and TurboBoost enabled; RHEL 7, Transparent Huge Pages activated) I get the following timings for "Benchmark A" with ICC v14.0.2 and GCC v4.8.2:

 

==  60 cores  ===============================================================

----  GCC executable  -------------------------------------------------------

        Finished in 187.65 second(s) CPU time, 3.144 second(s) WALL time.

Missed optimization opportunity

Hey all,

I just noticed a missed performance opportunity:

#include <cmath>
int main()
{
  const double C[2] = { 1., 0. };
  double v = C[1]  * cos(.42 * argc);
  return v;
}

This will call cos even though the result will always be 0. Now compare this to this code:

#include <cmath>
int main()
{
  double v = 0. * cos(.42 * argc);
  return v;
}

Here, the call to cos is properly optimized away. This is what I'd expect from the first code as well.

How to use Intel Cilk Plus extension, to speed up your Android application with threading features

Intel Cilk Plus is an important language extension of Intel Compiler, to help you implement multiple-threading easily and fast, to improve your application's performance on multi-core systems. While more and more cores on Android devices, it is also more important to efficiently use the multi-core features.
  • Sviluppatori
  • Professori
  • Studenti
  • Android*
  • Android*
  • C/C++
  • Intermedio
  • Intel® INDE
  • Compilatore C++ Intel®
  • Intel® Parallel Studio XE
  • Intel® System Studio
  • VersionSpecific
  • PlatformSpecific
  • Strumenti di sviluppo
  • Contratto di licenza: 

    How to tell icpc to use a different GCC toolchain?

    Hello,

    as a follow-up to my issues with using ICC with GCC 4.9, I now compiled GCC 4.8. How do I now tell ICC to use that? I've tried the -cxxlib=/path/to/gcc-48 switch. But what does it really expect the path to contain? Apparently a bin/g++, OK. But now I get this:

    icpc: error #10001: could not find directory in which the set of libstdc++ include files resides

    What does this mean? The last lines of output from a strace -f run is pasted below. Note how it finds e.g. /usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include but then tries to access /usr/include/g++ - why?

    TBB example compiled with gcc run faster than icc

    Hi all,

    I'm learning TBB, according to TBB's getting started guide, I compile the TBB example in /opt/intel/tbb/examples/GettingStarted/sub_string_finder

    compile with icc -O2 -DNDEBUG  -o sub_string_finder_extended sub_string_finder_extended.cpp -ltbb -lrt:

    ./sub_string_finder_extended

     Done building string.

     Done with serial version.

     Done with parallel version.

     Done validating results.

    Serial version ran in 4.51256 seconds

    Parallel version ran in 1.27341 seconds

    Compilation error when building Boost.Python on OS X

    I'm trying to build boost.Python with composer xe 2013 sp1:

    boost version: 1_55

    ./bootstrap.sh --with-toolset=intel-darwin --with-libraries=python

    ./b2 variant=release threading=multi link=shared

    intel-darwin.compile.c++ bin.v2/libs/python/build/intel-darwin/release/threading-multi/object/inheritance.o

    In file included from ./boost/unordered_set.hpp(16),

                     from ./boost/graph/adjacency_list.hpp(21),

                     from libs/python/src/object/inheritance.cpp(11):

    Iscriversi a Compilatore C++ Intel®