Closed GregorySchwing closed 4 years ago
Adding these lines immediately previous to "cmake .." in 'metamake.sh' will accomplish this, and it will prevent further loss of time when people try to compile it without Intel compiler.
if [[ $ICC_PATH = "" ]] then echo "Intel compiler is required https://software.intel.com/en-us/parallel-studio-xe/choose-download/" exit 1; fi
Adding these lines immediately previous to "cmake .." in 'metamake.sh' will accomplish this, and it will prevent further loss of time when people try to compile it without Intel compiler. if [[ $ICC_PATH = "" ]] then echo "Intel compiler is required https://software.intel.com/en-us/parallel-studio-xe/choose-download/" exit 1; fi
That will work as a temporary fix, but users do have a reasonable expectation that codes will compile with gcc. We should figure out what the issue is with gcc and resolve it, if possible.
@go2432 @jpotoff @YounesN FreeEnergy branch has Multiparticle feature as well. In Multiparticle we use reduction operation on array for OpenMP parallelization. Older version of OpenMP does not support it but, OpenMP version 4.5 and newer supports it.
https://www.openmp.org/resources/openmp-compilers-tools/ From GCC 6.1, OpenMP 4.5 is fully supported for C and C++. From Intel version 17.0, 18.0, and 19.0, OpenMP 4.5 is supported for C/C++/Fortran .
The solution is to check OpenMP version either for GCC or Intel. If the version was older than 4.5, we should warn the user and disable the OpenMP flag.
@msoroush Just to follow up on this, Grid has by default gcc 7.3, GNU 4.8.5, and OpenMP 3.1. The way to compile on grid is to swap gnu7 for intel/2018. It is notable that intel/2019 won't compile on grid, but this isn't because of our code, but some security restrictions that university-level supercomputers pretty commonly implement. This should information should be included in the manual, especially since we recommend the intel compiler.
@msoroush Just to follow up on this, Grid has by default gcc 7.3, GNU 4.8.5, and OpenMP 3.1. The way to compile on grid is to swap gnu7 for intel/2018. It is notable that intel/2019 won't compile on grid, but this isn't because of our code, but some security restrictions that university-level supercomputers pretty commonly implement. This should information should be included in the manual, especially since we recommend the intel compiler.
What security restriction? I used to compile with intel/2019. In manual we should just include the minimum requirement that is needed to compile the code for OpenMP or MPI.
@msoroush Just to follow up on this, Grid has by default gcc 7.3, GNU 4.8.5, and OpenMP 3.1. The way to compile on grid is to swap gnu7 for intel/2018. It is notable that intel/2019 won't compile on grid, but this isn't because of our code, but some security restrictions that university-level supercomputers pretty commonly implement. This should information should be included in the manual, especially since we recommend the intel compiler.
What security restriction? I used to compile with intel/2019. In manual we should just include the minimum requirement that is needed to compile the code for OpenMP or MPI.
It works now. It wasn't working at some point (it may have been when I was working on an openMP version of PT as opposed to MPI), and I found a page from some other university's grid stating the compiler error I was getting was due to a restriction they place for security purposes. tl;dr - I'm wrong, it works now.
Describe the bug Free Energy branch doesn't build on gcc gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) It does build with icc icc version 19.0.4.227 (gcc version 5.4.0 compatibility)
Expected behavior Build on gcc or add a REQUIRE(icc) to CMakeLists.txt
Please complete the following information:
Compiler feedback attached. errors.txt