Skip to content

Failing Compilation when MPI is disabled #19

@keiwanjamaly

Description

@keiwanjamaly

I think, the compilation fails in this line

https://github.com/satfra/DiFfRG_private/blob/23983b56bdeec5786d375a166e136c85c664f526/DiFfRG/include/DiFfRG/physics/integration/distribution.hh#L3-L8

where MPI_COMM_WORLD is not found. The header file at the top imports mpi here:

https://github.com/satfra/DiFfRG_private/blob/23983b56bdeec5786d375a166e136c85c664f526/DiFfRG/include/DiFfRG/common/mpi.hh#L5-L11

But this will not happen if MPI is not enabled by the

https://github.com/satfra/DiFfRG_private/blob/23983b56bdeec5786d375a166e136c85c664f526/dependencies/petsc/CMakeLists.txt#L32-L40

which is triggered here

https://github.com/satfra/DiFfRG_private/blob/23983b56bdeec5786d375a166e136c85c664f526/CMakeLists.txt#L74-L85

What is the status, is openmp/mpi a required dependency?

For now, it compiles with the workaround in mpi.hh

#ifdef HAVE_MPI
#include <mpi.h>
#else
#ifndef MPI_Comm
#define MPI_Comm int
#define MPI_COMM_WORLD 1
#endif
#endif

which I think, in theory, should disable MPI. Although I'm not sure, if this is legit at all.

Metadata

Metadata

Assignees

Labels

C++bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions