Giter Club home page Giter Club logo

Comments (10)

rppawlo avatar rppawlo commented on August 19, 2024

We just had a user get burned by this. The mpi files are coming from zoltan. If zoltan (or seacas) is built in serial, then zoltan enables a fake MPI library called siMPI so that they don't have to ifdef out mpi calls in their code base for serial builds. siMPI provides a serial back end that I believe are mostly no-ops. The Drekar use case allows seacas to be built and installed in serial, but Drekar is parallel and requires MPI. So the Drekar/Trilinos build was accidentally finding and including the siMPI installed header (mpi.h) instead of the true MPI header (cmake path search), resulting in failures. If a code using seacas requires MPI, you need to build seacas (and thus zoltan) with MPI enabled. Perhaps a good fix is to set the default flag to enable zoltan in seacas to "on" for parallel builds and "off" for serial builds. cc'ing zoltan dev @kddevin

from seacas.

gsjaardema avatar gsjaardema commented on August 19, 2024

from seacas.

kddevin avatar kddevin commented on August 19, 2024

@rppawlo thanks for bringing this issue to my attention.
You have diagnosed the problem correctly. I could investigate whether it would be difficult to change the include file names from our serial MPI. But it wouldn't get done until next month, at the earliest. What is your timeframe?

from seacas.

kddevin avatar kddevin commented on August 19, 2024

@trilinos/zoltan

from seacas.

rppawlo avatar rppawlo commented on August 19, 2024

@kddevin No rush on our side. We changed all our build/test scripts to always build parallel seacas tools and will add a section to our build instructions warning users. It might be more of a priority for @nschloe though for debian installation.

from seacas.

nschloe avatar nschloe commented on August 19, 2024

At the moment, we simply don't include SEACAS in the Debian build.

from seacas.

gsjaardema avatar gsjaardema commented on August 19, 2024

Instead of changing include file names, it may be best to change the location where they are installed (which was one of Nico's suggestions). Perhaps install in include/siMPI/mpi.h instead of include/mpi.h and then have the seacas or Trilinos build system add the correct include path based on whether this is a parallel or serial build.

from seacas.

kddevin avatar kddevin commented on August 19, 2024

@nschloe I admit I don't understand the target for the debian build. Is it a strictly serial build?

from seacas.

nschloe avatar nschloe commented on August 19, 2024

@kddevin The CMake configure line in [1] contains

  -DBUILD_SHARED_LIBS:BOOL=ON \
  -DHDF5_ROOT:PATH=/usr/ \
  -DSEACAS_ENABLE_ALL_PACKAGES:BOOL=ON \
  -DSEACAS_ENABLE_TESTS:BOOL=OFF \
  -DSEACAS_USE_GNUINSTALLDIRS:BOOL=ON \
  -DTPL_ENABLE_CGNS:BOOL=OFF \
  -DTPL_ENABLE_Matio:BOOL=ON \
  -DTPL_ENABLE_METIS:BOOL=ON \
  -DTPL_ENABLE_ParMETIS:BOOL=ON \
  -DTPL_ENABLE_Netcdf:BOOL=ON \
  -DTPL_ENABLE_MPI:BOOL=OFF \
  -DTPL_ENABLE_Pamgen:BOOL=OFF \
  -DTPL_ENABLE_X11:BOOL=OFF \
  -DTPL_ENABLE_Zlib:BOOL=ON

so you're right: This is a serial build. (Note though that the the log is almost a year and a half old; I haven't been able to build at all recently because of compile errors from Zoltan).

[1] https://launchpadlibrarian.net/223848455/buildlog_ubuntu-wily-amd64.seacas_15.10~201510311137-wily1_BUILDING.txt.gz

from seacas.

gsjaardema avatar gsjaardema commented on August 19, 2024

I modified the siMPI that SEACAS is using to install the mpi-related headers in a siMPI subdirectory of the specified include directory. This is not done in the Trilinos or other builds of siMPI; currently only SEACAS.

Will use this in SEACAS only for awhile to see if there are any issues caused by this; if none found then will generate a pull-request for the siMPI in Trilinos.

from seacas.

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.