Coder Social home page Coder Social logo

Comments (13)

sebwolf-de avatar sebwolf-de commented on July 26, 2024

Hi Thomas,

1.) You can specify additional paths to be searched by cmake with -DCMAKE_PREFIX_PATH=...
2.) The LIB should point to a .so or .a file not the directory. This will be solved by 1.)
3.) This should be solved by 2.)

Depending on how you compiled PUMI, you may have to alter cmake/FindSimmetrix.cmake, see https://github.com/SeisSol/PUMGen/tree/xml-newerSimMod.

I can successfully compile PUMGen on supermuc with cmake (on the xml branch) with

cmake .. -DCMAKE_PREFIX_PATH=~/myLib -DSIMMETRIX=ON -DSIMMETRIX_ROOT=~/myLib/15.0-190821dev/ -DCMAKE_BUILD_TYPE=Release && make -j8

from pumgen.

Thomas-Ulrich avatar Thomas-Ulrich commented on July 26, 2024

Hi,
Thank you for your answer. So I tried:

mkdir build_cmake
cd build_cmake
cmake .. -DCMAKE_PREFIX_PATH=/hppfs/work/pr45fi/di73yeq4/myLibs/core:/hppfs/work/pr63qo/di73yeq4/myLibs/SimModelerLib/14.0-190921 -DSIMMETRIX=ON -DSIMMETRIX_ROOT=/hppfs/work/pr63qo/di73yeq4/myLibs/SimModelerLib/14.0-190921 -DCMAKE_BUILD_TYPE=Release && make -j8

but gets:

di73yeq4@login03:/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/build_cmake/build_cmake> cmake .. -DCMAKE_PREFIX_PATH=/hppfs/work/pr45fi/di73yeq4/myLibs/core:/hppfs/work/pr63qo/di73yeq4/myLibs/SimModelerLib/14.0-190921 -DSIMMETRIX=ON -DSIMMETRIX_ROOT=/hppfs/work/pr63qo/di73yeq4/myLibs/SimModelerLib/14.0-190921 -DCMAKE_BUILD_TYPE=Release && make -j8
-- HDF5: Using hdf5 compiler wrapper to determine C configuration
-- Could NOT find APF (missing: APF_INCLUDE_DIR APF_LIBRARIES) 
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/APF_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/APF_SIM_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/APF_ZOLTAN_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/GMI_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/GMI_SIM_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/LION_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/MA_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/MDS_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/MTH_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/PCU_INCLUDE_DIR
   used as include directory in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
APF_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
APF_SIM_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
APF_ZOLTAN_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
GMI_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
GMI_SIM_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
LION_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
MA_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
MDS_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
MTH_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
PCU_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen
SIM_PARTITINED_WRAPPER_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen

-- Configuring incomplete, errors occurred!
See also "/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/build_cmake/CMakeFiles/CMakeOutput.log".

Yet the header files of apf are in /hppfs/work/pr45fi/di73yeq4/myLibs/core/

di73yeq4@login03:/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/build_cmake/build_cmake> ls /hppfs/work/pr45fi/di73yeq4/myLibs/core/include/
agm.h          apfDynamicArray.h   apf.h        apfMixedNumbering.h  apfSIM.h       crv.h           gmi_lookup.h    lionPrint.h  maShape.h               mthAD.h      mthVector.h   phBC.h            pumi.h             samSz.h
apf2mth.h      apfDynamicMatrix.h  apfMatrix.h  apfNew.h             apfVector.h    GenIterator.h   gmi_mesh.h      maDBG.h      maSize.h                mth_def.h    parma.h       ph.h              pumi_list.h        spr.h
apfArray.h     apfDynamicVector.h  apfMDS.h     apfNumberingClass.h  apfZoltan.h    GenTag.h        gmi_null.h      maExtrude.h  maSolutionTransfer.h    mth.h        PCU.h         phInput.h         pumi_version.h
apfBox.h       apfFieldData.h      apfMesh2.h   apfNumbering.h       canArray.h     gmi_analytic.h  gmi_sim.h       ma.h         maStats.h               mthMatrix.h  pcu_io.h      phiotimer.h       reel.h
apfCavityOp.h  apfField.h          apfMesh.h    apfPartition.h       canNewArray.h  gmi_base.h      lionBase64.h    maInput.h    maTables.h              mthQR.h      pcu_util.h    phstream.h        samElementCount.h
apfConvert.h   apfGeometry.h       apfMIS.h     apfShape.h           chef.h         gmi.h           lionCompress.h  maMesh.h     mPartEntityContainer.h  mthTensor.h  phastaChef.h  pumi_errorcode.h  sam.h

from pumgen.

sebwolf-de avatar sebwolf-de commented on July 26, 2024

