On a work server we have installed the intel compiler using Parallel studios 2017 update 2 cluster edition. We are most of the way through our 30-day evaluation period with having trouble getting wps and wrf to compile.
After finding the fix to the wps and wrf compile issues they both compiled correctly using ifort. When trying to run the built executable (mainly in WPS) i firstly get an error which links back to an intel compiler error i think where it cannot open libifort.so.5. Sourcing the intel compiler fixes this, however i then get an error saying undefined symbol when trying to run one executable. Looking back at the compile logs i can see there was a command line warning where it ignored -f90=ifort, could this be the issue with the the undefined symbol error?
when running these built executables do we need to source the ifort compilers every time?
On my own laptop i have installed the parallel studios 2017 update 3 cluster edition and i firstly dont get this -f90=ifort warning in the compile logs and when running the executables i dont need to source the intel compilers into any path or LD library path. I have followed the same steps on both machines to install intel compilers, the dependant libraries, WRF and WPS. The only difference is that one is running debian 64bit and the other is centos7 64bit with the centos7 one being the server with the issue.
I found one forum post which suggested it could be a glibc library issue with a conflicting 32bit and 64bit version install when installing the intel compiler.
Any suggestions as to how to fix these errors and why the difference in the different servers?
Okay so just to update after a little bit of tinkering i have fixed the problems listed above by making sure all the intel compiler libraries are set in the LD_LIBRARY_PATH.
I have now run into additional problems when once compiled the executables i then need to add a built library to the shared library path and also another ifort intel compiler library to the LD_LIBRARY_PATH every time. Should this need to be added everytime to a built executable? any suggestions as to how to fix this.
It is mainly running ungrib.exe with WRF.
I do not see any connection with a warning about –f90=ifort and setting LD_LIBRARY_PATH to include Intel libraries. –f90 is not even an ifort option (which explains the warning #100006) so that must somehow relate to the app’s build system but as you indicated, that issue seems to be resolved at this point.
I do not completely follow the latest issue. When building with ifort, the underlying environment must be properly initialized. The initialization is accomplished by source-ing the compilervars.csh (.sh) with the appropriate <arch> argument. This is only necessary once to initialize the underlying working shell. Included in the initialization is the proper setting of LD_LIBRARY_PATH at least in terms of the Intel Fortran compiler and run-time libraries. Any other additional settings for the application's libs would be up to the user. These environment settings are sufficient for building and running applications, including those which link the Intel Fortran compiler dynamic libraries.
If you are having to repeatedly reset at least LD_LIBRARY_PATH after building an executable for this app then that maybe suggests the app’s build system is altering the environment itself after a build completes, but, that doesn’t really sound plausible to me.
Again, I’m not completely following the issue, however, what you are describing does not sound anything related to the Intel compiler or the setup so you may have to contact the app providers about building the app and what you are describing experiencing unless there's others in your Forum with experience building and running this app.
Thanks for the quick reply Kevin,
After looking a little deeper i think the issue is with some dependants of the executable building dynamically and not statically built.
It needs libpng, zlib, jpeg and jasper. I did get a linking error when the -static-intel flag was on the CXX compiler flags and FFLAGS, which was left over in the terminal from a netcdf install. This said the libraries were not available for static build so built dynamically.
Redid these depedant libraries using exactly how you specify in this link https://software.intel.com/en-us/articles/wrf-and-wps-v311-installation-bkm-with-inter-compilers-and... and i dont get any linking error but the executables still loose a link to some libraries it needs.
Suspect they are still being dynamically built or there is a problem with how the executable is built with ifort and creating a linking error or is also dependant on the linking fortran libraries you mention, so will need to contact NCAR directly i think who build wrf.