• 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. ADEXL Monte Carlo Group Jobs

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 126
  • Views 15328
  • 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

ADEXL Monte Carlo Group Jobs

phill1127
phill1127 over 9 years ago

Is there a way in ADEXL to group a set of monte carlo sims into several jobs without allowing all jobs to run simultaneously?

For example, say I am running 400 mc iterations. If I set Max Jobs in the Job Setup to 4 then I get 4 jobs running simultaneously with each job being 100 sequential iterations. What I want to do is group them into 8 jobs of 50 iterations and only allow 4 jobs to run at one time. So at the beginning 4 jobs would run and 4 jobs would be pending, then as one job completes that empty slot picks up a pending job from the queue. Is this possible in ADEXL?

The reason I want to do this is to be more efficient with system memory. When multiple monte carlo iterations are grouped into a single spectre run the memory usage climbs and climbs. By separating the total iterations into smaller groups each job will both use less total memory and also release the memory when it completes which frees it up for the pending jobs.

Thanks,
- Phill

  • Cancel
  • Frank Wiedmann
    Frank Wiedmann over 9 years ago

    Set the Max Jobs to 8 before you start the simulation and then set them back to 4 after the simulation has started.

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

    Hi Phill,

    If you have an issue with growing memory, you should report this to customer support. I have a CCR (1430937) for something similar, but it only becomes significant when running a huge number of simulations (25000 in  my case). So yours may be something else.

    However, it is possible to do what you want using this setting:

    envSetVal("adexl.monte" "maxOutstandingPoints" 'int 200)

    and then set the number of jobs to be 4. What this will do is then first run four jobs with 50 each, and then it will deal with the remaining 200 simulations after that. 

    I would not advise setting this in your .cdsinit as it is likely to interfere with any auto-stop methods if you were to use those - so use it as and when you need it (just type it in the CIW). The default value is 0, which means fully-automatic.

    The reason this is not on a  form (or even documented) is because of these cases where it interferes with the automated methods - so definitely exercise "buyer beware" when using this.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • phill1127
    phill1127 over 9 years ago
    Thanks Frank and Andrew. Both of these methods worked to break up the runs without having them all run in parallel at the same time.

    With Frank's method I started my ADE XL run 256 iterations and Max Jobs 4, then after it began I changed Max Jobs to 16. This distributed the corners evenly and produced 16 jobs with 16 iterations in each.

    Andrew, your method worked but I'm a little confused about how the iterations were broken up between the jobs. I launched 256 iterations with Max Jobs set to 4 and maxOutstandingPoints set to 64. I thought that this would start off by running 4 jobs with 16 iterations each and then start a new 16 iteration job every time another was completed. However, after starting this run I saw in the Run Summary section of the ADEXL window that I had 0/80 jobs complete. Looking at the generated netlists it looks like I ended up with 4 jobs of 20 iterations each. I let this run to completion and came back the next day to examine the output logs. All 256 iterations were run but they were broken up into 16 total jobs with 12 having 20 iterations and 4 having 4 iterations. The 4 groups of 4 were the last 16 iterations, 241-256. So it looks like each job grabbed 20 iterations with my Max Jobs of 4 and I had 80 iterations running at one time. This is the behavior I would expect if I had set maxOutstandingPoints to 80. Any thoughts on what's going on here? Is there another setting that's coming into play?

    Thanks for the help,
    - Phill
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Hi Phill,

    I just tried this with IC617 ISR5 and it correctly advances in chunks of 64 (so 16 per job).

    Which IC subversion are you using? I'm assuming you didn't have any monte carlo auto-stop options turned on? Perhaps you can send a screenshot of the MC options?

    Thanks,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • phill1127
    phill1127 over 9 years ago

    Hi Andrew,

    I am using ICADV12.2 ISR3. There are no auto-stop options being used. Screenshot of MC options included below.

    Thanks,
    - Phill

    • 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