[Ns-developers] icc and "patched" waf

Mathieu Lacage mathieu.lacage at sophia.inria.fr
Thu Jan 22 10:50:10 PST 2009

On Thu, 2009-01-22 at 17:42 +0000, Gustavo Carneiro wrote:

> You know it shouldn't be too hard for me to add a configuration switch
> to ns-3 to compile everything statically.  Do you think this would be
> useful feature to have in ns-3

I would be happy to pay you drinks until you roll over the table
whenever you want if you do this.

> Although I must say I have serious reservations about your 40%
> speedup.  It must be a very constrained scenario to reach that level

Yes. See the old yans paper: http://www.cutebugs.net/files/wns2-yans.pdf
section 9, last paragraph.

>  of slowdown.  Or else we have to revisit this whole idea of building
> NS-3 as a shared library by default!

Well, the thing is that linux uses ELF. ELF sucks really hard because it
specifies that every function call and global data access be indirected
through the GOT/PLT (even internal functions), you force to off a lot of
optimizations and, thus, both have the pay the cost of the GOT/PLT
indirection (look at the top of entry of an oprofile of ns-3) and the
cost of pessimizing all other optimization passes. 

> Heh, that is surely very scenario dependent.  About year ago, when I
> was doing OLSR simulations with hundreds of nodes, the routing table
> computation plus MPR compupation, inside OLSR agent, took over 75% of
> time.  Nowadays, most simulations using WifiNetDevice will show that
> WifiPhy to take a lot of time as well.  I have not encountered
> performance problems in Time in a while.  Maybe int128 is a bottleneck
> due to specifics of your hardware?  I usually run on 64 bit systems,
> but I bet 32 bit systems are slower to run int128 code.

I usually profile on 32 bit systems these days and it's been a while
since I did not see the cairo code on top of a profile.


More information about the Ns-developers mailing list