My point about using $bound_step rather than @timer was that bound_step allows the simulator to place a timestep where it wants, provided that it is no further away than a certain amount of time - it limits the maxstep (dynamically) - at least that's what it does in spectre - Pancho Hideboo's reference was to another post which was discussing the behaviour in hspice.
With @timer, the simulator has to solve precisely at the time specified - that can sometimes be more work for the simulator, and can result in more timesteps. (imagine that the simulator needed to take a timestep between two @timer events, for various reasons, then limiting the bound step would take fewer timesteps than having also to have an event at a regular timestep). Still, this is unlikely to make a massive difference with spectre, but maybe other simulators are more sensitive.
You may also want to try APS. From MMSIM72, you can just use "spectre -aps" to run in APS mode - see
http://www.cadence.com/products/cic/accelerated_parallel/pages/default.aspx. MMSIM72 has further performance improvements in APS, so if you're going to take a look, I'd advise using MMSIM72. Also, talk to local support (Cadence has customer support in India, of course).
Regards,
Andrew.