2

Has anyone successfully used the homogeneous options in boost MPI before? I build boost mpi after uncommenting the appropriate line in the boost mpi config.cpp file and enabled BOOST_IS_BITWISE_SERIALIZABLE([classname]) for several of my classes that I pass, but I saw no change in performance, so I am not sure if it is enabled.

The documentation says the following:

More optimizations are possible on homogeneous machines, by avoiding MPI_Pack/MPI_Unpack calls but using direct bitwise copy. This feature can be enabled by defining the macro BOOST_MPI_HOMOGENEOUS when building Boost.MPI and when building the application. In addition all classes need to be marked both as is_mpi_datatype and as is_bitwise_serializable, by using the helper macro of Boost.Serialization:

I defined the macro when building boost and marked the classes, but I could find no information anywhere on what to do when building the application, so I am thinking maybe this is what I am missing. Any help would be much appreciated.

Kyle
  • 217
  • 2
  • 13
  • The understanding is that defining the macro means to add `#define BOOST_MPI_HOMOGENEOUS` to the top of the program or pass the compiler option `-DBOOST_MPI_HOMOGENEOUS`. Having said that it seem that this is the default anyway https://www.mail-archive.com/boost-mpi@lists.boost.org/msg00142.html . I think the logic is that eterogeneous systems are really rare and if you have one then probably you have worst problems than just performance, because it is hard to program in these systems. – alfC Aug 19 '20 at 01:56

0 Answers0