cmake is a bit picky with : seperated lists. They require ; as a separator. As ; has a meaning for bash itself, you have to esacpe it with \;
Anyways you do not need to specify the simmodeler path in the CMAKE_PREFIX_PATH.

from pumgen.

Thomas-Ulrich avatar Thomas-Ulrich commented on July 26, 2024

I see thx very useful. Now I get:

di73yeq4@login03:/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/build_cmake> cmake .. -DCMAKE_PREFIX_PATH=/hppfs/work/pr45fi/di73yeq4/myLibs/core -DSIMMETRIX=ON -DSIMMETRIX_ROOT=/hppfs/work/pr63qo/di73yeq4/myLibs/SimModelerLib/14.0-190921 -DCMAKE_BUILD_TYPE=Release && make -j8
-- HDF5: Using hdf5 compiler wrapper to determine C configuration
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
SIM_PARTITINED_WRAPPER_LIB
    linked by target "pumgen" in directory /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen

-- Configuring incomplete, errors occurred!

I think the SIM_PARTITINED_WRAPPER_LIB is here:

di73yeq4@login03:/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/build_cmake> ls /hppfs/work/pr63qo/di73yeq4/myLibs/SimModelerLib/14.0-190921/lib/x64_rhel6_gcc44/
acisKrnl          libSimAcis2017.a    libSimDiscrete.a  libSimField.a    libSimMeshTools.a  libSimParasolid310.a     libSimPartitionedMesh-mpi.a  libSimPartitionWrapper-mpich3.a    libSimPartitionWrapper-openmpi3.a
libSimAbstract.a  libSimAdvMeshing.a  libSimExport.a    libSimMeshing.a  libSimModel.a      libSimPartitionedMesh.a  libSimPartitionWrapper.a     libSimPartitionWrapper-openmpi2.a  psKrnl

from pumgen.

sebwolf-de avatar sebwolf-de commented on July 26, 2024

On the xml branch cmake looks for ´libSimPartitionWrapper-mpich.a´. In your lib folder there is only the -mpich3 file. I do not know why exactly, in my folder there is a -mpich as well as a -mpich3 file.
Have you tried the branch I've posted earlier? There it should be fixed.

from pumgen.

Thomas-Ulrich avatar Thomas-Ulrich commented on July 26, 2024

Great I'm almost there

