IntermediateQuestion 199 of 222Source: Synopsys IC Validator User Guide S-2021.06-SP2: Distributed Processing and Licensing; Synopsys ICC2 Implementation User Guide X-2025.06-SP2: Enabling IC Validator Multicore Processing

How do you speed up IC Validator runs?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Give IC Validator more CPUs and let it decide how to use them. Standalone runs take hosts and CPU counts through -host_init (ICV) and can take more mid-run through -host_add (ICV). ICC2 In-Design runs use one process by default, so you set set_host_options -target ICV (ICC2) before running signoff DRC.

Technical Reference DiagramHow do you speed up IC Validator runs?
Swim lanes for a local host, two remote hosts and a scheduler, showing an IC Validator job started on 8 local CPUs, hosts added while the job runs, and a separate lane for ICC2 In-Design runs configured with set_host_options.

Technical Explanation

  • IC Validator chooses between parallel tasks and multithreading on its own. You tell it how many CPUs to use, where, and how to reach remote hosts.
  • icv -host_init 8 runset.rs (ICV) uses 8 CPUs on the local host. icv -host_init 8 hostA:8 hostB:16 runset.rs (ICV) uses 32 across three hosts. A host name with no count means all of its CPUs, and the default remote login is rsh unless you set -host_login (ICV).
  • icv -host_add hostC:16 (ICV) adds CPUs to a job that is already running. It must be run from the same working directory, with the same -rd (ICV) if the first run used one. -host_remove (ICV) drops whole hosts.
  • -host_elastic (ICV) adds hosts when too many commands are queued and removes idle ones, through LSF, SGE or your own command that calls icv -host_add (ICV).
  • Licences cap scaling. Under Elite licensing, each ICValidator-Manager licence enables four CPUs, so DRC on 16 CPUs needs 4 licences.
  • In ICC2, set_host_options -target ICV (ICC2) makes a configuration only for the In-Design commands. -num_processes and -max_cores (ICC2) multiply, and the count applies to each host. With -submit_protocol lsf (ICC2), -num_processes means the number of hosts.
  • Distributed runs leave a dp.log (ICV) and dp.stats (ICV) file named after the runset. These show which functions waited for a host, which is where extra CPUs help.

What To Check

  • CPU count against licences available, so the job does not wait on a licence queue.
  • The distributed log for functions queued with no free host.
  • That added hosts can see the run directory and group path.
  • report_host_options (ICC2) before an In-Design run, to confirm the ICV configuration exists.

Command Checks & Actions

ICC2 (icc2_shell)set_host_options -target ICV -num_processes 4

Lets IC Validator In-Design commands use 4 cores on the current host.

ICC2 (icc2_shell)set_host_options -submit_protocol lsf -target ICV -num_processes 4 -max_cores 8

Asks LSF for 4 hosts with 8 cores each for In-Design runs, 32 cores total.

ICC2 (icc2_shell)report_host_options

Reports the multicore settings so you can confirm the ICV target is set.

IC Validator (icv)icv -host_init 8 hostA:8 hostB:16 runset.rs

Starts a standalone run on 32 CPUs across the local host, hostA and hostB.

IC Validator (icv)icv -host_add hostC:16

Adds 16 CPUs on hostC to the job already running in this directory.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Runtime falls roughly in proportion as CPUs go from 8 to 32, and the distributed log shows few queued functions.
  • Suspicious (illustrative): Adding hosts past 64 CPUs saves under 10%, a sign that a few long serial functions dominate.
  • Hard stop: The job sits waiting for licences or a host that cannot reach the run directory. More CPUs cannot help until that is fixed.

Common Mistake

The Trap: Launching signoff DRC from ICC2 on a 64-core machine and waiting 9 hours, not knowing the In-Design commands use one process by default. One set_host_options -target ICV (ICC2) line would have used the cores that were idle.

What The Interviewer Is Testing

  • Knowledge of -host_init (ICV) and -host_add (ICV) and their working-directory rule.
  • Awareness that ICC2 In-Design needs its own host configuration.
  • A strong answer mentions licences as the cap on CPUs.

Follow-up Question & Model Response

"Why might adding more hosts stop helping?"

Candidate Model Response: Some runset functions depend on others and cannot start until their inputs are ready, so part of the run is serial. Once every waiting function has a host, extra CPUs sit idle. The distributed log shows this as hosts with no work. Beyond that point you gain more from runset caching or hierarchy settings than from hosts.

Practical Example

Tapeout Scenario: A standalone DRC run takes 14 hours on 8 CPUs (illustrative). With icv -host_init 8 hostA:8 hostB:16 runset.rs (ICV) it drops to 4.5 hours on 32 CPUs. Adding hostC:16 mid-run with icv -host_add hostC:16 (ICV) brings it to 3.8 hours, a smaller gain because the last 2 hours are dominated by a few long density checks. The team keeps 32 CPUs, which fits 8 Elite licences.

PnR Flow Mentor Guide

Read the complete 8-chapter PnR Flow Mentor Guide free on the web — library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.

PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out. →