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?
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?
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.
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.
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:
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