[petsc-dev] Fortran libraries cannot be used with C++ compiler

Pierpaolo Minelli pierpaolo.minelli at ba.imip.cnr.it
Wed Apr 2 03:21:06 CDT 2014


Hi,

thanks to everybody for your useful hints.
I solved my problem looking on this particular error on intel compiler forum.
I need to add to my original configure this:

—CXXFLAGS=‘-openmp -parallel’

because i use this option for C and Fortran Intel compiler too.
Using this option (-openmp), intel compiler links the thread safe version of Intel(R) MPI library.
If i use these thread safe library for C and Fortran, i must use also thread safe library for C++ if i want to avoid during compilation these type of errors.
Once i added, this flag everything went fine, and i was able also to successful do a ‘make’ and a ‘test’.

I hope that this could be helpful to someone else.

Thanks again for your time

Pierpaolo


Il giorno 01/apr/2014, alle ore 18:39, Satish Balay <balay at mcs.anl.gov> ha scritto:

> On Tue, 1 Apr 2014, Pierpaolo Minelli wrote:
> 
>> I am a fortran programmer so, i don’t know how to check this. 
>> I have the latest suite of Intel Compiler. (Intel Cluster Studio XE 2013).
>> Which type of check can i do to see if it is working c++ compiler?
> 
> The error is from intel MPI [not necessarily the C++ compiler]
> 
>> In the configure.log, it seems that some sources are compiled while this no, or i have seen wrong?
> 
> Its possible that intel compilers/mpi should be used in a perticular
> way - otherwise things break.
> 
> However I see you are using:
> 
> Configure Options: --configModules=PETSc.Configure --optionsModule=PETSc.compilerOptions --PETSC_DIR=/raid0/users/cscppm59/Installers/petsc --PETSC_ARCH=petsc_dev --with-debugger=idbc --with-cc=mpiicc --with-cxx=mpiicpc --with-fc=mpiifort --CFLAGS="-openmp -parallel" --FFLAGS="-ftz -O3 -prec-div -xSSE2 -mcmodel medium -shared-intel -openmp -parallel -fpp" --with-large-file-io=1 --with-debugging=0 --with-mpiexec="mpirun -f ~/mpd.hosts -r ssh" --with-blas-lapack-dir=/opt/intel/mkl/lib/intel64/ --with-threadcomm --with-openmp --with-x=0 --download-superlu_dist --download-parmetis -download-hypre -download-ml --download-metis
> 
> Do you need all the options? Esp -with-threadcomm --with-openmp CFLAGS="-openmp -parallel"  etc? Or is it that you assumed
> this is the way to get max performance off these MPI compilers?
> 
> Unless you really need these features - I'll suggest removing them.
> 
> also you can try the addtional options - and see if it makes a difference.
> 
> --with-clib-autodetect=0 --with-fortranlib-autodetect=0 --with-cxxlib-autodetect=0 LIBS="-Bstatic -lifcore -Bdynamic"
> 
> However - if you are developing code - and not doing performance runs
> [say on a cluster] - its best to build with  gcc/gfortran and --download-mpich.
> 
> Satish




More information about the petsc-dev mailing list