• 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. Multiprocessor execution issue, MMSIM10, IC6.14

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 16314
  • 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

Multiprocessor execution issue, MMSIM10, IC6.14

Kabal
Kabal over 13 years ago

I have read that one needs to have minimum 256 BSIM elements. And enable multiprocessor simulation in:

1. ADE XL->Options->Job Setup, and put Local, and number of jobs set to number of processors. Also in ADE XL->Options-Run Options, check Parallel, and share resources equally.

2.  In ADE XL itself go to Setup->Turbo/Parasitic extraction, and set processor affinity to number of processors, and check Turbo.

 

The machines we are running tools on are just Dual Core Pentium, 32bit. The tools run in 32bit mode too of course. 

I was just wondering would that help somehow? i.e. would it effectively utilize both of the processors? Because normally when we run things, i see that only one processor is loaded 100% not the other.

 Anyhow, once i do that and run simulation, here is what i get:

 Simulating `input.scs' on ee208-08 at 9:43:05 AM, Mon Apr 16, 2012 (process id: 19906).
Environment variable:
    SPECTRE_DEFAULTS=-E
Command line:
    /opt/cadence/MMSIM101/tools.lnx86/spectre/bin/32bit/spectre  \
        input.scs +escchars +log ../psf/spectre.out -format sst2 -raw  \
        ../psf +turbo -proc 2 +lqtimeout 900 -maxw 5 -maxn 5

Loading /opt/cadence/MMSIM101/tools.lnx86/cmi/lib/5.0/libinfineon_sh.so ...
Loading /opt/cadence/MMSIM101/tools.lnx86/cmi/lib/5.0/libphilips_sh.so ...
Loading /opt/cadence/MMSIM101/tools.lnx86/cmi/lib/5.0/libsparam_sh.so ...
Loading /opt/cadence/MMSIM101/tools.lnx86/cmi/lib/5.0/libstmodels_sh.so ...

Time for NDB Parsing: CPU = 457.929 ms, elapsed = 557.481 ms.
Time accumulated: CPU = 457.929 ms, elapsed = 557.481 ms.
Peak resident memory used = 28.5 Mbytes.


Time for parsing: CPU = 0 s, elapsed = 66.9956 us.
Time accumulated: CPU = 457.929 ms, elapsed = 558.369 ms.
Peak resident memory used = 28.5 Mbytes.


Aggregate audit (9:43:06 AM, Mon Apr 16, 2012):
Time used: CPU = 473 ms, elapsed = 573 ms, util. = 82.5%.
Time spent in licensing: elapsed = 155 ms, percentage of total = 27%.
Peak memory used = 28.5 Mbytes.
Simulation started at: 9:43:05 AM, Mon Apr 16, 2012, ended at: 9:43:06 AM, Mon Apr 16, 2012, with elapsed time (wall clock): 573 ms.
spectre completes with 1 error, 0 warnings, and 0 notices.

 I browsed for logs in simulation folder, didnt find anything related to error. Which file would give more information?

Any ideas how to actually make it utilize successfully both cores of our dual core PC?

  • Cancel
  • tkhan
    tkhan over 13 years ago

    Kabal said:
    Simulating `input.scs' on ee208-08 at 9:43:05 AM, Mon Apr 16, 2012 (process id: 19906).
    Environment variable:
        SPECTRE_DEFAULTS=-E
    Command line:
        /opt/cadence/MMSIM101/tools.lnx86/spectre/bin/32bit/spectre  \
            input.scs +escchars +log ../psf/spectre.out -format sst2 -raw  \
            ../psf +turbo -proc 2 +lqtimeout 900 -maxw 5 -maxn 5

     

    I believe that you've selected the "processor affinity" option (-proc 2) and not number of threads (+mt=2).  See the relevant output of spectre -h for info on multithreading.

        +multithread  Turns on multithread capability.  Virtuoso(R) Spectre will automatically detect the number of processors and select the proper number of threads to use.  (See note on the 'options' help page about using multithreading.) You may use `+mt' as an abbreviation of `+multithread'.
        +multithread=N Turns on multithread capability. N is the specified number of threads. For baseline mode, at most 4 threads are allowed. For Turbo mode, at most 8 threads are allowed. You may use `+mt' as an abbreviation of `+multithread'.
        -multithread  Turns off multithread capability.  By default, multithreading is turned off for spectre but turn on for Turbo and APS. You may use `-mt' as an abbreviation of `-multithread'.
        -processor    Sets the CPU affinity of a process similar to Linux 'taskset' command. It specifies a numerical list of processors that may contain multiple items, separated by comma, e.g. '-processor 0-3,5,7'. Specification of numerical value out of range for current system results in the process termination with 'Invalid argument' error message You may use `-proc' as an abbreviation of `-processor'.
     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Kabal
    Kabal over 13 years ago

    ok i set up specific number of threads, say 4 (instead of auto) and preserved other options. Now it seems to run.

    but... from the system monitor i still see that only one processor is actively loaded almost 100% the other is almost resting... so it turns out that it still doesnt work "in parallel" ?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago
    Hi Kabal,

    In your original post, you are mixing up several things.

    The Job Options in ADE XL allows you to control whether ADE XL will be able to submit more than one job at a time. So if you are doing corner simulations, parametric sweeps, or have multiple tests, setting this to higher than one would allow it to submit more than one of those at once - ie in parallel.

    The Setup->Turbo... (Called Setup->High Performance Options in recent versions) is to control whether spectre itself can multi-thread. You have to turn on either Turbo or APS on this form (BTW, Turbo has now been end-of-lifed, but maybe your version is too old to show APS). Then underneath that it has options to control multi-threading - you should have auto, disable, and manual. If you have it set to auto, it will pick up to 4 with Turbo, depending on how many cores are on the machine - or you can use manual to constrain it to 2 if you wanted.

    Do _not_ set processor affinity. Setting it to 2 will have told it only to use CPU number 2. Best to leave this field blank - it can help in cases where you have many CPUs and can coordinate which CPUs you want to use without competing with other jobs - but it's rare that that's practical. So best to just let the OS figure it out.

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Kabal
    Kabal over 13 years ago

     Thanks for the explanation Andrew.

     

     So best to just let the OS figure it out.

     Ok, so not it turns out that i *do not* have the ability to run single task utilizing all cores. Because eventually the tool cant figure that out, even when i do not messwith settings, my free cores sitting almost idle and the Cadence using only one.

    • 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