天天看点

ICC2里面多进程任务

ICC2工具支持三种多核任务,多线程(mutithreading)、分布式(distributed processing)、并行命令执行(parallel command execution)。 多线程是指把一个任务拆成多个线程来run;分布式指任务可以调用多个cpu来进行并行执行;并行命令执行指多个任务可以分别调用不同的cpu来并行执行。

ICC2每8个进程需要一个licence,用set_host_options -max_cores来指定最多的进程数。 一、多进程任务 支持多进程任务的命令有: place_opt/clock_opt/refine_opt/insert_via_ladders/route_auto,route_global,route_track,route_detail,route_eco/route_opt/signoff_check_drc/signoff_fix_drc/signoff_create_metal_file/signoff_fix_isolated_via 用一个进程去run routing的时候,结果是确定的;然而,当用多进程跑route的时候,结果是不确定的,不同的run的最终的结果可能有轻微的不同,这是由于每次多进程把任务进行的分割不同。Global routing支持在多进程执行时结果确定的模式,把route.global.deterministic的值设置为on来启动这个模式。 设置的max_cores的数目如果大于已有的cpu个数资源,最后的结果可能会变差。 二、分布式任务 支持分布式任务的命令有: create_placement -floorplan/signoff_check_drc/signoff_fix_drc/sign_create_metal_fill/signoff_fix_isolated_via 三、并行执行任务 当需要跑一些check或者report的命令时,可以让这些命令并行执行。tips:如果要report timing时,提前执行update_timing命令,否则每个report命令都会执行一次update_timing,比如: update_timing parallet_execute { report_cmd1 report_cmd2 report_cmd3 …… } 默认情况下,parallet_execute命令调用5个cpu,可以用-max_cores来修改。 用命令 parallet_execute -list_allowed_commands来得到支持的命令。

继续阅读