- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am attempting to build a third-party application, https://github.com/idaholab/moose, using the instructions at http://www.mooseframework.org/getting-started/.
To adapt to our Intel Parallel Studio Cluster ed., the configure command in the main build script of this application (scripts/update_and_rebuild_libmesh.sh) was modified with these lines:
--with-thread-model=tbb \
--with-tbb=/nopt/intel/17.0.5/tbb \
CC=mpiicc CXX=mpiicpc FC=mpiifort F77=mpif77 \
CFLAGS="-axCORE-AVX2,AVX" \
CXXFLAGS="-axCORE-AVX2,AVX" \
FCFLAGS="-axCORE-AVX2,AVX" F77FLAGS="-axCORE-AVX2,AVX" \
LDFLAGS="-Wl,-rpath-link,/nopt/intel/psxe2017u2/compilers_and_libraries_2017.5.239/linux/compiler/lib/intel64" \
PETSC_DIR=$HOME/petsc-3.8 PETSC_ARCH=impi-intel \
I load the Intel environment on top of an Anaconda version 5 build environment, but the same thing happens on top of a standalone GCC 7.2 installation.
The build proceeds fine until:
...
CXX src/systems/libmesh_dbg_la-fem_context.lo
/nopt/nrel/apps/anaconda/5.0.1-cos7/bin/../x86_64-conda_cos6-linux-gnu/include/c++/7.2.0/ext/new_allocator.h(136): error: function "std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2> &) [with _T1=const libMesh::FEType, _T2=std::unique_ptr<libMesh::FEAbstract, std::default_delete<libMesh::FEAbstract>>]" (declared at line 292 of "/nopt/nrel/apps/anaconda/5.0.1-cos7/bin/../x86_64-conda_cos6-linux-gnu/include/c++/7.2.0/bits/stl_pair.h") cannot be referenced -- it is a deleted function
I have tried adding to CFLAGS and CXXFLAGS "-no-gcc-include-dir -use-intel-optimized-headers", but the identical error is generated.
The developers claim that their tests with the same Intel compilers pass fine.
Questions,
1. Is there an obvious workaround that uses the same commands?
2. Is there a way to substitute Intel headers and avoid the GCC headers, in case there is an inconsistency?
Linux login4 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Thanks,
Chris
- Tags:
- CC++
- Development Tools
- Intel® C++ Compiler
- Intel® Parallel Studio XE
- Intel® System Studio
- Optimization
- Parallel Computing
- Vectorization
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
17.0 compiler does not support gcc7.2.
try an older gcc like gcc 6.2
see release-notes: https://software.intel.com/en-us/articles/intel-c-compiler-170-for-linux-release-notes-for-intel-parallel-studio-xe-2017#sysreq ;
Jennifer
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
17.0 compiler does not support gcc7.2.
try an older gcc like gcc 6.2
see release-notes: https://software.intel.com/en-us/articles/intel-c-compiler-170-for-linux-release-notes-for-intel-parallel-studio-xe-2017#sysreq ;
Jennifer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Chris,
Seems like you have a newer GCC version (7.2) which isn't supported in ICC 17.0.5. Do you have an older GCC version installed? If so, you can try -gcc-name=<name>: name and location of gcc if not where expected.
Thanks,
Viet
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Jennifer and Viet, using GCC 6.2 appears to have gotten past this issue. (Sorry I can't flag both your replies as Best, they're both very helpful!)
Just so I know, does Intel distribute a full set of headers in their compiler suites? Or are there some that must be supplied by GCC? From the description of the -no-gcc-include-dir option, it sounded like GCC could be bypassed, but I'm not sure if some standard C++ headers would still be missing.
Thanks again! - Chris

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page