• 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. Spectre parallel jobs reduce near finish

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 127
  • Views 9200
  • 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

Spectre parallel jobs reduce near finish

Pirate King
Pirate King over 2 years ago

When I have a thousand corners for example and I set 10 spectre jobs to run in parallel the 10 runs are not maintained right to the end but reduce down to eventually 1 for the last 100 runs or so which considerably increase sim time. I am using ICRP, Optimise Single-Point Run, Local Distribution Method. IC6.1.8-64b.500.19

  • Cancel
Parents
  • Marc Heise
    Marc Heise over 2 years ago

    Hi,

    you might try this one:

    Article (20338418) Title: How to redistribute Monte Carlo jobs in ADE XL/Assembler to better utilize faster machines?
    URL: https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000uxPBEAY

    MC runs are "grouped" together, so you probably have 100 runs per host. Now one of the hosts might be slow or busy which will 
    hold of 100 of your runs.  Above solution discuss how to redistribute such remaining runs.

    The variable to control that is:

    In .cdsenv:

    adexl.monte minGroupSizeSplitAcrossIdleJobs int 2

    In .cdsinit:

    envSetVal("adexl.monte" "minGroupSizeSplitAcrossIdleJobs" 'int 2)

    Kind regards,

    Marc 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Pirate King
    Pirate King over 2 years ago in reply to Marc Heise

    Thanks Marc but the issue is with PVT corner runs not monte carlo. The spectre jobs seem to automatically decrease as the last corners are approached. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Marc Heise
    Marc Heise over 2 years ago in reply to Pirate King

    Hi,

    we also do grouping for param/corner  runs. Controled by this:

    envSetVal("maestro.simulation" "groupRunE" 'boolean t)       ;  E - Explorer
    envSetVal("maestro.simulation" "groupRunA" 'boolean t)       ; A- Assembler

    and there is also a setting to redistribute incase one host is slower than the others:

    envSetVal("maestro.simulation" "minGroupSizeSplitAcrossIdleJobs" 'int 2)

    Could you determine if it is one host struggling  like I assumed? Or are there other problems?  Maybe you can check the 
    Job logfiles to see what' s going on. Lots of guessing at the moment from my side. 

    Kind regards,

    Marc

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Marc Heise
    Marc Heise over 2 years ago in reply to Pirate King

    Hi,

    we also do grouping for param/corner  runs. Controled by this:

    envSetVal("maestro.simulation" "groupRunE" 'boolean t)       ;  E - Explorer
    envSetVal("maestro.simulation" "groupRunA" 'boolean t)       ; A- Assembler

    and there is also a setting to redistribute incase one host is slower than the others:

    envSetVal("maestro.simulation" "minGroupSizeSplitAcrossIdleJobs" 'int 2)

    Could you determine if it is one host struggling  like I assumed? Or are there other problems?  Maybe you can check the 
    Job logfiles to see what' s going on. Lots of guessing at the moment from my side. 

    Kind regards,

    Marc

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • Pirate King
    Pirate King over 2 years ago in reply to Marc Heise

    Hi Marc, this seems to be background redistribution to reduce overall simulation time across all runs. If Max Jobs is set to 10, no matter what the clever redistribution is happening in the background in the Explorer Run Summary wouldnt you expect the jobs to remain as 10 for the whole corner set and not reduce as the last corners are approaching?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Marc Heise
    Marc Heise over 2 years ago in reply to Pirate King

    Hi,

    at the start of the simulations we group points together and assign them to a job.  That job is responsible for that group of points and will  work through them.   Without the "minGroupSizeSplitAcrossIdleJobs"  setting it will stay like that initial grouping till the very end. So there are situations where you see one job remaining, struggling with one group while all the other jobs did finish their groups already.

    The reason for that "struggling" could be  slow/busy hosts or simulations point with difficult convergence conditions, whatever.

    The redistribution system was introduced some time after the first releases of Explorer/Assembler  for exactly the reasons you bring here. Make use of the idling jobs to help finishing the rest of the points.

    Kind regards,

    Marc

    • 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