Quantcast
Channel: Cadence Functional Verification Forum
Viewing all articles
Browse latest Browse all 1069

Spectre processes sleep for random interval

$
0
0

I have a program which creates spectre simulation processes. It can do multiple simulations concurrently, however, even when running just one simulation, the spectre process will sleep a random interval between 0 and 15 seconds prior to doing any work. This interval is literally random, as running the same exact circuit again will produce a different sleep interval.

The waiting channel in the system monitor is listed as "poll_schedule_timeout" while the process is sleeping.

I have tried two different versions of spectre. The version found within mmsim121 produces more consistent results, with delay times usually around 5 seconds. The version within mmsim72 is much more varied, sometimes with no delay, and other times with a 15 second delay.

Below is command line output showing the problem area:

Aggregate audit (3:26:14 PM, Tue Nov 10, 2015):
Time used: CPU = 8.79 s, elapsed = 15.5 s, util. = 56.6%.
Time spent in licensing: elapsed = 6.04 s, percentage of total = 38.9%.
Peak memory used = 47.3 Mbytes.
Simulation started at: 3:25:59 PM, Tue Nov 10, 2015, ended at: 3:26:14 PM, Tue
        Nov 10, 2015, with elapsed time (wall clock): 15.5 s.
spectre completes with 0 errors, 13 warnings, and 9 notices.
0 pausing for new file
2 pausing for new file
4 pausing for new file
1 pausing for new file
3 pausing for new file
5 pausing for new file
0 pausing for new file
2 pausing for new file
4 pausing for new file
1 pausing for new file
3 pausing for new file
5 pausing for new file
0 pausing for new file
2 pausing for new file
4 pausing for new file
1 pausing for new file
3 pausing for new file
5 pausing for new file
Reading file:  /tmp/sim_englik/netlist/input_rev4.scs
Reading file:  /tmp/sim_englik/netlist/input_rev2.scs
Reading file:  /tmp/sim_englik/netlist/input_rev1.scs
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@jjvccs/veriloga/veriloga.va
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@jjvccs/veriloga/veriloga.va
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.vams
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/discipline.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/disciplines.vams
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.vams
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/discipline.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/disciplines.vams
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@jjvccs/veriloga/veriloga.va
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/constants.vams
Reading link:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/discipline.h
Reading file:  /cad/cds/mmsim121/tools.lnx86/spectre/etc/ahdl/disciplines.vams
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@ICQ/veriloga/veriloga.va
Reading file:  /home/rhome/reesj2/RSFQ_LLv1/@ICQ/veriloga/veriloga.va

Time for NDB Parsing: CPU = 68.988 ms, elapsed = 3.10732 s.
Time accumulated: CPU = 68.988 ms, elapsed = 3.10732 s.
Peak resident memory used = 39.5 Mbytes.

The above example is where I started 6 Spectre simulations. Up to an including the "Aggregate Audit" sections, all 6 Spectre processes are behaving normally. The "(number) pausing for new file" line is my processes checking for simulation results failing to find an output tran.tran file from its respective spectre simulation. During this time the spectre simulations are listed as "sleeping" in the system monitor. These processes check for a tran.tran file every second, so with 3 printouts for each simulation in the example above, spectre did nothing for 3 seconds. After these 3 seconds eventually 3 of the spectre processes wake up and begin doing work. While not shown here, the other 3 processes wake up a few seconds later.


My Spectre exec command. input_file and dest_str are variables.

execlp("spectre","spectre",input_file, "+escchars", "-checkpoint", "-format", "psfascii", "-raw", dest_str,NULL);


This issue is drastically slowing down my simulation rate, as each simulation only takes roughly 7 seconds. Any ideas on why spectre is sleeping would be appreciated.


Viewing all articles
Browse latest Browse all 1069

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>