• 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. set up parametric simulation to utilize multiple cores

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 127
  • Views 19350
  • 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

set up parametric simulation to utilize multiple cores

whlinfei
whlinfei over 12 years ago

Hi,

 

I am using Cadence 6.1.5 and spectre to run transient simulations. I wish to run parametric simulations on a few variables in my design.

The workstation I have access to has 32 cores and typically more than half of them are free.

May I know how I can set the parametric simulations in a way that parallel transient simulations can be run simutaneously by different cores? Like each core runs a simulation in which the variables take on different values?

 Thank you in advance.

Regards,

Whlinfei 

  • Cancel
  • cgurleyuk
    cgurleyuk over 12 years ago

    Hello Whlinfei,

    If you have access to ADE XL, you can define a parametric simulation by importing an already existing ADE L state or creating a test with a design variable, which you can parameterize by adding a variable specification in the ADE XL "Data View". In the run summary, you can verify the number of sweep points by inspecting the "Run Summary" where it'll report "N Point Sweeps" where N is the number of parametric simulations you have defined

    Then, under Options -> Job Setup you can define the distribution method to be local and increase the number of jobs to the number of processor cores you have. This will ensure ADE XL creates parallel jobs for your parametric simulations, and it'll take considerably less time than serializing the jobs. However, I have found that it's better to use the number of physical processor cores than the number of cores provided by hyperthreading; the former usually yields faster simulation times for me.

    Regards,

    Çağrı.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Using ADE XL is the simplest approach, but another possibility is to set up distributed simulation in ADE L - doesn't need to be very distributed though ;-)

    For example, I do this sometimes on my machine (mainly for testing or demo purposes). Create a file, queue_config, with this contents:

    myqueue 1
    localhost 4

    In this file, the first line gives the name of the queue and the number of machines contained within that queue (I just used localhost, as that's always the local machine). Then the number after the localhost is the number of parallel jobs that can be run in that queue. You can define multiple queues if you want, or involve other machines - for that read the Distributed Processing guide in the documentation.

    Then run "cdsqmgr /path/to/queue_config".

    Then do:

    setenv LBS_CLUSTER_MASTER localhost

    or

    export LBS_CLUSTER_MASTER=localhost

    depending on the shell you're using (csh for the first, bash/ksh for the second).

    And then run virtuoso - and in ADE L, under Setup->Simulator/Dir/Host pick distributed simulation.

    That's it really - not too complicated. 

    That said, if you are sharing the compute resource with others, this should be set up more centrally because only one cdsqmgr can be run at once (see the docs for more detail, again). If you need to change the config file, you'll need to kill cdsqmgr and restart it.

    But the ADE XL approach is probably simpler!

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • whlinfei
    whlinfei over 11 years ago

    Hi Çağrı,

     Thank you very much. Your solution works.

    It did speed up my simulation tremendously.

    Best Regards,

    whlinfei 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • whlinfei
    whlinfei over 11 years ago
    Hi Andrew, Thank you for the reply. The part with the XL really helps. Unfortunately, I don't have access to the distributed simulations. ( it is somehow disabled at my site). Best Regards, whlinfei
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • NcfC
    NcfC over 11 years ago

    Andrew,

    I followed your instruction for ADE L but I get the following problem when I run

    the parametric simulation:

    I have a design variable that is dependent on the parametric simulation sweeping

    variable:

    var_word = 1 // sweeping variable

    var_bit_1 = ((var_word & 1)/1)

    var_bit_2 = ((var_word & 2)/2)

     

    If I run a serial parametric simulation, everything is fine. But if I run a

    parallel parametric simulation, I get the following error:

     

    *Error* in the Design Variables. AEL's message: data type error

    on first operand: operator not defined for

    "var_word"

     

    Is there something that I missed?

     

    Thanks.


    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    We had an earlier reported issue which sounds similar, which is CCR 601256. However, in that case, whilst you got an error the simulations actually ran - and so the fix has not been prioritized. 

    Did the simulations actually run in your case?

    If not, you should report it to customer support. Might be wise to do this anyway, even if they do run successfully. Note I didn't check that the issue still exists in current versions (you didn't say which version of the IC tools you're using).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • NcfC
    NcfC over 11 years ago
    Hi, Andrew.

    Thanks for the reply.

    No, the simulation didn't run at all. It runs without problems for serial parametric simulation but not for parallel simulations. Regarding the tool version, I tried with spectre 5.10 and also with spectre 7.11 (mmsim). ICFB version is 5.1.41.

    Regards,
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    The issue that I had reported before was something that only happened in IC61 and not in IC5141, so must be a slightly different issue.

    Unfortunately I don't have time to investigate it myself (IC5141 has not been supported for a couple of years now). Sorry!

    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