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 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 callsicv -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_processesand-max_cores(ICC2) multiply, and the count applies to each host. With-submit_protocol lsf(ICC2),-num_processesmeans the number of hosts. - Distributed runs leave a
dp.log(ICV) anddp.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
set_host_options -target ICV -num_processes 4Lets IC Validator In-Design commands use 4 cores on the current host.
set_host_options -submit_protocol lsf -target ICV -num_processes 4 -max_cores 8Asks LSF for 4 hosts with 8 cores each for In-Design runs, 32 cores total.
report_host_optionsReports the multicore settings so you can confirm the ICV target is set.
icv -host_init 8 hostA:8 hostB:16 runset.rsStarts a standalone run on 32 CPUs across the local host, hostA and hostB.
icv -host_add hostC:16Adds 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
Master the Physical Design Implementation Flow
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.

Continue practising