Comments (10)
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.
from seacas.
@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.
@trilinos/zoltan
from seacas.
@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.
At the moment, we simply don't include SEACAS in the Debian build.
from seacas.
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.
@nschloe I admit I don't understand the target for the debian build. Is it a strictly serial build?
from seacas.
@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).
from seacas.
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)
- -Wreserved-identifier warnings in public API names HOT 7
- Build error in "Linking CXX executable struc_to_unstruc" HOT 1
- exodus 2023.10.24 and msys2/mingw HOT 3
- Need Curl under Windows 10's WSL HOT 2
- Nem_spread should have option to set single-file-read from command line
- Grepos subsetting corrupts sideset variable data
- How to instantiate a transform? HOT 7
- Publish packaged exodus python bindings to PyPI HOT 2
- testwt-assembly.c: Error c2057 when building with MSVC and NetCDF binaries are found HOT 3
- Improve epu variable inclusion/exclusion handling.
- Verify that properties passed to IOSS are used.
- Add option to EPU to delete the file-per-rank files after joining successfully
- io_modify geometry modification does not work with CGNS structured HOT 1
- installation issue: not creating lib and include folder with ./install-tpl.sh HOT 11
- Aprepro Robustness
- Python bindings include absolute path to build directory. HOT 1
- ex_close fails if file is mode is EX_READ or EX_CLOBBER in parallel HOT 7
- EPU: Add capability to select "last 3 steps" HOT 1
- [MSVC][c++20][c++latest] Ioss_DatabaseIO.C failed with error 7525: call to immediate function is not a constant expression HOT 4
- [URGENT] Exonull does not compile with SEACAS_HAVE_MPI ON on Windows HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from seacas.