Bugzilla – Full Text Bug Listing |
Summary: | Improve performance of InterferenceHelper::AppendEvent | ||
---|---|---|---|
Product: | ns-3 | Reporter: | Matthew Bradbury <matt-bradbury> |
Component: | wifi | Assignee: | sebastien.deronne |
Status: | NEEDINFO --- | ||
Severity: | enhancement | CC: | ns-bugs |
Priority: | P3 | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Attachments: |
Patch to reduce the number of upper_bound calls
Profile result 1 Profile result 2 Incomplete patch using Boost.ICL |
Description
Matthew Bradbury
2018-07-10 08:18:58 EDT
Created attachment 3130 [details]
Profile result 1
Created attachment 3131 [details]
Profile result 2
It's ok for me to push these changes if it reduces simulation time. Could you show how much it affects performance? I didn't observe a large performance improvement with the original patch. I have attached an incomplete patch using Boost.ICL which naturally models how additive noise changes over time. It is essentially a map of an ns3::Time interval to the noise (include the devices Tx power) during that interval. When a new value needs to be recorded for an overlapping interval Boost.ICL automatically splits the old interval and adds the new noise to the old noise in the bit of the interval that overlaps. With an earlier version of this patch I was observing nearly a 4x speedup in my code (2600s to about 700s). However, there are some fairly invasive changes which could really do with a review by the author of the code. I have made changes to InterferenceHelper::CalculatePlcpPayloadPer that I believe are correct. However, InterferenceHelper::CalculatePlcpHeaderPer is much more complicated and I have not been able to complete the changes. Created attachment 3155 [details]
Incomplete patch using Boost.ICL
(In reply to Matthew Bradbury from comment #5) > Created attachment 3155 [details] > Incomplete patch using Boost.ICL Could you please provide more details about your changes and how they improve performance? |