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

Memory leak in ICC 17?

Trifud
New Contributor I
571 Views

Today I decided to try ICC 2017 Update 1. Halfway into my project the build computer seemed to hang up. I figured out that icpc allocates all RAM (24 GB) even when running with one thread. I restarted the computer and tried again - still the same issue. The code compiles just fine with ICC 2013. I am running on Debian 8. When I killed the process, the following was printed on the command line:

*** Error in `/opt/intel/compilers_and_libraries_2017.1.132/linux/bin/intel64/icpc': double free or corruption (!prev): 0x0000000002001b20 ***

Has anybody else had this issue?

0 Kudos
6 Replies
Judith_W_Intel
Employee
571 Views

 

That doesn't sound like a memory leak, it sounds like a endless recursion or infinite loop in the compiler. Can you please preprocess the file (using the -P or -E options) and then attach the preprocessed file along with the command line you were executing when this happened?

thanks

Judy

0 Kudos
Trifud
New Contributor I
571 Views

Unfortunately I cannot attach any source or binary code because this is against the rules of my organization. I figured out that the issue was in optimization. I get this problem with O2 but it works fine with O0. This affects three files (out of several thousand) in my project.

0 Kudos
Trifud
New Contributor I
571 Views

There also are issues with ifort. I just got this message:

ifort: error #10106: Fatal error in /opt/intel/compilers_and_libraries_2017.1.132/linux/bin/intel64/fortcom, terminated by kill signal

It seems that the 2017 version of the Intel compilers is too unstable to be used in production.

0 Kudos
Judith_W_Intel
Employee
571 Views

 

Two suggestions - one is to file an issue with Intel premier support - that way you could not have to make the code public.

A second suggestion is you could try the "creduce" tool to get the problematic source code reduced to a small test case (which you could presumably then share).

creduce is described here:

https://embed.cs.utah.edu/creduce/

 

 

 

0 Kudos
jimdempseyatthecove
Honored Contributor III
571 Views

You can try manipulating interprocedural optimizations. The default for -O2 is -ipo (multi-file)

Try:   -ip -no-ipo     (intra-file optimizations, but not inter-file optimizations)

If that fails try: -no-ip -no-ipo

Jim Dempsey

0 Kudos
Trifud
New Contributor I
571 Views

Thanks for the suggestions! Unfortunately I don't have the time to fight with this problem. I went for ICC 2016.4 instead. It works better.

0 Kudos
Reply