Changed geometry distribution on profling-reference.

Added short piece of documentation on the setup for the profiling.
This commit is contained in:
jnin
2011-05-20 17:13:26 +02:00
parent 5e2b8855ab
commit 9dd27f1f6c
3 changed files with 29 additions and 12 deletions

View File

@@ -68,3 +68,13 @@ Example simulation program
lena.ActivateEpsBearer (ueDevs, bearer);
Performance evaluation
**********************
Execution time and memory consumption
-------------------------------------
In order to provide an running time and memory consumption estimation a reference simulation script has been developed, ``src/lte/examples/profiling-reference``. The scenario is composed by a set of eNodeBs, each one of them with a constant number of UEs attached. All eNodeBs have the same number of attached UEs. The UEs are all in the same position than its eNodeB and the eNodeBs are distributed in a line, each one 140m away from the previous one. Simulated time is set to 60s.
With this considerations, the execution time and the memory consumtpion has been obtained for a certain number of UEs attached to each eNodeB and number of eNodeBs. The reference hardware platform is a Intel Core2 Duo E8400 3.00GHz with 512 MB of RAM memory running a Fedora Core 10 with kernel 2.6.27.5. It scenarios considered range the number of eNodeBs between 1 and 15 and the UEs per eNodeB in 1, 5 and 10. The performance figures obtained show follows.

View File

@@ -38,6 +38,7 @@ int main (int argc, char *argv[])
double radius = 0.0;
uint32_t nEnb = 1;
uint32_t nUe = 1;
double enbDist = 100;
CommandLine cmd;
cmd.AddValue ("nEnb", "Number of eNodeBs", nEnb);
@@ -64,6 +65,7 @@ int main (int argc, char *argv[])
<< "_rngRun" << std::setw(3) << std::setfill('0') << runValue.Get () ;
*/
Ptr<LenaHelper> lena = CreateObject<LenaHelper> ();
lena->EnableLogComponents ();
// Create Nodes: eNodeB and UE
NodeContainer enbNodes;
@@ -79,25 +81,30 @@ int main (int argc, char *argv[])
// Position of eNBs
Ptr<ListPositionAllocator> positionAlloc = CreateObject<ListPositionAllocator> ();
positionAlloc->Add (Vector (0.0, 0.0, 0.0));
for (uint32_t i = 0; i < nEnb; i++)
{
positionAlloc->Add (Vector (enbDist*i, enbDist*i, 0.0));
}
MobilityHelper enbMobility;
enbMobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
enbMobility.SetPositionAllocator (positionAlloc);
enbMobility.Install (enbNodes);
// Position of UEs attached to eN
MobilityHelper ueMobility;
ueMobility.SetPositionAllocator ("ns3::UniformDiscPositionAllocator",
"X", DoubleValue (0.0),
"Y", DoubleValue (0.0),
"rho", DoubleValue (radius));
ueMobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
// Position of UEs attached to eNB
vector<MobilityHelper> ueMobility;
for (uint32_t i = 0; i < nEnb; i++)
{
ueMobility.Install (ueNodes[i]);
MobilityHelper ueMob;
ueMob.SetPositionAllocator ("ns3::UniformDiscPositionAllocator",
"X", DoubleValue (enbDist*i),
"Y", DoubleValue (enbDist*i),
"rho", DoubleValue (radius));
ueMob.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
ueMobility.push_back (ueMob);
ueMobility[i].Install (ueNodes[i]);
}
// Create Devices and install them in the Nodes (eNB and UE)
NetDeviceContainer enbDevs;
vector<NetDeviceContainer> ueDevs;

View File

@@ -10,6 +10,6 @@ def build(bld):
obj = bld.create_ns3_program('lena-rlc-calculator',
['lte'])
obj.source = 'lena-rlc-calculator.cc'
obj = bld.create_ns3_program('execution-time-reference',
obj = bld.create_ns3_program('profiling-reference',
['lte'])
obj.source = 'execution-time-reference.cc'
obj.source = 'profiling-reference.cc'