• 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 SKILL
  3. Run jobs in parallel using skill in virtuoso

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 142
  • Views 11232
  • 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

Run jobs in parallel using skill in virtuoso

amaru
amaru over 3 years ago

Hello community support,

I am working on a script which is taking all the layers from layout, run some operations on each shape of that layer. But as layout gets bigger, the script takes too much time (several days). I need something(command/method) like I can be able to run operations on every layer parallelly because they are independent of each other. This way total time will be reduced to the longest layer run time, but I am unable to do this, currently layers runs serially making my script redundant (because no wants to use it because of its long run time). I have tried ipcBeginProcess command but for that too I have to fire virtuoso for every layer, that will be too many virtuoso to run skill commands. 

Can anyone suggest some some options in latest versions or some workaround I can use to accomplish my task.

Please message me if anyone of you have any other doubts.

Thanks in advance

Amar 

virtuoso version - ICADVM20.1-64b.500.19

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    There's no generic multi-threading support in Virtuoso (there are in certain special areas, so it rather depends on what you're doing).

    What are the "some operations on each shape of that layer" that you're performing? Dependent upon what you're doing (particularly which SKILL APIs you're using), there may be a way of either taking advantage of the limited multi-threading or otherwise using a lighterweight process such as "dbAccess" which is faster to launch than Virtuoso.

    In other words, I need more context to be able to answer.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • amaru
    amaru over 3 years ago in reply to Andrew Beckett

    Hello Andrew,

    "Some Operations" are -  finding shape and coordinates (I use dbGetOverlaps() for this) in the layout. I find every shape of a given layers and the vias associated with it.

    dBAccess does not support all skills commands so I can't use that in my case. Can you suggest any work around to decrease time, as each operation is independent of other.

    Thanks

    Amar

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to amaru

    Hi Amar,

    If it was boolean operations, you can use the abe.* functions in multi-threaded mode. However, for other things that's not going to help.

    Probably the best thing would be to contact customer support to see what can be optimised. There's no easy general answer that I can give from the limited information you've provided here.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • amaru
    amaru over 3 years ago in reply to Andrew Beckett

    Thank you Andrew for replying. I will look into abe* commands and see what can be done. Otherwise Customer Support is an option.

    Amar

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • amaru
    amaru over 3 years ago in reply to Andrew Beckett

    Thank you Andrew for replying. I will look into abe* commands and see what can be done. Otherwise Customer Support is an option.

    Amar

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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