Tempus STA and Tempus DSTA: - An Overview
Tempus STA and Tempus DSTA: - An Overview
- An Overview
• Tempus DSTA:
– If Tempus STA runtime is more than overnight
– If Tempus STA is running out of memory
– When your design is larger than 50 million instances
– You want 50% less runtime and will allow 5X the CPU count
• D-MMMC
– A view is a combinations of library PVT, constraints, RC extractions
– Tempus STA can spawn each view as parallel runn.
– A 10 view design would take 10 machines with DMMMC.
– Multiple scripts, multiple machines, multiple sessions.
• C-MMMC
– One script can time multiple views at once.
– One script, one set of licenses
– This works with Tempus STA and DSTA.
– This is the Tempus DSTA preferred mode.
– No need for multiple directories, and multiple reports.
– Define the full job and let Tempus DSTA run with it.
read_verilog
read_lib
set_top module
read_spef
read_sdc
update_timing
report_timing
• set_multi_cpu_usage
-cpuPerRemoteHost # Number of threads per client
-localCpu # Number of threads in master
-remoteHost # Number of clients
• Example:
set clientCnt 2
set threadCnt 4
set_multi_cpu_usage -cpuPerRemoteHost $threadCnt \
-localCpu $threadCnt -remoteHost $clientCnt
• set_distribute_host
-timeout 300 # Safe default for LSF
-shellTimeout 300 # Only for SSH and RSH
-lsf, -sge, -rsh, ssh # Use lsf or sge sun grid engine or direct login
-queue ssv # Choose your own LSF queue name
-args {} # Choose your LSF options
-use_lsf_reservation # For use with LSF blaunch
-local # Use the one machine you have.
-P May be optional
set machineCnt = `expr $clientCnt + 1 ` -q needs to be changed
set procCnt = `expr $machineCnt \* $threadCnt ` -m May be optional
For a batch job remove -Ip One line for the master process and
one additional line for each client.
• Memory Expectations
– 1.5GB peak memory per million instances (master)
– Clients may use less.
STA
Minutes
600.0
Minutes
400.0
200.0 STA
Minutes
0.0
0.0 5.0 10.0 15.0 20.0 25.0 30.0
CPU Count
300.0 STA
Minutes
200.0 DSTA
100.0 Minutes
0.0
0.0 20.0 40.0 60.0 80.0
CPU Count
• Master log
– The default logfile names start with ./tempus.log
– They will increment to tempus.log1 in the next run
• Tempus options
– “tempus -log” will let you choose the logfile name
– “tempus -overwrite” will insure the name does not increment
• Client logs
– Each client is running a copy of Tempus
– Each client has its own directory and log file
– partOutput_0/tempus.log
– partOutput_1/tempus.log
– partOutput_2/tempus.log
<CMD> report_timing
Analyzing view default_emulate_view with delay corner[0]
default_emulate_delay_corner, rc corner[0] ...
All-RC-Corners-Per-Net-In-Memory is turned ON...
Analyzing view default_emulate_view with delay corner[0]
default_emulate_delay_corner, rc corner[0] …
• dist_print_usage
– Will print the resource usage for the master
• Example output
Cpu=03:02:02 Real=02:31:31 Peak_mem=70502meg Cur_mem=70494meg
• dist_print_client_usage
– Will print the resource usage for each of the clients
– Will not interrupt or wait for whatever the client is currently doing
• Example output
INFO (DSTA-1039): Client resource usage:
Client 0: Cpu=00:44:25 Real=01:25:57 Peak_mem=11095meg Cur_mem=9816meg
Client 1: Cpu=00:44:29 Real=01:25:58 Peak_mem=11338meg Cur_mem=10072meg
Client 2: Cpu=00:44:25 Real=01:25:57 Peak_mem=11095meg Cur_mem=9816meg
Client 3: Cpu=00:44:29 Real=01:25:58 Peak_mem=11338meg Cur_mem=10072meg
report_disk -dir ./
DISK_INFO (Master) : 96.02 Mb/S 2.7T total 3.4G used 383G free ./
DISK_INFO (Client 0) : 22.91 Mb/S 2.7T total 609K used 383G free ./
DISK_INFO (Client 1) : 76.82 Mb/S 2.7T total 177K used 11G free ./