Singleton for managing the RemoteChannelBundles for each process. More...
#include "remote-channel-bundle-manager.h"
Collaboration diagram for ns3::RemoteChannelBundleManager: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. | |
| static void | Destroy () |
| Destroy the singleton. | |
| static Ptr< RemoteChannelBundle > | Find (uint32_t systemId) |
| Get the bundle corresponding to a remote rank. | |
| static Time | GetSafeTime () |
| Get the safe time across all channels in this bundle. | |
| static void | InitializeNullMessageEvents () |
| Setup initial Null Message events for every RemoteChannelBundle. | |
| static std::size_t | Size () |
| Get the number of ns-3 channels in this bundle. | |
Private Types | |
| typedef std::unordered_map< uint32_t, Ptr< RemoteChannelBundle > > | RemoteChannelMap |
| Container for all remote channel bundles for this task. | |
Private Member Functions | |
| RemoteChannelBundleManager () | |
| Private ctor to prevent creation outside of singleton pattern. | |
| ~RemoteChannelBundleManager () | |
| Private dtor to prevent destruction outside of singleton pattern. | |
Static Private Attributes | |
| static bool | g_initialized = false |
| Protect manager class from being initialized twice or incorrect ordering of method calls. | |
| static RemoteChannelMap | g_remoteChannelBundles |
| The remote channel bundles. | |
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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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(), Min, and NS_ASSERT.
Referenced by ns3::NullMessageSimulatorImpl::CalculateSafeTime().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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().