• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Cadence simulation setup-core usage-

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 2762
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Cadence simulation setup-core usage-

AllenD
AllenD over 7 years ago

Hi team

I have posted this question on other EE forums and received conflicted answers. But I think no where can give me a better answer then here. So here we go

Now I am using CADENCE IC 617 and MMSIM151 on a Linux machine with 10 cores CPU (20 threads). The simulation setup is like this:

ADE L --> Setup --> High-Performance Simulation Options. Then I click APS. choose Error Preset: DO not override; Use ++aps; Multi_Threading Manual #Threads: 19  (1-19)

But when I try to simulate, the total CPU usage is about 16% and a lot of cores are idle. The total simulation time-steps are 2210000 steps (transient time is 2210ns and simulation step is 0.001ns. ) this cost me more than 2 hours per simulation.

this is the info

[xxxxx@xxxxxx ~]$ top

top - 00:55:30 up 4 days,  2:38,  6 users,  load average: 2.00, 1.61, 1.57
Tasks: 422 total,   2 running, 419 sleeping,   0 stopped,   1 zombie
%Cpu(s): 10.1 us,  0.7 sy,  0.0 ni, 89.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 65727816 total,   538404 free,  3730288 used, 61459124 buff/cache
KiB Swap: 32964604 total, 31957960 free,  1006644 used. 61534544 avail Mem 

  PID      USER           PR   NI    VIRT            RES           SHR     S      %CPU    %MEM     TIME+       COMMAND    
 7718    xxxxxxxxxxxx 20    0      1744388    469288    4152    R     206.6     0.7            1460:39     spectre 

It seems the CPU is very underused. 

My questions are:

1. Does anyone know how I can setup the software to use all or most of the CPU power to speed up the simulation?

2. What dictate the time step of the simulation? 

Thank you very much
Allen

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Allen,

    Just because it takes a lot of time steps doesn't mean that multi-threading will help improve performance. Mostly that's dependent upon the size of the design (number of devices, particularly active devices). For small designs, there's little  benefit gained by multi-threading. It looks as if you're getting some, because the CPU shows at 200%, but certainly it wouldn't be worth using 19 CPUs.

    Pay attention to the log file - it will tell you if it thought the circuit was too small to benefit (and will reduce the number of threads used, and return licenses too if not needed). The circuit inventory is important information - perhaps you can post what that shows?

    The reason why multiple threads won't help in a long simulation of a small circuit is that future time cannot be simulated in parallel with past or current time - there's an order dependency.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Allen,

    Just because it takes a lot of time steps doesn't mean that multi-threading will help improve performance. Mostly that's dependent upon the size of the design (number of devices, particularly active devices). For small designs, there's little  benefit gained by multi-threading. It looks as if you're getting some, because the CPU shows at 200%, but certainly it wouldn't be worth using 19 CPUs.

    Pay attention to the log file - it will tell you if it thought the circuit was too small to benefit (and will reduce the number of threads used, and return licenses too if not needed). The circuit inventory is important information - perhaps you can post what that shows?

    The reason why multiple threads won't help in a long simulation of a small circuit is that future time cannot be simulated in parallel with past or current time - there's an order dependency.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • AllenD
    AllenD over 7 years ago in reply to Andrew Beckett

    Thanks Andrew,

    Can I ask a follow up question?

    I ran 2 transient simulations with a little different setup

    1. the step is decided by the simulator (conservative)

    2. On top of 1, I add options----maxstep=minstep=1p

    This results more overall steps and simulation time.

    However, 2 simulations gave me different result.

    Which result is more reliable? Does this means the automatic time step is not super accurate? 

    Thanks

    Allen

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to AllenD

    Hi Allen,

    A huge amount of work has gone into making Spectre's automatic timestep mechanism accurate whilst balancing the need not to take an excessive number of time steps, so it absolutely should not be stated as "not super accurate". 

    In general you should never set minstep. This limit's spectre's ability to take a very short timestep if it needs to - normally if it needs to take a shorter timestep than this, it's because error criteria indicate that it is necessary. It's mostly there for debugging some cases with discontinuous waveforms.

    As for maxstep, I would say that there are very few cases where it's necessary to set this - and for the most part, it's an inefficient way of forcing more time steps. One of the few cases is with oscillators - oscillators can be hard to start and sometimes  you need to force the simulator to take more time steps to allow the oscillation to build. Other than that, there is little need to use it.

    If you have a concern about accuracy - I can't comment on your simulation because I've not seen the details of the perceived inaccuracy, or even what kind of circuit it is, then you should contact customer support.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information