Bcast Deep Copy

Located in file: MEL_deepcopy.hpp

template <typename T>
enable_if_not_pointer<T> MEL::Deep::Bcast(T &obj, const int root, const Comm &comm)

Broadcast a deep object reference.

Parameters
  • obj -

    The deep object to transport

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

template <typename P>
enable_if_pointer<P> MEL::Deep::Bcast(P &ptr, const int root, const Comm &comm)

Broadcast a pointer to a deep/non-deep object.

Parameters
  • ptr -

    Pointer to the deep/non-deep object to transport

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

template <typename P>
enable_if_pointer<P> MEL::Deep::Bcast(P &ptr, const int len, const int root, const Comm &comm)

Broadcast a pointer to an array of deep/non-deep objects.

Parameters
  • ptr -

    Pointer to the array of deep/non-deep objects to transport

  • len -

    The number of elements to broadcast

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

template <typename P>
enable_if_pointer<P> MEL::Deep::Bcast(P &ptr, int &len, const int root, const Comm &comm)

Broadcast a pointer to an array of deep/non-deep objects.

Parameters
  • ptr -

    Pointer to the array of deep/non-deep objects to transport

  • len -

    The number of elements to broadcast / that were broadcast

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

template <typename T>
enable_if_deep_not_pointer<T> MEL::Deep::BufferedBcast(T &obj, const int root, const Comm &comm, const int bufferSize)

Broadcast a deep object reference using a buffered broadcast.

Buffersize must be calculated ahead of time

Parameters
  • obj -

    The deep object to transport

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

  • bufferSize -

    The buffer size needed to pack the entire structure contiguously

template <typename T>
enable_if_deep_not_pointer<T> MEL::Deep::BufferedBcast(T &obj, const int root, const Comm &comm)

Broadcast a deep object reference using a buffered broadcast.

Buffersize is calculated before transport

Parameters
  • obj -

    The deep object to transport

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

template <typename P>
enable_if_pointer<P> MEL::Deep::BufferedBcast(P &ptr, const int root, const Comm &comm, const int bufferSize)

Broadcast a pointer to a deep/non-deep object using a buffered broadcast.

Buffersize must be calculated ahead of time

Parameters
  • ptr -

    Pointer to the deep/non-deep object to transport

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

  • bufferSize -

    The buffer size needed to pack the entire structure contiguously

template <typename P>
enable_if_pointer<P> MEL::Deep::BufferedBcast(P &ptr, const int root, const Comm &comm)

Broadcast a pointer to a deep/non-deep object using a buffered broadcast.

Buffersize is calculated before transport

Parameters
  • ptr -

    Pointer to the deep/non-deep object to transport

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

template <typename P>
enable_if_pointer<P> MEL::Deep::BufferedBcast(P &ptr, int &len, const int root, const Comm &comm, const int bufferSize)

Broadcast a pointer to a deep/non-deep object using a buffered broadcast.

Buffersize must be calculated ahead of time

Parameters
  • ptr -

    Pointer to the deep/non-deep object to transport

  • len -

    The number of elements to broadcast / that were broadcast

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

  • bufferSize -

    The buffer size needed to pack the entire structure contiguously

template <typename P>
enable_if_pointer<P> MEL::Deep::BufferedBcast(P &ptr, int &len, const int root, const Comm &comm)

Broadcast a pointer to a deep/non-deep object using a buffered broadcast.

Buffersize is calculated before transport

Parameters
  • ptr -

    Pointer to the deep/non-deep object to transport

  • len -

    The number of elements to broadcast / that were broadcast

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

template <typename P>
enable_if_pointer<P> MEL::Deep::BufferedBcast(P &ptr, const int len, const int root, const Comm &comm, const int bufferSize)

Broadcast a pointer to a deep/non-deep object using a buffered broadcast.

Buffersize must be calculated ahead of time

Parameters
  • ptr -

    Pointer to the deep/non-deep object to transport

  • len -

    The number of elements to broadcast

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within

  • bufferSize -

    The buffer size needed to pack the entire structure contiguously

template <typename P>
enable_if_pointer<P> MEL::Deep::BufferedBcast(P &ptr, const int len, const int root, const Comm &comm)

Broadcast a pointer to a deep/non-deep object using a buffered broadcast.

Buffersize is calculated before transport

Parameters
  • ptr -

    Pointer to the deep/non-deep object to transport

  • len -

    The number of elements to broadcast

  • root -

    The rank of the source process

  • comm -

    The comm world to transport within