• 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. Blogs
  2. Analog/Custom Design
  3. Virtuosity: Making Optimum Use of Resources in Distributed…
Shyam Kumar Gupta
Shyam Kumar Gupta

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
CDNS - RequestDemo

Have a question? Need more information?

Contact Us
SGE
Analog Design Environment
LBS
Job Policy
ADE
LSF
Virtuoso
Virtuosity
distributed processing
Custom IC Design
IC6.1.8
Assembler
ADE Assembler

Virtuosity: Making Optimum Use of Resources in Distributed Farm

20 Jul 2021 • 4 minute read

Hello Readers,

I am sure that you have wondered how much resource you need to run your job or simulation. This is a difficult question and we generally end up reserving the upper limit you may have thought for the job. However, the simulation might not use the amount of resources you have reserved, therefore, not making optimum use of the resources. Also, there might be scenarios in which your job was stopped or suspended because it exceeded the reserved resource limits. If this is a concern, then you are likely to benefit from our new feature "Resource Estimation" in ADE Assembler for the LSCS Job Control Mode.

To help with better resource estimation, access the "Resources" tab on the Job Policy form.

The interesting part is, you don't have to run the simulation twice. After you have submitted the job, the tool will figure out the optimum resource needed to run the simulation and will reserve the required resource.

Instead of requesting a fixed number of CPU or memory, you can now use %CPU_EST and %MEM_EST to let the tool decide what resource you will need to run the simulation and that amount is reserved.

For example, if you were to use the Distribution Mode as Command in Job policy form, you can use the below syntax: 

bsub -q “normal” -n %CPU_EST -R "rusage[mem>=%MEM_EST] select[(OSREL==EE60)||(OSREL==EE70)]" 

Or in LBS mode you can set the Resource Requirements to mem>=%MEM_EST and keep the checkbox against the Parallel Num. Processors unchecked to estimate the required CPUs.

           

Resource Estimation Flows in ADE Assembler                                                      

Depending on your design situation, you could use either of the two resource estimation flows supported in ADE Assembler:

  • Estimation - In this flow, ADE Assembler performs an initial Spectre +query simulation and the data returned is used to populate the CPU and memory resource information for the main ADE run.    

In the case of multiple corner setup, you can select the corner to be used for resource estimation. If no corners are specified, then the Nominal corner is used for estimation.

  • Reuse from history - In this flow, ADE Assembler looks at the results from the previous history and determines what CPU and memory resources were used during the run and populates the Job Setup for the subsequent run using the historical values.

ADE Assembler uses the maximum memory and CPU values found across all the points. Spectre resource estimation will be re-run if the latest history doesn't have the same setup. The tool compares Test Name, Design Name, Simulator, Run Mode, Simulation Files, Model Files, and Sections in Corners to decide the difference in setup.

You can use the variable below to select whether to look at just the latest history or at all histories.

envSetVal("maestro.distribute" "historyReuseChoice" 'cyclic "Latest")

(the valid values are "Latest" and "All")

Important:

  • Spectre currently supports resource estimation for only hb and tran analyses. If the setup contains an enabled analysis other than these two, the feature reuses values from an available history. If there is no history available, it uses the default memory and CPU value specified on the Resources tab of the Job Policy Setup form. 

  • Resource estimation is done for each test in the setup. If the global job policy is used by all tests, ADE Assembler uses the maximum CPU or memory value among the values estimated for all the tests. If the tests are using their own overridden job policies, resource estimation is run for each test individually. If multiple tests use the same policy, the maximum estimated CPU or memory value is used for all.

Related Resources

  • Troubleshooting Information

    • How to do Resource Estimation in ADE Assembler and FAQ

  • User Guide

    • Virtuoso ADE Assembler User Guide

For more information on Cadence circuit design products and services, visit www.cadence.com.

.

About Virtuosity

Virtuosity has been our most viewed and admired blog series for a long time that has brought to fore some lesser known, yet very useful software and documentation improvements, and also shed light on some exciting new offerings in Virtuoso. We are now expanding the scope of this series by broadcasting the voice of different bloggers and experts, who would continue to preserve the legacy of Virtuosity, and try to give new dimensions to it by covering topics across the length and breadth of Virtuoso, and a lot more… Click Subscribe to visit the Subscription box at the top of the page in which you can submit your email address to receive notifications about our latest Virtuosity posts. Happy Reading!



CDNS - RequestDemo

Try Cadence Software for your next design!

Free Trials

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

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