Topic: OOFEM-2.4 compilation with Intel compilers

Dear all,

I am trying to compile OOFEM-2.4 with Intel compilers. After cmake configs, I get a first error message:

from /home/gvbv1r13/ReFRESCO/Dev/trunk/Libs/build/oofem-2.4.MARIN/src/oofemlib/gausspoint.C(35):
/home/gvbv1r13/ReFRESCO/Dev/trunk/Libs/build/oofem-2.4.MARIN/src/oofemlib/intarray.h(80): error: copy constructor for class "oofem::IntArray" may not have a parameter of type "oofem::IntArray"
      IntArray(IntArray &&src) : values(std::move(src.values)) { }
               ^

I tried compilers 16.0 (icc version 16.0.0 (gcc version 4.4.6 compatibility)) or icc version 17.0.0 (gcc version 4.4.6 compatibility), and the error (errors) are the same. If I try with gcc it works (4.4.6).
Not sure if relevant but I also use cmake/3.4.3, python/2.7.5  on a RedHat Server 6.3.

Can somebody give me some hints?

Thanks.

Guilherme Vaz

Re: OOFEM-2.4 compilation with Intel compilers

Hi Guilherme,

OOFEM uses C++11, and GCC 4.4 was released in 2009. 4.4.6 is  over 5 years old, and RHEL 6.3 is years beyond end-of-life.
The compilers are just way to old.

Re: OOFEM-2.4 compilation with Intel compilers

Thanks for the answer Mikael.
Of course we are doing this on HPC clusters, where all software is very conservative (read old).
Dont ask me about the gcc compatibility of the intel compiler (dont know why), but the intel compiler I used is the last version one can have.
But If I understood correctly, it is better than just to compile OOFEM with gcc, and a newer version than 4.4.6? But have you tried to compile it with Intel CC/C++ anyhow?

Thanks.

Guilherme V.

Re: OOFEM-2.4 compilation with Intel compilers

Hi Guilherme,

As a system administrator for a HPC cluster myself, I hope the system you use also have some form of module system available.
I mean, as in
module avail
module load GCC
etc.

Rarely would one have a HPC system that's actaully tied down to the OS libraries.

I have to admit, it's been quite some time since I got around to build OOFEM with icpc.

Re: OOFEM-2.4 compilation with Intel compilers

Mikael,

Yes it has.
Here the results of some tests, with the versions I have available in two different HPC clusters:
- with gnu compilers 4.4.6 oofem does not compile...
- with gnu compilers 4.8.1 oofem compiles!
- with gnu compilers 4.8.5 oofem compiles!
- with gnu compilers 4.9.1 oofem compiles!
- with gnu compilers 6.1.0 oofem does not compile...
- with intel compiler 17.0.0 oofem does not compile...

Thus, I can use the gnu compilers, but it is a pity that Intel compilers do not work with it.

Thanks,
Guilherme V.

Re: OOFEM-2.4 compilation with Intel compilers

Failures in 6.1 should be fixable.

I think the intel compilers link to some gcc-core. The module system should have taken care to link to a newer version there. You could probably ask the system administrators for the cluster if such a module can be made available.

But GCC is quite capable as well. Make sure to link to a good BLAS/LAPACK library (the intel MKL or OpenBLAS should both be excellent) and PETSc for a solver. The -march=native flag could also be interesting to push performance.