View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002879 | OpenFOAM | Bug | public | 2018-03-14 20:43 | 2018-03-14 21:52 |
Reporter | mschnait | Assigned To | henry | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | no change required | ||
Platform | GNU/Linux | OS | Other | OS Version | (please specify) |
Summary | 0002879: Intel Compiler config.sh/settings | ||||
Description | Please 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. | ||||
Tags | No tags attached. | ||||
|
Note: This is for the OpenFOAM-5.x branch |
|
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. |
|
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 |
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 |