Commit c6f12b77 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

MPI: added function to broadcast a scalar value

parent f220426b
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -205,11 +205,24 @@ sendrecv( const SendArray& sendArray,
   MPI::Sendrecv( sendArray.getData(), sendArray.getSize(), dest, sendTag, recvArray.getData(), recvArray.getSize(), src, recvTag, communicator );
}

/**
 * \brief Broadcast a scalar value.
 */
template< typename T >
std::enable_if_t< ! IsArrayType< T >::value, T >
bcast( T value,
       int root,
       MPI_Comm communicator = MPI_COMM_WORLD )
{
   MPI::Bcast( &value, 1, root, communicator );
   return value;
}

/**
 * \brief Broadcast an array (or a string).
 */
template< typename Array >
std::enable_if_t< ! IsViewType< Array >::value >
std::enable_if_t< IsArrayType< Array >::value && ! IsViewType< Array >::value >
bcast( Array& array,
       int root,
       MPI_Comm communicator = MPI_COMM_WORLD )