Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Optimization icpc 13 vs icpc 14

Sergio_S_
Beginner
527 Views

Currently I am working on a simulation project which I develop in my own pc (Chakra linux, intel core i5). When I compile using icpc v 14.0.2 I get really nice results in terms of speed. The problem is that when I compile the code in a cluster (CentOs,  Xeon E7-8837 ) using icpc v 13.1.1 the execution time doubles. I have really no clue on what can be the cause of such behavior as my code is relatively simple. I would like to know what could be the possible causes and how to check them. Also If further information is needed please let me know so I can update the post.

0 Kudos
1 Solution
TimP
Honored Contributor III
527 Views

Intel compiler team may be pleased to hear of your satisfaction with the current release.

Suitable advice may depend on your goals.  A number of missed optimizations were corrected in later compilers.

If your hidden agenda includes asking for suggestions on how to persuade your sysadmin to add the newer installation, that's beyond the scope of what you asked.

Among the possibilities:

1) use compiler optimization diagnostics to see if the newer compiler reports performing additional optimizations

a)  -opt-report option.  In a Makefile, -opt-report-file=*$_opt.txt often works to make a report for each source file.

b) compare reports obtained by the method at

http://software.intel.com/en-us/articles/vecanalysis-python-script-for-annotating-intelr-compiler-vectorization-report

2) performance profiling, e.g. by VTune or gprof, to locate the differences

3) post your code in case someone here may be interested in looking into this

View solution in original post

0 Kudos
5 Replies
TimP
Honored Contributor III
528 Views

Intel compiler team may be pleased to hear of your satisfaction with the current release.

Suitable advice may depend on your goals.  A number of missed optimizations were corrected in later compilers.

If your hidden agenda includes asking for suggestions on how to persuade your sysadmin to add the newer installation, that's beyond the scope of what you asked.

Among the possibilities:

1) use compiler optimization diagnostics to see if the newer compiler reports performing additional optimizations

a)  -opt-report option.  In a Makefile, -opt-report-file=*$_opt.txt often works to make a report for each source file.

b) compare reports obtained by the method at

http://software.intel.com/en-us/articles/vecanalysis-python-script-for-annotating-intelr-compiler-vectorization-report

2) performance profiling, e.g. by VTune or gprof, to locate the differences

3) post your code in case someone here may be interested in looking into this

0 Kudos
Bernard
Valued Contributor I
527 Views

>>>The problem is that when I compile the code in a cluster (CentOs,  Xeon E7-8837 ) using icpc v 13.1.1 the execution time doubles>>

Maybe this issue could be related to the NUMA distances.

Does your code use multithreading?If it does did you pin threads to specific core?

0 Kudos
KitturGanesh
Employee
527 Views

Hi Sergio,
Yes, the compiler team will be pleased to hear of your satisfaction with 14.X the current release, appreciate much.  On your question, there's no other way other than to find out from optimization reports (-opt-report-file, -opt-report-phase options etc) like Tim mentioned or use performance analyzers such as Vtune etc. that will give a clue.

Also, with the latest release there are some improvements to optimizations per-se for some specific targets etc., so you'll need to use optimization reports or profilers to analyze accordingly.

Regards,
Kittur

0 Kudos
Sergio_S_
Beginner
527 Views

Dear all thank you for your messages, I am still trying to see where the difference may come from, as soon as I have some news I will update the post.

Regards

Sergio

0 Kudos
KitturGanesh
Employee
527 Views

Thanks Sergio, please let us know so I can pass it on to our product team, appreciate much.

0 Kudos
Reply