di73yeq4@login03:/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/build_cmake> cmake .. -DCMAKE_PREFIX_PATH=/hppfs/work/pr45fi/di73yeq4/myLibs/core -DSIMMETRIX=ON -DSIMMETRIX_ROOT=/hppfs/work/pr63qo/di73yeq4/myLibs/SimModelerLib/14.0-190921 -DCMAKE_BUILD_TYPE=Release && make -j8
-- HDF5: Using hdf5 compiler wrapper to determine C configuration
-- Found SIMMETRIX: /hppfs/work/pr45fi/di73yeq4/myLibs/core/include;/hppfs/work/pr45fi/di73yeq4/myLibs/core/include;/hppfs/work/pr45fi/di73yeq4/myLibs/SimModelerLib/14.0-190921/include  
-- Configuring done
-- Generating done
-- Build files have been written to: /hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/build_cmake
Scanning dependencies of target tinyxml2
[  9%] Building CXX object CMakeFiles/tinyxml2.dir/submodules/tinyxml2/tinyxml2.cpp.o
[ 18%] Linking CXX static library libtinyxml2.a
[ 18%] Built target tinyxml2
Scanning dependencies of target pumgen
[ 27%] Building CXX object CMakeFiles/pumgen.dir/src/input/SimModSuite.cpp.o
[ 45%] Building CXX object CMakeFiles/pumgen.dir/src/meshreader/GambitReader.cpp.o
[ 45%] Building CXX object CMakeFiles/pumgen.dir/src/pumgen.cpp.o
[ 54%] Building CXX object CMakeFiles/pumgen.dir/src/meshreader/FidapReader.cpp.o
[ 63%] Building CXX object CMakeFiles/pumgen.dir/src/input/MeshAttributes.cpp.o
[ 90%] Building CXX object CMakeFiles/pumgen.dir/src/input/AnalysisAttributes.cpp.o
[ 90%] Building CXX object CMakeFiles/pumgen.dir/src/input/ParallelVertexFilter.cpp.o
[ 90%] Building CXX object CMakeFiles/pumgen.dir/src/input/split.cpp.o
[100%] Linking CXX executable pumgen
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: /hppfs/work/pr45fi/di73yeq4/myLibs/core/lib/libma.a(maSnap.cc.o): undefined reference to symbol '__libm_sse2_sincos'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: /lrz/sys/intel/studio2019_u5/compilers_and_libraries_2019.5.281/linux/compiler/lib/intel64/libimf.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/pumgen.dir/build.make:221: recipe for target 'pumgen' failed
make[2]: *** [pumgen] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/pumgen.dir/all' failed
make[1]: *** [CMakeFiles/pumgen.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

from pumgen.

sebwolf-de avatar sebwolf-de commented on July 26, 2024

I haven't seen this linker error. How did you compile pumi? Make sure, you use the same compiler/modules.
Do ccmake in the pumi build folder and inspect the mpirun variable. This could be a good lead.

from pumgen.

uphoffc avatar uphoffc commented on July 26, 2024

Might be a compiler mismatch. Did you use the intel compiler for core/lib/libma.a?

from pumgen.

Thomas-Ulrich avatar Thomas-Ulrich commented on July 26, 2024

I found some answers in the Makefile I was using for compile SimModeler.

  1. If you set PQUAL := -mpich3 then you get a libSimPartitionWrapper-mpich3.a.
    So I guess we should leave it with PQUAL := -mpich, and not update the Cmakefile as you did.
  2. in the same make file, CC and CXX were hardcoded to some slightly older compiler version.
    At the end, I change them to:
PQUAL := -mpich

# Replace this with the path to MPI-C and MPI-C++ compilers
CC :=  $(shell which mpicc)
CXX := $(shell which mpiCC)

I anyway recompiled core, SimModeler and pumgen, but still get the same error.
(pumgen compiles without problem with scons).
note that the problem might be here (/usr/bin/cc):

di73yeq4@login03:/hppfs/work/pr45fi/di73yeq4/myLibs/PUMGen/build_cmake> cmake .. -DCMAKE_PREFIX_PATH=/hppfs/work/pr45fi/di73yeq4/myLibs/core -DSIMMETRIX=ON -DSIMMETRIX_ROOT=/hppfs/work/pr63qo/di73yeq4/myLibs/SimModelerLib/14.0-190921 -DCMAKE_BUILD_TYPE=Release && make -j8
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works

from pumgen.

uphoffc avatar uphoffc commented on July 26, 2024

You should set -DCMAKE_C_COMPILER= and -DCMAKE_CXX_COMPILER=<c++ compiler>.

You can also use "ccmake .." to get a graphical overview of all available options.

from pumgen.

sebwolf-de avatar sebwolf-de commented on July 26, 2024

I have the intel/19.0 and mpi.intel/2019 module loaded and I have:

-- The C compiler identification is Intel 19.0.5.20190815
-- The CXX compiler identification is Intel 19.0.5.20190815

from pumgen.

sebwolf-de avatar sebwolf-de commented on July 26, 2024

Hi,
I've checked again:
There are precompiled PartitionWrappers, no need to compile them on your own....
My modules are:

admin/1.0
tempdir/1.0
spack/release/19.2
lrz/1.0
scons/3.0.1
gcc/7
cmake/3.14.4
libszip/2.1.1
hdf5/1.8.20-intel-impi-frt-threadsafe
mpi.intel/2019
intel/19.0

1.) I've downloaded the latest Release of SimModSuite, using your download script.
2.) Extract all the files. In my case they are in ~/myLib/simmetrix/15.0-200822
3.) Check out latest PUMI master and edit cmake/FindSimModSuite.cmake such that MAX_VALID_SIM_VERSION is greater than 15.0.200822. This is no problem, they just havent updated. PUMI is in ~/myLib/core
4.) Build PUMI with CC=mpicc CXX=mpicxx cmake .. -DCMAKE_INSTALL_PREFIX=~/myLib -DENABLE_SIMMETRIX=ON -DSIM_MPI=mpich3 -DSIMMETRIX_LIB_DIR=~/myLib/simmetrix/15.0-200822/lib/x64_rhel7_gcc48/ -DSIMMODSUITE_INCLUDE_DIR=~/myLib/simmetrix/15.0-200822/include/ && make -j48 && make install
5.) Checkout PUMGen xml-newerSimMod.
6.) Build with cmake .. -DCMAKE_PREFIX_PATH=~/myLib -DSIMMETRIX=ON -DSIMMETRIX_ROOT=~/myLib/simmetrix/15.0-200822/ -DCMAKE_BUILD_TYPE=Release && make -j48
I havent tested if PUMgen works corrctly, but it builds and runs afterwards (=shows the help)

from pumgen.

Thomas-Ulrich avatar Thomas-Ulrich commented on July 26, 2024

Hi,
using -DCMAKE_C_COMPILER=<c compiler> and -DCMAKE_CXX_COMPILER=<c++ compiler> allowed me to compile with cmake, great!

And good for the precompiled PartitionWrappers, this will simplify even more the installation process.

I will update the wiki!

from pumgen.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.