Singleton for managing the RemoteChannelBundles for each process. More...
#include "remote-channel-bundle-manager.h"
Static Public Member Functions | |
static Ptr< RemoteChannelBundle > | Add (uint32_t systemId) |
Add RemoteChannelBundle from this task to MPI task on other side of the link. More... | |
static void | Destroy () |
Destroy the singleton. More... | |
static Ptr< RemoteChannelBundle > | Find (uint32_t systemId) |
Get the bundle corresponding to a remote rank. More... | |
static Time | GetSafeTime () |
Get the safe time across all channels in this bundle. More... | |
static void | InitializeNullMessageEvents () |
Setup initial Null Message events for every RemoteChannelBundle. More... | |
static std::size_t | Size () |
Get the number of ns-3 channels in this bundle. More... | |
Private Types | |
typedef std::unordered_map< uint32_t, Ptr< RemoteChannelBundle > > | RemoteChannelMap |
Container for all remote channel bundles for this task. More... | |
Private Member Functions | |
RemoteChannelBundleManager () | |
Private ctor to prevent creation outside of singleton pattern. More... | |
~RemoteChannelBundleManager () | |
Private dtor to prevent destruction outside of singleton pattern. More... | |
Static Private Attributes | |
static bool | g_initialized = false |
Protect manager class from being initialized twice or incorrect ordering of method calls. More... | |
static RemoteChannelMap | g_remoteChannelBundles |
The remote channel bundles. More... | |
Singleton for managing the RemoteChannelBundles for each process.
Manages collective tasks associated with the bundle collection.
Definition at line 47 of file remote-channel-bundle-manager.h.
|
private |
Container for all remote channel bundles for this task.
Definition at line 108 of file remote-channel-bundle-manager.h.
|
inlineprivate |
Private ctor to prevent creation outside of singleton pattern.
Definition at line 93 of file remote-channel-bundle-manager.h.
|
inlineprivate |
Private dtor to prevent destruction outside of singleton pattern.
Definition at line 100 of file remote-channel-bundle-manager.h.
|
static |
Add RemoteChannelBundle from this task to MPI task on other side of the link.
Can not be invoked after InitializeNullMessageEvents has been invoked.
[in] | systemId | The remote system id. |
Definition at line 57 of file remote-channel-bundle-manager.cc.
References g_initialized, g_remoteChannelBundles, and NS_ASSERT.
Referenced by ns3::NullMessageSimulatorImpl::CalculateLookAhead().
|
static |
Destroy the singleton.
Definition at line 107 of file remote-channel-bundle-manager.cc.
References g_initialized, g_remoteChannelBundles, and NS_ASSERT.
Referenced by ns3::NullMessageSimulatorImpl::Destroy().
|
static |
Get the bundle corresponding to a remote rank.
[in] | systemId | The remote system id. |
Definition at line 42 of file remote-channel-bundle-manager.cc.
References g_remoteChannelBundles.
Referenced by ns3::NullMessageSimulatorImpl::CalculateGuaranteeTime(), ns3::NullMessageSimulatorImpl::CalculateLookAhead(), ns3::NullMessageMpiInterface::InitializeSendReceiveBuffers(), ns3::NullMessageMpiInterface::ReceiveMessages(), and ns3::NullMessageSimulatorImpl::RescheduleNullMessageEvent().
|
static |
Get the safe time across all channels in this bundle.
Definition at line 92 of file remote-channel-bundle-manager.cc.
References g_initialized, g_remoteChannelBundles, ns3::Simulator::GetMaximumSimulationTime(), ns3::Min(), and NS_ASSERT.
Referenced by ns3::NullMessageSimulatorImpl::CalculateSafeTime().
|
static |
Setup initial Null Message events for every RemoteChannelBundle.
All RemoteChannelBundles should be added before this method is invoked.
Definition at line 76 of file remote-channel-bundle-manager.cc.
References g_initialized, g_remoteChannelBundles, ns3::NullMessageSimulatorImpl::GetInstance(), NS_ASSERT, and ns3::NullMessageSimulatorImpl::ScheduleNullMessageEvent().
Referenced by ns3::NullMessageSimulatorImpl::Run().
|
static |
Get the number of ns-3 channels in this bundle.
Definition at line 70 of file remote-channel-bundle-manager.cc.
References g_remoteChannelBundles.
Referenced by ns3::NullMessageMpiInterface::InitializeSendReceiveBuffers().
|
staticprivate |
Protect manager class from being initialized twice or incorrect ordering of method calls.
Definition at line 116 of file remote-channel-bundle-manager.h.
Referenced by Add(), Destroy(), GetSafeTime(), and InitializeNullMessageEvents().
|
staticprivate |
The remote channel bundles.
Definition at line 110 of file remote-channel-bundle-manager.h.
Referenced by Add(), Destroy(), Find(), GetSafeTime(), InitializeNullMessageEvents(), and Size().