diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1cbf56fa7242a41f2274ef4f2d53dcebc2578166..01b1312284c84a2f02f0500076b3ca50d337922f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -94,6 +94,8 @@ elseif(PASTIS_ENABLE_MPI STREQUAL "ON")
   message(FATAL_ERROR "Could not find MPI library while requested")
 endif()
 
+set(PASTIS_HAS_MPI ${MPI_FOUND})
+
 #------------------------------------------------------
 
 # setting Kokkos defaults to OpenMP when available
diff --git a/src/utils/PastisUtils.cpp b/src/utils/PastisUtils.cpp
index 72764650f15f56eadb867a65dae795c5d76ce443..28c130e52cc35217e72bc4c26d5606302519e4b8 100644
--- a/src/utils/PastisUtils.cpp
+++ b/src/utils/PastisUtils.cpp
@@ -13,10 +13,14 @@
 #include <ConsoleManager.hpp>
 
 #include <CLI/CLI.hpp>
+
+#ifdef PASTIS_HAS_MPI
 #include <mpi.h>
+#endif // PASTIS_HAS_MPI
 
 std::string initialize(int& argc, char* argv[])
 {
+#ifdef PASTIS_HAS_MPI
   MPI_Init(&argc, &argv);
 
   {
@@ -30,6 +34,7 @@ std::string initialize(int& argc, char* argv[])
       pout.setOutput(null_stream);
     }
   }
+#endif // PASTIS_HAS_MPI
 
   long unsigned number = 10;
   std::string filename;
@@ -115,6 +120,7 @@ std::string initialize(int& argc, char* argv[])
 
 void finalize()
 {
+#ifdef PASTIS_HAS_MPI
   MPI_Barrier(MPI_COMM_WORLD);
   const int mpi_rank
       =[](){
@@ -133,7 +139,11 @@ void finalize()
   pout() << rang::fgB::green << "Terminating process " << rang::fg::reset
          << rang::fgB::yellow << mpi_rank << rang::fg::reset << " of "
          << rang::style::bold << mpi_size << rang::style::reset << '\n';;
+#endif // PASTIS_HAS_MPI
 
   Kokkos::finalize();
+
+#ifdef PASTIS_HAS_MPI
   MPI_Finalize();
+#endif // PASTIS_HAS_MPI
 }
diff --git a/src/utils/pastis_config.hpp.in b/src/utils/pastis_config.hpp.in
index b27b12f70b2a5c397bb029d6f793dd8389ac78ad..9cd9e145b0bbf7b9a0075f8ec5a22fdf9cf61fb7 100644
--- a/src/utils/pastis_config.hpp.in
+++ b/src/utils/pastis_config.hpp.in
@@ -2,6 +2,8 @@
 #define PASTIS_CONFIG_HPP
 
 #cmakedefine PASTIS_HAS_FENV_H
+#cmakedefine PASTIS_HAS_MPI
+
 #cmakedefine SYSTEM_IS_LINUX
 #cmakedefine SYSTEM_IS_DARWIN
 #cmakedefine SYSTEM_IS_WINDOWS