On Sat, Feb 10, 2018 at 9:29 AM Éric Chamberland < eric.chamberl...@giref.ulaval.ca> wrote:
> Hi Matthew, > > Yes, I heard that the MPI C++ API has been deprecated. > It was *deprecated* in 2.2 and *deleted* in 3.0. Implementations may not delete the code but there is absolutely no expectation that it is supported by any recent implementation. I fought the MPI Forum until the bitter end about this, by the way, because we broke existing code in order to save the authors of new MPI functionality a few minutes of LaTeX boilerplate generation. It would be almost trivial to extract C++ bindings from MPICH and/or Open-MPI as a standalone project to fix these issues, but nobody has made the effort. Jeff Yes, the mpi_cxx is now missing. Our link line is formed mainly with > PETSC_WITH_EXTERNAL_LIB variable that is now: > > PETSC_WITH_EXTERNAL_LIB = -L/opt/petsc-master_debug/lib > -Wl,-rpath,/opt/petsc-master_debug/lib -L/opt/petsc-master_debug/lib > -L/opt/intel/composer_xe_2015.2.164/mkl/lib/intel64 > -Wl,-rpath,/opt/intel/composer_xe_2015.2.164/mkl/lib/intel64 > -Wl,-rpath,/opt/openmpi-1.10.2/lib -L/opt/openmpi-1.10.2/lib > -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.8.5 > -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5 > -Wl,-rpath,/opt/intel/composer_xe_2015.2.164/compiler/lib/intel64 > -L/opt/intel/composer_xe_2015.2.164/compiler/lib/intel64 > -Wl,-rpath,/opt/intel/composer_xe_2015.2.164/ipp/lib/intel64 > -L/opt/intel/composer_xe_2015.2.164/ipp/lib/intel64 > -Wl,-rpath,/opt/intel/composer_xe_2015.2.164/tbb/lib/intel64/gcc4.4 > -L/opt/intel/composer_xe_2015.2.164/tbb/lib/intel64/gcc4.4 -lpetsc > -lsuperlu -lsuperlu_dist -lHYPRE -lcmumps -ldmumps -lsmumps -lzmumps > -lmumps_common -lpord -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lml > -lumfpack -lklu -lcholmod -lbtf -lccolamd -lcolamd -lcamd -lamd > -lsuitesparseconfig -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread > -lmkl_blacs_intelmpi_lp64 -liomp5 -ldl -lpthread -lparmetis -lmetis > -lptesmumps -lptscotch -lptscotcherr -lesmumps -lscotch -lscotcherr -lm > -lX11 -lstdc++ -ldl -lmpi_usempi -lmpi_mpifh -lmpi -lgfortran -lm > -lgfortran -lm -lgcc_s -lquadmath -lpthread -lrt -lm -lpthread -lz -lstdc++ > -ldl > > We add some stuff to this (our own compiled libs), but nothing related to > MPI or PETSc since we used to rely on PETSC_WITH_EXTERNAL_LIB for all our > diffrement environments (think about different petsc version, MPI libs and > compilers: clang, icc, g++) and it used to work until yesterday changes... > > As you can see in the diff, this "block" of libraries have been removed > from PETSC_WITH_EXTERNAL_LIB: (the -- is part of the diff output): > > --ldl > --lmpi_cxx > --lmpi > --lstdc++ > --lm > --lgcc_s > --lpthread > > and into this block there was the "-lmpi_cxx" that we need... > > I could send you our whole line of link, but the error is into this small > change introduced yesterday into master... > > Thanks a lot! > > Eric > > Le 18-02-10 à 10:34, Matthew Knepley a écrit : > > On Sat, Feb 10, 2018 at 9:42 AM, Éric Chamberland < > eric.chamberl...@giref.ulaval.ca> wrote: > >> Hi, >> >> we used to link our c++ code with PETSc using PETSC_WITH_EXTERNAL_LIB >> variable defined in $PETSC_DIR/lib/petsc/conf/petscvariables and everything >> was fine until this night. >> >> It seems some libs have vanished from this variable, see the diff here: >> >> -lptscotcherr >> -lesmumps >> -lscotch >> -lscotcherr >> -lm >> -lX11 >> +-lstdc++ >> -ldl >> -lmpi_usempi >> -lmpi_mpifh >> -lmpi >> -lgfortran >> -lm >> -lgfortran >> -lm >> -lgcc_s >> -lquadmath >> -lpthread >> --ldl >> --lmpi_cxx >> --lmpi >> --lstdc++ >> --lm >> --lgcc_s >> --lpthread >> -lrt >> -lm >> -lpthread >> -lz >> +-lstdc++ >> -ldl >> >> >> causing these errors at link phase for us: >> >> /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: >> In function `MPI::Op::Init(void (*)(void const*, void*, int, MPI::Datatype >> const&), bool)': >> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/op_inln.h:122: undefined >> reference to `ompi_mpi_cxx_op_intercept' >> /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: >> In function `MPI::Intracomm::Create_graph(int, int const*, int const*, >> bool) const': >> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/intracomm.h:25: undefined >> reference to `MPI::Comm::Comm()' >> /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: >> In function `MPI::Intercomm::Merge(bool) const': >> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/intracomm_inln.h:23: >> undefined reference to `MPI::Comm::Comm()' >> /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: >> In function `MPI::Intracomm::Split(int, int) const': >> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/intracomm_inln.h:23: >> undefined reference to `MPI::Comm::Comm()' >> /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: >> In function `MPI::Intracomm::Create(MPI::Group const&) const': >> /opt/openmpi-1.10.2/include/openmpi/ompi/mpi/cxx/intracomm_inln.h:23: >> undefined reference to `MPI::Comm::Comm()' >> /pmi/cmpbib/compilation_BIB_gcc_redhat_petsc-master_debug/COMPILE_AUTO/GIREF/obj/dev/StatistiqueMemoire.o: >> In function `MPI::Intracomm::Clone() const': >> >> Hi Eric, > > These symbols are all coming from -lmpi_cxx. I would note that I believe > the MPI Forum has deprecated the C++ interface, so it will > eventually go away. However, lets fix this. In the configure log, I see > that mpicxx -show has that library in it, so it seems that the link > is not being done with the C++ compiler. Can you send the whole link line? > > Thanks, > > Matt > > >> Is this a normal and definitive change or an unwanted/unobserved bug? >> >> Thanks, >> >> Eric >> >> ps: here are the logs: >> >> this night: >> >> --------- >> >> http://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.10.02h00m01s_configure.loghttp://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.10.02h00m01s_make.log >> >> >> a day before: >> ------------ >> http://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.09.02h00m02s_configure.loghttp://www.giref.ulaval.ca/~cmpgiref/petsc-master-debug/2018.02.09.02h00m02s_make.log >> >> > > > -- > What most experimenters take for granted before they begin their > experiments is infinitely more interesting than any results to which their > experiments lead. > -- Norbert Wiener > > https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/%7Emk51/> > > > -- Jeff Hammond jeff.scie...@gmail.com http://jeffhammond.github.io/