Hello,
A bug in the intel C/C++ compiler (at least version 11.1 on Nehalem architectures) may lead to a crash when writing restart files in parallel, with an error log indicating a segmentation fault under fvm_part_t_block_copy_array.
This bug does not appear when compiled in debug mode, nor does it appear with the Intel compiler on Itanium.
The attached file may be used to replace fvm-0.15.1/src/fvm_part_to_block.c to correct the issue (it simply lowers the optimization level when using the Intel compiler in the affected function).
Compiling FVM with GCC instead of ICC is another possible workaround.
Best regards,
Yvan
Intel compiler 11.1 produces incorrect optimized code in FVM
Forum rules
Please read the forum usage recommendations before posting.
Please read the forum usage recommendations before posting.
Intel compiler 11.1 produces incorrect optimized code in FVM
- Attachments
-
- fvm_part_to_block.c
- (20.27 KiB) Downloaded 241 times
Re: Intel compiler 11.1 produces incorrect optimized code in
Another alternate patch possible is attached here.
It does not lower the optimization level, but adds intermediate variables and seems to bypass the issue (this is actually the version of the file intended for patch release 2.0.1 and development versions 2.1.x, the intermediate variables being added to ensure arithmetic is done on long integers for meshes with more than 2 billion faces, but this change also seems to circumvent the compiler bug.
Best regards,
Yvan
It does not lower the optimization level, but adds intermediate variables and seems to bypass the issue (this is actually the version of the file intended for patch release 2.0.1 and development versions 2.1.x, the intermediate variables being added to ensure arithmetic is done on long integers for meshes with more than 2 billion faces, but this change also seems to circumvent the compiler bug.
Best regards,
Yvan
- Attachments
-
- fvm_part_to_block.c
- (20.44 KiB) Downloaded 231 times