The proposed Event-lookahead Time Warp (ETW) algorithm can look ahead,
combine and execute multiple events at each gate optimistically, and recover
from an error by using a rollback mechanism as used in the original Time
Warp algorithm. To reduce the rollback cost of the algorithm and
to support efficient run-time scheduling, a new data structure, called
a governor heap, was proposed and implemented. The governor
heap contains a heap structure and multiple linked lists, one for each
gate or flip-flop. By separating events into short linked lists,
the governor heap is very efficient and scalable in inserting, deleting,
and combining events for large-scale simulations.
PostScript (jpdc98.ps)
Title: Concurrency Preserving Partitioning Algorithm
for Parallel Logic Simulation
A partitioning algorithm for parallel discrete event gate-level logic
simulations is proposed in this paper. Unlike most other partitioning algorithms,
the proposed algorithm preserves computation concurrency by assigning to
processors circuit gates that can be evaluated at about the same time.
As a result, the improved concurrency preserving partitioning (iCPP) algorithm
can provide better load balancing throughout the period of a parallel simulation.
This is especially important when the algorithm is used together with a
Time Warp simulation where a high degree of concurrency can lead to fewer
rollbacks and better performance. The algorithm consists of three phases
and three conflicting goals can be separately considered so to reduce computational
complexity.
To evaluate the quality of partitioning algorithms in terms of preserving
concurrency, a concurrency metric that requires neither sequential nor
parallel simulation is proposed. A levelization technique is used
in computing the metric so to determine gates which can be evaluated at
about the same time. A parallel gate-level logic simulator is implemented
on an INTEL Paragon and an IBM SP2 to evaluate the performance of the iCPP
algorithm. The results are compared with several other partitioning
algorithms to show that the iCPP algorithm does preserve concurrency pretty
well and reasonable speedup may be achieved with the algorithm.
PostScript (vlsidesign.ps)
Title: Concurrency Preserving Partitioning (CPP)
for Parallel Logic Simulation
Based on a linear ordering of vertices in a directed graph, a linear-time
partitioning algorithm for parallel logic simulation is presented.
Unlike most other partitioning algorithms, the proposed algorithm preserves
circuit concurrency by assigning to processors circuit gates that can be
evaluated at about the same time. As a result, the concurrency preserving
partitioning (CPP) algorithm can provide better load balancing throughout
the period of a parallel simulation. This is especially important
when the algorithm is used together with a Time Warp simulation where a
high degree of concurrency can lead to fewer rollbacks and better performance.
The algorithm consists of three phases, and three conflicting goals can
be separately considered in each phase so to reduce computational complexity.
A parallel gate-level circuit simulator is implemented on an Intel Paragon
machine to evaluate the performance of the CPP algorithm. The results
are compared with two other partitioning algorithms to show that reasonable
speedup may be achieved with the algorithm.
Postscript (pads96.ps)
PDF format (pads96.pdf)