View Issue Details

IDProjectCategoryView StatusLast Update
0002879OpenFOAMBugpublic2018-03-14 21:52
Reportermschnait Assigned Tohenry  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionno change required 
PlatformGNU/LinuxOSOtherOS Version(please specify)
Summary0002879: Intel Compiler config.sh/settings
DescriptionPlease stop closing tickets without giving me a chance to respond.

I believe I have located the exact issue which I am facing with this branch.

etc/config.{,c}sh/settings does not account for WM_COMPILER being set to "Icc". It is unilaterally setting everything to gcc and g++. On the ESI fork, where I have built successfully with the intel compiler in the past, has an explicit check in that same script, where it looks for Clang, Cray, and Icc compilers, then setting WM_CC and such appropriately for each one.

I fail to see how you can say that this is not a flaw when this is not behaving as expected. Even the original solution that _you_ suggested (which is what I was already doing) does not produce the expected behaviour. You list "Icc" as being an option in etc/bashrc yet the scripts that are being sourced by that file do not, at all, look for Icc in that variable.

config.sh/examples/compiler contains a reference to Icc, but that file is not sourced.
TagsNo tags attached.

Activities

mschnait

2018-03-14 20:45

reporter   ~0009422

Note: This is for the OpenFOAM-5.x branch

henry

2018-03-14 21:38

manager   ~0009423

Building third-party software with the Intel compiler is no relable so by default we use gcc for this, however when WM_COMPILER is set to Icc OpenFOAM does compile with the Intel compiler. Note WM_CC is only used for the compilation of the third party software, not OpenFOAM.

The etc/config.sh/example/compiler file show how WM_CC and WM_CXX would be set to compile third party software with the Intel compiler but we do not recommend it.

mschnait

2018-03-14 21:49

reporter   ~0009424

Henry, thank you for that explanation. That is much clearer. It might be beneficial to look into commentating this better in the scripts, and/or handling the case a bit differently. Particularly in HPC environments, such as the one I am building this for, we avoid mixing compilers whenever possible, as issues with ABI compatibility occasionally arise. Thus, If I am building a software package with icc 2017, all of the dependencies of that software will also be built as such. Likewise, if I am building with gcc 6.1, all of the dependencies will be as well. It makes perfect sense to have the current behaviour be the default, but maybe it should be controlled by a variable in the bashrc file, rather than having it in a separate file that is normally not sourced, either as an option for WM_COMPILER such as "IccAll" or the like, or some sort of override variable.

Thanks

Issue History

Date Modified Username Field Change
2018-03-14 20:43 mschnait New Issue
2018-03-14 20:45 mschnait Note Added: 0009422
2018-03-14 21:38 henry Note Added: 0009423
2018-03-14 21:49 mschnait Note Added: 0009424
2018-03-14 21:52 henry Assigned To => henry
2018-03-14 21:52 henry Status new => closed
2018-03-14 21:52 henry Resolution open => no change required