• 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. APS or IRUN multithread = multicore?

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 126
  • Views 18931
  • 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

APS or IRUN multithread = multicore?

greatqs
greatqs over 12 years ago

Is the terminology of "multithread" (i.e. +mt = x) in APS/IRUN means number of CPU core to use? On a 12 cpu core machines, the max number of "multithread" should be 12, is it right? Thanks

 

 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Yes, that's right. The tool won't allow you to use more threads than "cores" that are available. Note that I put "cores" in quotation marks because if you have hyperthreading enabled, that will increase the number available to use - although in general we don't recommend using hyperthreading with APS because you don't typically get good scaling with a heavily floating point application like APS.

    Regards,

    Andrew.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greatqs
    greatqs over 12 years ago

    Andrew,

     Thanks!

     Is "hyperthreading" a simulator option or machine setup?

     How about AMS simulation using IRUN? Since "+mt=x" is APS arguments, if the simulator need also to resolve HDL events, will it need more cores than specified by "+mt=x"? I'm asking this is to correct setup the LSF strings "bsub -n y" to correlate irun +mt=x arguments, otherwise LSF may confuse and causes the farm to be low efficient. 

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

    Hyperthreading is a capability of Intel processors, and it is enabled/disabled as a BIOS setting usually. So it's a machine setup thing.

    If you've allocated a certain number of cores when you submitted the job with LSF, you can use +mt=lsf - and then it will inherit the number of threads from the LSF settings.

    There's no need to allocate more threads for HDL aspects - it's only the analog solver that is multi-threaded (that includes any analog parts of HDLs too).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greatqs
    greatqs over 12 years ago

    Andrew,

    For example 4 cores are used by analog solver for multithreading, but digital solver still need extra core for digital HDL, right? Otherwise 4 threads of the analog solver may not be balanced.

     

    Thanks,

    QS

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

    No, you don't need to do that. The +mt argument is only used for APS anyway - and the digital HDL is not multi-threaded so will be handled in the "main" thread. Given that the analog solver and digital "solver" are not active at the same time, there's no real benefit in having the digital in a separate thread from the analog (there has to be synchronization between the analog and digital - this is a consequence of how the two worlds are aligned).

    Regards,

    Andrew.

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

    Hi all,

    Sorry to up this topic.

    Just to explain me why, when i want to do an APS simulation with multi threads option, i cannot use the maximum specified.

    For example, when I set 6 threads, the message in start of simulation is: 

    "Multithreading Enabled: 6 threads on system with 8 available processors."

    and after:

    " Waiting for available license for Virtuoso(R) Spectre."

    And the simulation doesn't start, I've to change the 6 to 4 and then the simulation start.

    But normally I can use 8 no ? 

    Note that, no simulations are running (even from my colleague) when iḿ doing these tests.

    Thanks in advance for your help.

    Rgds,

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

    APS uses 2 tokens for 1 core, and 4 tokens for 2-4 cores, and 6 tokens for 5-16 cores. If you are doing RF analyses, it will use one more than that.

    So whatever is going on, you don't have enough licenses, which is why you're getting this problem. I don't know how many you have free.

    If this doesn't makes sense to you, please contact customer support so that we can take a look.

    Regards,

    Andrew.

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

     Hi,

    Thanks for your explanations.

     Rgds,

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Amar Kumar
    Amar Kumar over 5 years ago in reply to Andrew Beckett

    Hi Andew, 

    Thanks for this, it helped to an extent. I put "lsf" in the multi-threading value in the "Hign Performance GUI", then it took the +mt=lsf automatically.

    I wonder, if this can be done in reverse way. When I define multi-treading value, the LSF number should be automatically updated.

    The either way I can put is, when I define my mt value in the GUI, the LSF processor should be automatically decided based on the mt value.

    Do we have such feature ?

    Thanks,

    Amar

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Amar Kumar

    Hi Amar,

    This would be putting the cart before the horse. If you've already submitted the job using LSF, then LSF has submitted the job on a machine with sufficient resources to fulfil the resource requirement you asked for. Imagine that you asked for 4 CPUs when submitting the job, and ended up on a machine with 4 CPUs (or maybe 8 CPUs but the other 4 are being extensively used by another job). Now spectre says "hey, LSF, I need 12 CPUs". What's LSF going to do? Plug in some extra CPUs on the machine?

    Some queueing systems do have the ability to move a running job to another host (LSF has bswitch to do something like this, but I'm not entirely sure it's about updating the resource requirements), but I recall when looking into this in the past that it needs the application to be able to readdress its memory by being aware of this - which strikes me as being rather difficult and very specific to the queuing system used. So this is not supported (assuming it's even possible - I've not spent enough time investigating it).

    So in general, changing the resource requirements after the job has started makes no sense.

    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