the comparative and concurrent simulation of discrete-event experiments

12
JOURNAL OF ELECTRONIC TESTING: Theory and Applications, 3, 107-118 (1992) 1992 Kluwer Academic Publishers, Boston. Manufactured in The Netherlands. The Comparative and Concurrent Simulation of Discrete-Event Experiments* ERNST ULRICH, KAREN P. LENTZ, JACK ARABIAN, ANt) MICHAEL GUSTIN Digital Equipment Corporation, 146 Main Street, Maynard, MA 01754 VISHWANI D. AGRAWAL AT&T Bell Laboratories, Murray Hill, NJ 07974 PIER LUCA MONTESSORO Politecnico di Torino, Italy Received June 5, 1991. Revised February 19, 1992 and April 5, 1992. Editor: M. dNbreu Abstract. Discrete-Event Simulation is a powerful, but underexploited alternative for many kinds of physical ex- perimentation. It permits what is physically impossible or unaffordable, to conduct and run related experiments in parallel, against each other. Comparative and Concurrent Simulation (CCS) is a parallel experimentation method that adds a comparative dimension to discrete-event simulation. As a methodology or style, CCS resembles a many- pronged rake; its effectiveness is proportional to the number of prongs--the number of parallel experiments. It yields information in parallel and in time order, rather than in the arbitrary order of one-pronged serial simula- tions. CCS takes advantage of the similarities between parallel experiments via the one-for-many simulation of their identical parts; if many experiments are simulated, then it is normally hundreds to thousands times faster than serial simulation. While CCS is a one-dimensional method, a more general, multi-dimensional or multi- domain version is MDCCS. MDCCS permits parent experiments to interact and produce offspring experiments, i.e., to produce more, but smaller experiments, and many zero-size/zero-cost experiments. MDCCS is more general, informative, and faster (usually over 100:1) than CCS for most applications. It handles more complex applications and experiments, such as multiple faults, variant executions of a software program, animation, and others. Keywords: Discrete-event simulation, parallel simulation, concurrent simulation, and comparative simulation. 1. Introduction: Background, Major Features and Advantages of CCS The simulation of single experiments is a widely used alternative for physical experimentation. For example, the testing of many kinds of engineering prototypes is done increasingly by modeling and simulation rather than working with physical hardware. Typically, many experiments are simulated one-at-a-time, are similar to *From a forthcoming book by E. Ulrich, V. Agrawal, and J. Ara- bian, and a Ph.D. thesis on MDCCS by K.P. Lentz, Northeastern University. each other, but require considerable manual work (ini- tialization, observation, and analysis of results) for every experiment. CCS is a time-domain, time- synchronized parallel simulation of many experiments. It is an algorithmic method. It applies and is limited to systems simulated with discrete events [1]-[5]. Its speed increases with the number of and similarities be- tween experiments, and it is typically hundreds of times faster than serial simulation. It originated as a speedup method for the fault simulation of digital circuits [6]- [12], many fault simulators were implemented, and it is the most accurate and general fault simulation tech- nique today. Over time it has improved in various ways, including its speed, generality, observability, and power as a methodology.

Upload: ernst-ulrich

Post on 06-Jul-2016

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: The Comparative and Concurrent Simulation of discrete-event experiments

JOURNAL OF ELECTRONIC TESTING: Theory and Applications, 3, 107-118 (1992) �9 1992 Kluwer Academic Publishers, Boston. Manufactured in The Netherlands.

The Comparative and Concurrent Simulation of Discrete-Event Experiments*

ERNST ULRICH, KAREN P. LENTZ, JACK ARABIAN, ANt) MICHAEL GUSTIN Digital Equipment Corporation, 146 Main Street, Maynard, MA 01754

VISHWANI D. AGRAWAL AT&T Bell Laboratories, Murray Hill, NJ 07974

PIER LUCA MONTESSORO Politecnico di Torino, Italy

Received June 5, 1991. Revised February 19, 1992 and April 5, 1992.

Editor: M. dNbreu

Abstract. Discrete-Event Simulation is a powerful, but underexploited alternative for many kinds of physical ex- perimentation. It permits what is physically impossible or unaffordable, to conduct and run related experiments in parallel, against each other. Comparative and Concurrent Simulation (CCS) is a parallel experimentation method that adds a comparative dimension to discrete-event simulation. As a methodology or style, CCS resembles a many- pronged rake; its effectiveness is proportional to the number of prongs--the number of parallel experiments. It yields information in parallel and in time order, rather than in the arbitrary order of one-pronged serial simula- tions. CCS takes advantage of the similarities between parallel experiments via the one-for-many simulation of their identical parts; if many experiments are simulated, then it is normally hundreds to thousands times faster than serial simulation. While CCS is a one-dimensional method, a more general, multi-dimensional or multi- domain version is MDCCS. MDCCS permits parent experiments to interact and produce offspring experiments, i.e., to produce more, but smaller experiments, and many zero-size/zero-cost experiments. MDCCS is more general, informative, and faster (usually over 100:1) than CCS for most applications. It handles more complex applications and experiments, such as multiple faults, variant executions of a software program, animation, and others.

Keywords: Discrete-event simulation, parallel simulation, concurrent simulation, and comparative simulation.

1. Introduction: Background, Major Features and Advantages of CCS

The simulation of single experiments is a widely used alternative for physical experimentation. For example, the testing of many kinds of engineering prototypes is done increasingly by modeling and simulation rather than working with physical hardware. Typically, many experiments are simulated one-at-a-time, are similar to

*From a forthcoming book by E. Ulrich, V. Agrawal, and J. Ara- bian, and a Ph.D. thesis on MDCCS by K.P. Lentz, Northeastern University.

each other, but require considerable manual work (ini- tialization, observation, and analysis of results) for every experiment. CCS is a time-domain, time- synchronized parallel simulation of many experiments. It is an algorithmic method. It applies and is limited to systems simulated with discrete events [1]-[5]. Its speed increases with the number of and similarities be- tween experiments, and it is typically hundreds of times faster than serial simulation. It originated as a speedup method for the fault simulation of digital circuits [6]- [12], many fault simulators were implemented, and it is the most accurate and general fault simulation tech- nique today. Over time it has improved in various ways, including its speed, generality, observability, and power as a methodology.

Page 2: The Comparative and Concurrent Simulation of discrete-event experiments

108 Ulrich, Lentz, Arabian, Gustin, Agrawal, Montessoro

CCS is similar to using a many-pronged rake, and is similar to a race. It detects problems in proportion to the number of experiments (prongs or racers). It is a parallel methodology and style that minimizes man- ual work because it is more comparative, statistical, systematic, and exhaustive than one-experiment-at-a- time simulation. CCS is a bolder simulation style than those of the past, permitting experimentation with very large numbers of experiments. It is a novel and radical approach that has many advantages and no disadvantages.

For serial simulation the initial experiments receive too much attention and absorb most of the user's energy. Often little time and energy is left over for later ex- periments, and problems are detected in the arbitrary serial order of the actually simulated experiments. For CCS, no manual work is required for the individual experiment, and problems are detected in time-order and in parallel. Earlier, more important problems are detected earlier, later, less important problems are detected later, and causes and symptoms are easily distinguished by statistical means.

CCS is similar to simulation with parallel proc- essors, with one processor per experiment. However, no parallel hardware is required, the restriction that the processors used must be simple does not exist, costly communications between hard processors are avoided, and it is a precise time-synchronized method. Using one conventional and any number of virtual processors, CCS obtains its efficiency through similarity rather than parallel hardware. Overall, it is a more general ap- proach. Other major features, advantages, and facts regarding CCS are these:

1. CCS is a general method because it allows complex submodels to be simulated. This generality is essen- tially due to the technique of Multi-List-Traversal [13]-[19].

2. Based on the similarity of experiments and efficient one-for-all initialization, CCS is typically hundreds of times faster (in CPU time) than serial simulation. Further tactical speedups are due to the use of short duration throw-away and zero-duration dormant ex- periments. Dormant experiments require no CPU- time and can be used in large number. This is a fun- damental advantage because inexpensive experiments of this kind are impossible with conventional (serial or parallel) simulation. CCS is also strategically fast because experiments are aggregated into one run, avoiding all of the manual work between successive serial simulations.

3. Observation, compared with observing serial simula- tion, is very powerful because experiments are run- ning in parallel, and because--based on maintain- ing signatures for all experiments and one artificial averaged experiment--it is an essentially automatic process. Signatures contain deterministic and statistical information about an experiment, about its ancestor experiments or causes, its size (relative to reference experiments) and its statistical distance from the averaged experiments. CCS also permits dedicated observation (usually throw-away) experi- ments, driven by and similar to normal experiments, but avoiding unnecessary detail.

4. Modeling and simulation are closely related proc- esses, and modeling requires the testing of sub- models. A natural and optimal testing method is the systematic simulation of submodels. CCS is superior to one-case-at-a-time testing, and therefore improves the modeling process.

5. Over 50 Concurrent Fault Simulators have been im- plemented, including DEC's DECSIM, MOZART, CREATOR, LASAR, VERIFAULT, and COSMOS. Besides fault simulation, many applications of CCS are possible. Some are described here in outline form. A particularly promising application is Con- current Software Simulation (CSS). CSS simulates variant executions of a computer program, and is useful for testing/debugging of most kinds of com- puter programs, finding bugs more quickly and ex- haustively than with nonsimulating tools. No other techniques capable of this have been reported.

6. Based on automatic observation, a CCS run can be automatically controlled. Deletions or additions of experiments and run termination can be made auto- matically. While serial simulation requires much manual work, CCS is a more automatic, systematic, and error-free method.

7. A powerful generalization and speedup for CCS is multi-dimensional or Multiple-Domain CCS. The basic feature of MDCCS is that experiments can in- teract and generate offspring experiments. MDCCS generates and handles many more experiments than CCS, and the average experiment is smaller, faster, and more informative. The names (ID numbers) of offspring experiments contain those of their parents and ancestors. Thus, every ID number indicates the causes of an experiment (such as its input causes) and becomes part of the signature of an experiment. Signatures are the basic information to measure sim- ilarities between experiments, permit their compari- son, and permit the elimination of noninformative

Page 3: The Comparative and Concurrent Simulation of discrete-event experiments

The Comparative and Concurrent Simulation of Discrete-Event Experiments 109

experiments. An important feature inherent in MDCCS is the ability to use multiple reference experiments.

8. To perform similar physical experiments in parallel is desirable in fields like biology, chemistry, and meteorology, but is too costly due to the parallel resources (labor, space, equipment, etc.) required. However, when discrete-event simulation is a sub- stitute for physical experimentation, then CCS is usually an alternative to serial simulation. Compared to parallel physical experimentation, it requires no parallel resources.

2. An Overview: CCS from a User's Point of View

CCS simulates many experiments concurrently. Typical or possible concurrent experiments are those due to faults in digital networks, variant executions of a com- puter program, and execution of the instructions of a computer instruction set. CCS's fundamental power and efficiency is that many or most experiments are simu- lated in a one-for-many or one-for-all implicit style, i.e., at nearly no cost or even at zero-cost by the reference or R-experiment. CCS typically begins with the simula- tion of one R-experiment, which initially contains and simulates all or most C-experiments.

Assumed in an example (figure 1) are 100 experi- ments, CO to C99. Until time 3 the C-experiments C1 to C99 are identical to and implicitly simulated by R=CO. At time 3 the experiments C77 and C78 are diverged from R, while all other experiments remain implicit, contained in R. The major phase of CCS begins when more than one explicit experiment exist, i.e., after a first C-experiment has been diverged from the R-experiment. The crucial fact is that the ex- periments run against each other, that the race-like situation shown in Figure 1 arises, and that these ex- periments may be compared. For example, as experi- ments C77 and C78 diverge at the same time from R, they may also behave identically in the future. This can be observed (statistically and automatically) and con- clusions (statistical and automatic) about their similarity and correctness can be drawn.

The simulation efficiency, especially initially, is very high. If a simulation run involves 5,000 experiments, then all of them are usually initially represented by, and contained within, one R-experiment, which runs at an efficiency of 5,000:1. Various facts and strategies ex- ist which maintain a high efficiency.

Time R=C0

2 3 C77 C78 4 ">~ .......... 5 . ,

Fig. 1. A simple example.

Specifically, C-experiments are dropped from the simulation when they have served their purpose (which happens frequently during fault simulation), others be- come identical to and converge with the R-experiment (which happens even more often during fault simula- tion), and others remain completely or largely quies- cent throughout the simulation (also typical for fault simulations).

One strategy to induce efficiency is to declare and simulate a small number of long-term master experi- ments in conjunction with large number of short-term throw-away experiments. The latter are expected to diverge from these master experiments. The simulation will then largely consist of verifying that these diverg- ences occur as expected. This generates evidence about the correctness or incorrectness of master as well as throw-away experiments. It is efficient because these throw-away experiments are dropped immediately after they diverge.

Another strategy to induce efficiency is the use of dormant (DOR) experiments. This begins with injec- ting DOR sources into a system with the expectation that they will remain indistinguishable experiments from the R-experiment. If the simulation verifies this, it verifies the user's expectations and indicates success and correctness. However, if a DOR is reached and becomes a distinguishable, explicit experiment, this means that something is wrong, which is important in- formation for the user, or that nothing is wrong but the user's assumptions of implicitness, which is also useful information. Thus, the use of DOR's generates worth- while information at a minimal cost. That is, real DOR's are simulated at zero CPU time, while the ex- plicit (reached) DOR's are eliminated quickly and are thus simulated at almost zero CPU time.

3. A Conceptual View of Serial Simulation vs. CCS and MDCCS

Figure 2 compares serial simulations vs. CCS and MDCCS. The serial simulation SO to Sn are usually

Page 4: The Comparative and Concurrent Simulation of discrete-event experiments

110 Ulrich, Lentz, Arabian, Gustin, Agrawal, Montessoro

0 ,.Ib- Sl -I~ $2 .l~Sn Time

1

2

3

4

5

6

7

8

9

10

11

12

13

R=CO

I R=CO[C2]

. . . . . . . . ~ C1 R=CO[CI,C2] L I

. . . . . . . . . v

T

. . . . . . . . > Cl !

R=AOB0

. . . . . . . . . . . . . . . . . . . . .> AOB3

R=AOB0[B3]

. . . . . > A7B0

~ . ~ A 7 B 3 . ,q . .

~''"~176176176176 ....... t .......

(a) Serial Simulation (b) CCS (c) MDCCS

Fig. 2. Serial simulation vs. two types of concurren simulation.

similar to each other, and only segments of the serial simulation (indicated by heavy arrows in figure 2a) are different from the first serial simulation SO. The serial simulation SO to Sn and the concurrent experiments CO to Cn are equivalent, and SO and R=CO are identical. For CCS, R=CO is the fully simulated reference or R- experiment, while C1 to Cn are small-scale concur- rent C-experiments. Here, C2 diverges from R at time 4, remains explicit as long as it is different from R, and is dropped at time 9. C1 diverges at time 6, con- verges at time 8, diverges again at time 10, and is dropped at time 12. For this example the experiment Cn remains identical to R=CO, and therefore is not shown in figure 2b. The R-experiment performs most of the simulation work. It simulates--at no cost per C- experiment--all parts of all C experiments identical to their counterparts in R. The R-experiment, but often only some if its active branches, carries information, i.e., the ID number of C-experiments not performing this branch. Thus, in figure 2b, R=CO [C2] means that R=CO is inhibited from doing what experiment C2 is doing. This is important and permits observation to be done easily and naturally. The simulation cost per C- experiments is proportional to its difference from the R-experiment. All C-experiments remaining identical to R are simulated at no cost.

Figure 2(c) illustrates Multi-Domain Concurrent and Comparative Simulation. MDCCS may create offspring experiments if compatible (orthogonal) parent ex- periments encounter each other. That is, parents may

locally interact to create pieces of offspring ex- periments. Orthogonal domains A and B are assumed here, and AOB3 and A7B0 are orthogonal parents which produce an offspring experiment A7B3. An experiment, such as AOB3, is a potential parent, and may interact with many other (orthogonal) parents, such as A7B0, A8B0, and A9B0. Their offspring would be the ex- periments A7B3, A8B3, and A9B3. The names (IDs) of explicit offspring experiments are created from those of their parents. MDCCS permits interaction between opposites, such as between independent input variables for a given system. For example, by defining parent ex- periments, or experiment sources, for each of two or- thogonal domains (such as 10 temperature values for domain or variable A, and 10 pressure values for do- main or variable B, for meteorology experimentations), a total of 100 possible interaction experiments is automatically defined. For this example 20 parents or sources (10 + 10 opposites) may create 100 interaction experiments. However, some, many, or all of these in- teraction experiments may never occur explicitly. They may remain completely (100%) or partially (under 100%) implicit or dormant, contained within their parents experiments.

4. A n o t h e r C o n c e p t u a l V i e w ; Similarity Causes E f f i c i e n c y

Figure 3 conceptually compares conventional (serial) simulation with CCS and MDCCS. for serial simulation

Page 5: The Comparative and Concurrent Simulation of discrete-event experiments

The Comparative and Concurrent Simulation of Discrete-Event Experiments 111

1 i n - s t r e a m ~ 1 system [

(a) Convennonal simulation: An expertment consists of one in-stream and and one system. The efficiency is I=1"1, or urtity.

P in-streams N systems IIIm

(c) Two-domain MDCCS: P in-streams and N systems systems are simulate~L The number of experiments is e=P*N. The efficiency is roughly E=P*N*S.

(b) CCS: Or~in-~eama and N expe~ments (systems) are simulated. The efficiency is roughly E=I*N*S,

N ~ystems

I i

in-streams [

(d) Four-domain MI)CCS: Several in-~gams and N systems are simulated The number of experiments is ~P*Q*R*N. The efficiency is roughly E=P*Q*R*N*S.

Fig. 3. A conceptual view; the relationship between similarity and efficiency.

(figure 3a) each experiment is performed at a very low efficiency of unity. Figures 3b through 3d are views of CCS and MDCCS, where overlapping rectangles indi- cate similar systems and similar input data or in- streams. For CCS and MDCCS the efficiency is approximately E=e.S, where e is the number of experi- ments per run, and S is a similarity factor, an indicator of the natural similarity between experiments. The effi- ciency will increase linearly with e, while S ranges from one to zero. An S-value of one is unlikely (all ex- periments would have to be 100 % similar, or identical) and an S-value of zero is also unlikely (all experiments would have to be totally different, or 0 % similar). A typical case might be that there are 1,000 experiments which are 50% similar, so that S = 0.5. For this case the efficiency is E = 500 = 1,000 * 0.5.

In figure 3b the number of experiments is e = N (the number of simulated systems), while in figure 3c (for two-domain MDCCS) it is e = P * N (P in-streams multiplied by the number of systems). Figure 3d is a probabilistic example of the storage and speed efficiency of four-domain MDCCS. It shows that in-streams are likely to interact (combine experiments) only weakly with other in-streams. MDCCS saves storage and CPU time for explicitly small offspring experiments which remain essentially implicit, contained within parent ex- periments. For example, a parent experiment such as PO-Q-RO-NO typically represents or contains many un- born experiments, i.e., 100% or almost 100% identical experiments such as PO-Q1-RO-NO. The CPU time saved for a 97% implicit explicit experiment is 97% of the possible (worst-case) CPU time. If a simulation has several in-streams then the probability is high that the average combination experiment is small and that its efficiency is high.

The storage advantage of MDCCS over CCS is very large and precisely predictable; it causes a speed advantage which is smaller and not precisely predict- able. If, for example, (figure 3(d)) P=Q=R=N=20, then 20 distinct instreams (experiment sources) are stored at each input point and at some internal points of the system. If this task is done with CCS rather than MDCCS, then the localized interaction of experiments within the N systems is impossible. The CCS alterna- tive is that 20*20*20.20 =160,000 in-streams (all com- bination experiments) are stored (with redundant data and "pre-combined" experiment ID numbers) as ex- periment sources at all inputs. Thus, a maximum of 160,000 experiments may arise (where at most 20 may arise for MDCCS) when any input becomes active and injects information. For this example MDCCS is at least 8,000:1 (160,000:20) as storage efficient as CCS. For each additional input with 20 in-streams this advantage increases 20-fold, to 160,000:1, 3,200,000:1, etc.

The speed advantage of MDCCS over CCS, al- though based on the storage advantage, is not exactly proportional, but is nevertheless very large. MDCCS stores and processes a minimal number of experiment sources at input or any other points, and thus minimizes the simulation time. If the speed advantage would be only a fraction (such as 1%) of the storage advantage, it still would be large, such as 80:1, 1600:1, and 32,000:1 for the above cases. Overall, the storage and speed ad- vantages of MDCCS over CCS will often approximate 100:1 and even 1,000:1.

5. Multi-Domain Concurrent Simulation; Highlights and Efficiencies

Consider a 4-domain simulation (figure 4) with do- mains A, B, C, and D. Assume that these domains have

Page 6: The Comparative and Concurrent Simulation of discrete-event experiments

112 Ulrich, Lentz, Arabian, Gustin, Agrawal, Montessoro

1 2 3 4 5 6 7 8 9 10 11 12

R=AOBOCODO

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . �9 > AOBOCADO

R=AOBOCODOR=AOBOCOD0[A3,C4][C4] It 1 . . . . . . . . . . . . . . . . . ~ A3BOCODO[C4]

[ . . . . > A3BOC4D0 < . . . . . . .

30.000:1

1.500:.1 28~0:1

5,700:1 22.800:1

The above information indicates the efficiency of individual experiments

Figure 4. Divergence and inhibition for MDCCS.

5, 10, 20, and 30 values. For example, the domain A has the values A0 --- 1, A1 = 2, A2 = 3, A3 = 4, A4 = 5. This simulation is defined in terms of 65 (5 + 10 + 20 + 30) parent experiments, defines a total of 30,000 (5,10,20,30) experiments, which includes 29,935 (30,000 - 65) offspring experiments. Thus a fraction of all experiments (.217 %)is enough to define a large number of possible experiments. The basic reference experiment has the ID AOBOCODO, repre- sents 30,000 experiments, and runs at an efficiency of 30,000:1. The experiment AOB3CODO represents one tenth as many experiments as AOBOCODO and still runs very efficiently at 3,000:1 over serial simulation. At the low end of the spectrum the experiment A1B2C3D4 runs at the efficiency of 1:1 because it represents only one experiment. In figure 4 the experiment AOBOCODO encounters the variable C at time 3, causing the divergence of experiment AOBOC4DO. This creates ex- periment AOBOC4DO, and modifies the R-experiment so that it is inhibited relative to C4. The R-experiment AOBOCO DO now represents all C-experiments except AOBOC4DO, and its ID is changed to AOBOCODO[C4]. Another experiment, for example A3BOC4DO, may or may not have encountered a variable such as B. Its ID expresses the fact that any encounter with B, whether it happened or not, did not affect it.

If the average MDCCS experiment runs at a 150:1 efficiency relative to serial simulation, then the simula- tion runs at this efficiency. The D-domain in the above example indicates a major advantage of CCS over serial simulation. It suggests insertion of numerous experi- ments which are unlikely to occur, but might occur. For MDCCS, proof of most of these dormant experi- ments (DORs) will typically be obtained at no cost, while experiments which do occur will be simulated at a low cost because of their low number. For serial simulation, the cost of gaining the equivalent informa- tion is enormous: All serial simulations would have to

be almost identically repeated subject to the s m ~ varia- tion of each to the unlikely experiments.

6. Observation, the Role of Signatures, and Statistical Simulation Control

CCS provides considerable advantages when it comes to observation. For example, to perform competing physical experiments is difficult because this requires elaborate measuring equipment to observe what is hap- pening. In contrast, the observation of competing ex- periments running on a computer is relatively simple. An example is the measurement of time: measuring time differences between nearly identical physical ex- periments is difficult, and such measurements are at best approximations. For CCS, time is a basic piece of information maintained during the simulation, and even the smallest time difference between two experi- ments can be observed.

Observation is costly and difficult for conventional simulation because observation points must be speci- fied, observed information must be saved for each experiment, and later retrieved and compared with information from other experiments. For CCS, this is unnecessary because all experiments are always up-to- date, at the same point in simulated time. Thus, obser- vation is done in a direct comparative style, directly observing the differences between experiments.

A major part of observation for CCS is the use of signatures. A signature is automatically maintained for each experiment and for an artifact averaged experi- ment. Each signature contains deterministic and stat- istical information, permitting a shortcut kind of obser- vation, thereby minimizing the detailed observation and comparison of experiments. Each signature contains an ID profile, event and divergence counts, and user specified target variables and target results. Signatures are examined in terms of their ID profiles and target

Page 7: The Comparative and Concurrent Simulation of discrete-event experiments

The Comparative and Concurrent Simulation of Discrete-Event Experiments 113

variables, but also in terms of event and divergence counts, particularly if these counts significantly exceed the average or a user specified maximum. The ID pro- file is best explained with an example: the ID numbers A15BOC3 and A16BOC7 have a profile (bit-mapping) A15 into one, B0 into zero, C3 into one, etc.) of value 101 and these two experiments have a high probability of being very similar or identical. They are probably very dissimilar from experiment AOBOC3 which has a profile of 001. Profiles are useful to recognize types of experiments, especially R- and C-experiments.

The averaged signature is maintained so that a stat- istical difference of each experiment from the average can be observed. This constitutes a statistical observa- tion of all experiments, without the specification or use of observation points, and without saving and compar- ing large amounts of information. Less work is done than during conventional serial simulations, but more subtle information differences between experiments are gathered because the statistical observation is not based on user-specified observation points. Based on direct comparative observation and statistical signatures, CCS can be controlled better than serial simulation. Due to signatures the success or failure of an individual experi- ment is usually evident quickly after it occurs. There- fore, successful or failing experiments can be eliminated very early. This is efficient because many experiments succeed or fail very early during a simulation. This avoids the useless continuation of experiments, which happens often for conventional simulation.

Based on observation, statistical, random sample, experimentation/simulation can be done with CCS. For example, the user may specify a large number of ex- periments, but may also specify that only a percentage of these experiments is simulated, and that the ex- periments are chosen at random. This permits inexpen- sive (in CPU-time and storage) preliminary rehearsal simulation to be done before full-dress simulations are performed.

7. Multi-List-Traversal

Within CCS, Multi-List-Traversal (MLT) is a key tech- nique [13]-[19]. It permits any number of ordered linked lists to be traversed simultaneously so that items with identical ID-numbers on different lists are proc- essed together. For many years CCS was a limited tech- nique because only two lists (normally one input and one output list) could be traversed simultaneously. The development of the MLT technique was crucial for gen- eralizing CCS to handle levels of digital logic beyond

the gate level, for applications beyond digital logic, and for making CCS much more efficient. With the MLT technique CCS is several times as useful as without it.

8. Potential Applications of CCS and MDCCS

Twenty-eight potential applications are outlined here. Some are specific, others are general, and some are mere possibilities. They include applications for digital networks, some of which are close to the original pur- pose of CCS, Concurrent Fault Simulation. MDCCS plays a significant role in most of them. Figure 5 illustrates the relationship between the CCS or MDCCS simulation kernel and the applications. The applications are essentially independent from the kernel, but the glue (performing the necessary transformations) connects things together.

Fig. 5. The CCS kernel and the applications.

1. General Purpose Comparative Experiments Simu- lation/Simulator (GPCOMP). The goal of GPCOMP is best described in terms of discrete-event tools such as GPSS, Simscript, and SIMULA, which are general purpose modeling/simulation tools intended for problems solvable with discrete-event simula- tion. GPCOMP would combine the capabilities of such tools with CCS. Properly implemented, GPCOMP would be very powerful. Most of the following applications would be subsumed by a suf- ficiently general version of GPCOMP.

2. Many-Patterns, Many-Faults Simulation (MPMFS). This two-domain simulation extends conventional Concurrent Fault Simulation. It permits multiple input pattern experiments to be simulated against many faults. More general and faster than Concur- rent Fault Simulation, it measures the fault detec- tion effectiveness of input patterns mad is a test pat- tern generation tool as well as a better fault simula- tion method.

3. Comparative Design Verification Simulation, or CDVS, exercises a digital design subject to dif- ferent input patterns. This would often be done in combination with orthogonal data patterns to pro- vide data in addition to control experiments, and could include simulation is a small sample of faults

Page 8: The Comparative and Concurrent Simulation of discrete-event experiments

114 Ulrich, Lentz, Arabian, Gustin, Agrawal, Montessoro

to gain network coverage information. An exam- ple of CDVS is a comparative simulation of the in- struction set of a computer, verifying the expected similarities and differences between instructions.

4. Concurrent Software Simulation (CSS). The goal of CSS is to test and debug computer programs via simulation, to detect and remove bugs more quickly than conventionally. The approach is to simulate multiple experiments for a given program, to exer- cise a program so that many program paths are traversed and executed concurrently. CSS is one of the most promising applications of CCS, and is discussed in more detail in a later section. CSS ap- pears to be a first attempt to solve the debugging problem in this systematic fashion.

5. Concurrent Simulation of Diagnostic Programs (CSDP) has been successful [13], but CCS (the preceding application) can further accelerate the creation, debugging, and fault analysis of diagnostic programs. Specifically (see Section 9, figure 6a), replacement of segments of a detailed logic net- work with higher level behavioral models will per- mit earlier debugging of diagnostic programs, before structurally detailed logic becomes available. This is more economical, particularly where well- proven behavioral models can be used.

6. Multiple Faults Simulation (MFS), or the simula- tion of interacting faults. Presently, all methods of fault simulation (including concurrent methods) have been inadequate to deal with interacting faults. MDCCS provides options to attach this problem. MFS will be useful when high-probability multi- ple faults, such as pin-connector faults, are to be detected.

7. Another faults application is to use domains to distinguish pervasive faults (PFs) and nonpervasive faults (NPFs). NPFs would be normally propa- gated, but PFs are intercepted and detected at NPFs. This is efficient because NPFs are rare and because PFs would be quickly deleted from a simulation or only locally simulated.

8. Min-Max Timing Simulation (MMTS). This and the next application (XRS) are closely related. We have evolved MMTS [20] in considerable detail, and it is likely to be implemented in the near future [21].

9. X-state Resolution Simulation (XRS). This applica- tion, related to the previous one, represents a fun- damental and efficient solution to a long-standing accuracy problem in logic simulation.

10. For logic simulation, and applicable to other areas, is the ability to distinguish between real and pseudo

logic. Pseudo logic is useful to perform complex observation tasks or to generate input activity for real logic.

11. Clock Tree Equivalence Simulation (CTES). This is a method to support Clock Suppression Tech- niques [22,23].

12. Similar to fault simulation is the application to systems such as pipeline, neural, and other infor- mation flow networks. Many kinds of local distur- bances in such networks are of interest and can be simulated similarly to fault experiments in digital networks.

13. Another potential application is the analysis of graphs, such as for cycle detection and similar purposes.

14. Concurrent Test Generation (CTG). This method for automatic test generation for digital networks has been evolved at Bell Labs and Torino [24,25]. It is feasible that MDCCS can improve this approach.

15. Another application of MDCCS would involve economic modeling/simulation, particularly the in- put/output method of W. Leontief [26].

16. On a smaller scale, small business and manage- ment simulations are possible. For example, an event-scenario of the weekly cycle of a retail store could be generated. Then this master cycle and real or random variations of this would be simulated, evolving an optimal (in inventory and other parameters) scenario.

17. Another potential application involves the simula- tion of token-ring networks, representing most nodes in a network by a single representative (reference) node.

18. CCS and MDCCS have potential application in the area of animation. It could be an inexpensive method to create intermediate frames for artist gen- erated manual frames, providing multiple options (experiments) to go from one artist generated frame to the next. The artist would view these automat- ically experiments and select one he prefers.

19. Similar to animation, CCS and MDCCS could be used for pattern making for slightly dissimilar (sized or shaped) patterns for advertising, letter- ing, or for clothing. Depending on the application, one pattern or a number of them (of different size) might be chosen.

20. CCS and MDCCS may be useful to simulate design experiments in a statistical fashion, to establish an optimal design among several candidates. This is related to the statistical experimental design methods developed by G. Box [27] and G. Taguchi

Page 9: The Comparative and Concurrent Simulation of discrete-event experiments

The Comparative and Concurrent Simulation of Discrete-Event Experiments 115

[28]. Based on the similarity of experiments, CCS is likely to be useful to optimize these statistical design methods. For this, it may be necessary to bring these methods closer together, i.e., to handle statistical experimental design as an event-driven process.

21. Another potential application is symbolic simula- tion for digital networks. Symbolic simulation and CCS are related techniques [29], and it is likely that the MDCCS variation of CCS bring these tech- niques closer together. Since MDCCS is very ef- ficient in CPU-time and storage, it is likely that it is a method that can realize symbolic simulation more efficiently and, possibly, more generally than the present realizations.

22. Another application of CCS involves problem solv- ing and game playing for games such as chess. It is likely that CCS is useful and natural for breadth- first tree analysis [30] because it can traverse and grow trees of virtually any breadth naturally. Us- ing one branch as (an artificial) reference experi- ment, the branches would be compared (using sig- natures) for similarities. It is likely that tree- growing and tree-pruning would be very efficient with CCS.

23. Related to the above application is routing, maze- running, and Monte Carlo simulations. MDCCS and the creation of offspring experiments (when choices arise) appears to be quite suitable for this purpose.

24. Air traffic and air traffic control is another poten- tial application.

25. A further potential application of CCS is protein folding during the assembly of a protein, a yet un- solved problem in molecular biology. Discrete- event simulation, aided by CCS, could be one me- thod to attack this probably very massive problem.

26. Another potential application would be real-time optimization for vehicle engine operation. Objec- tives would be fuel reduction, safety, and minimal wear. Simulation inputs would be vehicle and engine speeds, temperatures and weather data, oil pressure, operator brake-force, and a short term history of operator inputs and of vehicle and engine actions. Results produced would be short term (seconds or less) future scenarios, and selection of an optimal one to set engine and vehicle speeds, actual brake-force, etc.

27. Similar to the above application, real-time op- timization for industrial processes and machinery are feasible.

28. Concurrent Petri-net simulation is another poten- tial application.

9. Concurrent Software Simulation (CSS)

CSS involves the concurrent simulation of different exe- cution paths of a computer program. This was originally developed to verify the fault detecting capability of diagnostic programs [13], but there is much more to this application. The testing and debugging of general computer programs can be accelerated with CCS. The result will be programs that contain fewer bugs. It is estimated that a minimum of a 5 % cost and develop- ment time improvement can be achieved for typical pro- grams, while much more can be gained for difficult programs. At this time CCS appears to be the only method general enough to realize the simultaneous simulation of many programs.

The efficiency of CCS for this application is of in- terest because CSS induces a slowdown factor (esti- mated at 30:1) relative to the conventional (serial) run- ning of program cases on debugger programs. Assum- ing that the typical simulation speedup over serial simulation is approximately 150:1 with MDCCS, this slowdown factor reduces the advantage of CCS to 5:1. However, the mere running of numerous debugging runs is not equivalent (in information generation) to CSS. Specifically, the comparison of very many debug- ging runs would be required and would require an automatic process (dealing with vast amounts of data) to gain the information equivalent to CCS. While CCS is natural for observing similarities and dissimilarities between experiments (since it is based on the concept of similarity), running of debuggers and post-analysis of the results appears to be inadequate for this. Also, the use of inexpensive difference experiments is im- possible with serial simulation. Figure 6 illustrates CSS.

It shows a digital system and a program and data contained in a memory as a single interconnection net- work. This network includes a program counter (PC), a memory address register (MAR), and a few major inter- connections (L1 to L6) which are strategic observation points for this type of simulation. Each L in figures 6a and 6b is a network node such as a transistor, gate, register, memory, location, etc. Each node is labeled L because, from a simulation viewpoint, it may not con- tain just one piece of information (for one experiment) but is a linked list that can contain any number of in- formation items, each belonging to a different experi- ment. A real PC, MAR, or any network node contains,

Page 10: The Comparative and Concurrent Simulation of discrete-event experiments

116 Ulrich, Lentz, Arabian, Gustin, Agrawal, Montessoro

(a) A digital system con mhaing a memor'r PC 11 aMAR T~, I P C aMAR a logic networK, a PC ( p r o j z r ' a m counfer) - - - L , z

and an MAR (Memory 3kddtess Registei').

L20 LI~I L21 " ' " - - ~ '" IF f l I

- ' / T ~ I ~LSE ~ k I Experiment Y

L21 ~ - - - - L 1 2 ~ I " ~ IF t"2

_ i L20 L23 ] - - . , ,.=o I / L21 : : ~ l f3 / - - - ~ I I

- , I_ %

M e m o r y . _ . ~ i . ~ I Loglc Network

I1- 1,8973

L9334

function out out in in in L l l : f l -- L12: f2 L13 13 L23 L14: f4 L24 L15: 13 L23 L16: L17: L18: L19: I_,20: L21:

next next L20 L21 L12 L15 L21 L22 L13 L14

L20 I.,21 L23 L14 /.,23 . . . . L16 L20 L22 L23 L14

Ca) The detailed contents o f the memory,, i.e., of the instructions and data. Shown at the left is a flowchart of this program.

Fig. 6 Example of a software simulation.

of course, only one value at a time. The logic network may contain thousands to millions of nodes, as indicated by the large L numbers in figure 6a. For detailed logic or diagnostic fault simulation some or all of these nodes must be modeled in detail, but for other applications, for CSS, and even for some diagnostics purposes, the large detailed logic network may be completely or par- tially replaced by a much smaller functional (behav- ioral) equivalent.

In figure 6b it is assumed that two experiments (ex- periment X at L14, and experiment Y at L15) exist at the same time. The PC will therefore contain two values. The functions (fl, f2, etc.) are functions (in- structions) to be executed by the program, but could also be modified to trigger local observation actions in addition to performing their actual function.

Of course, CSS is not 100% applicable to the testing and debugging of every program. For example, if dif- ferent program control paths result in the very quick build-up of vast amount of distinct data per path, then CSS is not applicable. However, if this began to hap- pen, it would be automatically observed. CSS would thus very quickly report its inadequacy to handle cer- tain experiments or problems.

For CSS a few hundred or even thousands of ex- periments may be simulated per run, and the result will be relatively few groups of similar experiments. For each such group a representative experiment will be chosen, an inputs/outputs summary will be generated, and the user will be asked to examine this summary, checking if the inputs are correct and if the resultant outputs are correct. If the user determines that incor- rect outputs are generated for correct inputs, then he

may request to see the input/output summaries of similar neighbor experiments. This avoids generation of excessive volumes of output and minimizes the user effort.

10. Conclusions

The work described here has been extracted from a forthcoming book by E. Ulrich, V. Agrawal, and i Ara- bian, and from a PH.D. thesis on MDCCS by K. P. Lentz. Detailed information about MDCCS will appear in the book and the thesis. A prototype implementa- tion of MDCCS is under development, using the CREATOR fault simulator [18] as a basic engine.

To take advantage of similar experiments is not sim- ple or obvious, but the following facts may be helpful. First, simulation always involves an underlying network system that is the same or almost the same for the ex- periments to be simulated. Such a system constrains the experiments and coerces similar or identical ex- periments, even if the input parameters are meant to produce dissimilar experiments. This happens in dif- ferent ways, but more often during the early phases of simulating a new system, i.e., one that contains errors. Second, with CCS the user has considerable choice in creating similar experiments. Since CCS is optimal for this, a user can arrange to run families of related, similar experiments rather than unrelated experiments. This is advantageous in creating useful information and optimal in CPU time. It leads to a capacity to handle many experiments, to more experiments per run, is more informative than running isolated experiments,

Page 11: The Comparative and Concurrent Simulation of discrete-event experiments

The Comparative and Concurrent Simulation of Discrete-Event Experiments 117

and reduces the number of runs. The part-of-the-time similarity and part-of-the-time difference between ex- periments is important to know, but is virtually impos- sible to observe, except with CCS. It requires, for serial simulation, the saving of vast amounts of data per ex- periment, and comparing them after running all experi- ments. CCS avoids this, and especially avoids the work of determining which experiments are partly identical and where they are different.

Tactical CPU speed was one advantage obtained with CCS for the basic fault simulation application, but the additional advantages of the generalized form of CCS described here are more important. For some situations it is indeed feasible that experiments are very dissimilar, that the usual tactical speed advantage of CCS is ab- sent, and that the equivalent serial simulations may be faster. However, this does not invalidate CCS's strategic speed (aggregating numerous experiments into one run), its power as a comparative method (observing ex- periments with respect to each other), and the fact that implicit experiments are simulated at zero cost. These fundamental advantages over serial and parallel (in- cluding physically parallel) simulation methods prevail, regardless of the similarity factor.

CCS combines simulation generality and modeling simplicity. It permits the divergence and simulation of detailed items or models, regardless of what they are or do. These models are simulated without the need to distinguish reference from concurrent actions. There- fore, the models may be written without concern about the simulation environment under which they are ex- ecuted. Thus, CCS permits simplicity in writing simu- lation models and generality in the way they are used.

A limitation of CCS is that it is tied to discrete-event simulation. This is a limitation because not all types of simulation are time/order based, and it is unlikely today that CCS could be adapted for other kinds of simulation. On the other hand, discrete-event and CCS are complementary techniques, and CCS makes dis- crete event simulation a much more powerful and useful technique. Discrete-event simulation tools (such as SLAM, SIMULA and SIMSCRIPT) can be modified to include CCS and will then become useful to solve much more complex problems than in the past.

Acknowledgments

The authors would like to thank R. Tutos and S. Demba for valuable suggestions. References

1. M. A. Breuer, and A. D. Friedman, Diagnosis and reliable design of digital systems, New York: Computer Science Press, 1976.

2. A. Miczo, Digital logic testing and simulation, New York: Harper & Row, 1986.

3. N. D. Phillips, J. G. Tellier, "Efficient event manipulation--the key to large scale simulation," Proc. International Test Con- ference, Cherry Hill, NJ, pp. 266-273, October 1978.

4. E. Ulrich, "Excessive simulation of activity in digital networks; Communications of the ACM, vol. 12, pp. 102-110, February 1969.

5. E. Ulrich, "Event manipulation for discrete simulations requir- ing large number of events" Communications of the ACM, vol. 21, pp. 777-785, September 1978.

6. M. Abramovici, M. A. Breuer, and K. Kumar, "Concurrent fault simulation and functional level modeling," Proceedings, Design Automation Conference, pp. 128-135, June 1977.

7. D. B. Armstrong, ' ~ Deductive method for simulating faults in logic circuits?' IEEE Trans. Computers, vol. C-21(5), pp. 464-471, May 1972.

8. M. A. Breuer and A. C. Parker, "Digital system simulation: Cur- rent status and future trends." Proceedings Design Automation Conference, pp. 269-275, 1981.

9. D. Machlin, D. Gross, S. Kadkade, and E. Ulrich, "Switch-level concurrent fault simulation based on a general purpose list traver- sal mechanism," Proceedings, IEEE International Test Con- ference, pp. 574-581, 1988.

10. E. Ulrich, T. Baker, and L. Williams, "Fault-test analysis tech- niques based on logic simulation" Proc. Design Automation Con- ference, pp. 111-115, 1972.

11. E. Ulrich and T. Baker, "The concurrent simulation of nearly identical digital networks" Proc. Design Automation Conference. pp. 145-150, 1973.

12. E. Ulrich, D. Lacy, N. Phillips, J. Tellier, M. Kearney, T. Elkind, and R. Beaven, "High-speed concurrent simulation with vec- tors and scalars" Proc. Design Automation Conference, pp. 374-380, 1980.

13. S. Demba, E. Ulrich, K. Panetta, D. Giramma, "Experiences with concurrent fault simulation of diagnostic programs," ITC, 1988, and 1EEE Transactions on CAD., pp. 621-628, June 1990.

14. S. Gai, E Somenzi, E. Ulrich, '~dvances in concurrent multilevel simulation;' IEEE Transactions on CAD, vol. CAD-6 pp. 1006-1012, Nov. 1987.

15. S. Gal, P. L. Montessoro, E Somenzi, "The performance of the concurrent fault simulation algorithms in MOZART" Proceedings Design Automation Conf., pp. 692-697, 1988.

16. S. Gai, P. L. Montessoro, E Somenzi, "MOZART: A concur- rent multi-level simulator." 1EEE Transaction on CAD, vol. 7, pp. 1005-1016, Sept. 1988.

17. D. Machlin, ' ~ General Purpose Traversal Mechanism for Con- current Logic Simulation." MA Thesis, Worcester Polytechnic Institute, Worcester, MA, 1987.

18. P. L. Montessoro and S. Gai, "Creator: General and efficient multilevel concurrent fault simulation" Proceedings, Design Automation Conference, pp. 160-163, 1991.

19. E. Ulrich, "Concttrrent simulation at the switch, gate and register levels," Proc. International Test Conference, pp. 703-709, November 1985.

Page 12: The Comparative and Concurrent Simulation of discrete-event experiments

118 Ulrich, Lentz, Arabian, Gustin, Agrawal, Montessoro

20. E. Ulrich, K. E Lentz, S. Demba, and R. Razdan, "Concur- rent min-max simulation." Proceedings, 1991 European Design Automation Conference.

21. D. Giramma, Private communication. 22. R. Razdan, G. Bischoff, and E. Ulrich, "Exploitation of

periodicity in logic simulation of synchronous circuits" Pro- ceedings, Proe. Int. Conference on Computer Aided Design, pp. 62-65, November 1990.

23. T. Weber, and E Somenzi, "Periodic signal suppression in a con- current fault simulator," Proceedings, 1991 European Design Automation Conference.

24. K. Cheng and V. Agrawal, Unified methods for VLSI simula- tion and test generation, Boston:Kluwer Academic Publishers, 1989.

25. A. Lioy, E L. Montessoro, S. Gai, % complexity analysis of sequential ATPG" Proc. International Symposium on Circuits and Systems, Portland OR, pp. 1946-1949, May 1989.

26. W. Leontief, and E Duchin, The Future Impact of Automation on Workers. New York,:Oxford University Press, 1986.

27. G. E. E Box, W. G. Hunter, and J. Stuart Hunter, Statistics for Experimenters. New York:John Wiley and Sons, Inc., 1978.

28. G. Taguchi, and S. Konishi, Taguchi Methods, Orthogonal Ar- rays and Linear Graphs. American Supplier Institute, Inc. 1987.

29. R. E. Bryant, "Symbolic simulation - technique and applica- tions,' Proceedings Design Automation Conf., pp. 517-521, June 1990.

30. R. M. Glorioso, and E C. Colon Osorio, Engineering Intelligent Systems. Bedford, MA:Digital Science Press, 1980.

Ernst G. Ulrich received a BS in mathematics from UCLA. He has been a Consulting Engineer with DEC for 15 years. He was respon- sible for logic and fault simulation in the DECSIM simulator. He has produced a body of work in logic and fault simulation, authored 28 papers, and holds two patents. He has explored and evolved discrete-event simulation, and is the originator of the Time-wheel event scheduling algorithm, Zoom and Traverse-table techniques, Con- current Fault Simulation, Multi-List-Traversal, adaptation of Con- current Simulation for rain-max timing simulation and token-ring networks, Clock Suppression, and a Clustering algorithm for automatic placement. The Time-Wheel and Concurrent Fault Simula- tion have become industry standards, involving numerous implemen- tations. He served on program committees for the International Design Automation Conference, the International Conference on Computer Aided Design, on the editorial board of the Journal of Digital Systems, and is currently on the editorial board of the Journal of Electronic Testing. He has given invited talks and short courses at Universities in the US, Japan, France, and Italy. Five PhD and Master's disserta- tions based on his work have appeared. He is a member of the ACM. Mr. Ulrich is an editor of the Journal of Electronic Testing: Theory and Applications.

Karen Panetta Lentz received the B.S. in Computer Engineering from Boston University in 1985 and her MSEE from Northeastern University, Boston, MA, in 1988. She is currently an engineering doctoral candidate at Northeastern University, where her research includes multiple domain concurrent simulation and robotics.

She has published several papers, and holds two patents. She is a Principal engineer at Digital Equipment Corporation, Hudson, MA, developing general purpose discrete-event simulation methodologies and algorithms, she is a member of the IEEE and the ACM. Her interests include graphics, animation, and special effects.

Jack Arabian holds a BA in Engineering Sciences and Applied Physics from Harvard University, and an MS in Aeronautical and Astronautical Sciences from MIT, majoring in Electronics Instrumen- tation. He has worked for DEC for 13 years in the areas of Elec- tronics Test, CAD/CAM, PWB Engineering, Design for Manufac- turing (DFM). Mr. Arabian has written many papers for Test and Design Conferences in the United States and overseas, receiving awards from the IEEE and the British Society of Test Engineers. He is the author of the book entitled Computer Integrated Electronics Manufacturing and Testing (Marcel Dekker 1989). Mr. Arabian serves on the editorial board of the Journal of Electronic Testing: Theory and Applications.

Michael Gustin received his MSEE degree from Northeastern Univ. Boston MA, in 1985 and his BSME degree from Lowell Technological Inst., MA in 1976. He is a supervisor of a simulator development group at Digital Equipment Corp. He holds one patent. His primary work is involved with extending general purpose simulator capabilities into different modeling methodologies. Prior to joining Digital in 1988 he was with General Electric for 12 years where he held many engineering positions, focusing on aircraft cockpit instrumentation.

Vishwani Do Agrawal received the Ph.D. degree from the University of Illinois in 1971. Since 1978 he has been with AT&T Bell Labs, Mur- ray Hill, NJ, where he has served in various positions including super- vising the test and design verification group. His current research is on synthesis for testability, neural net applications, test quality and VLSI yield, and parallel algorithms. He has published over hundred papers and two books. He was the Editor-in-Chief of the IEEE Design & Test of Computers magazine from 1985 to 1987. He has served on numerous conference program committees, and is a co-founder of the annual International Workshop on VLSI Design. He has served on the board of governors of the IEEE Computer Society, and on the technical advisory board of the Gateway design Automation Corp. Dr. Agrawal is a Fellow of the IEEE, a Fellow of the IETE (India), and a member of the ACM. He has received five best paper awards, the IEEE Computer Society's Outstanding Contribution Award (1988), and the Meritorious Service Award (1989). Dr. Agrawal is the editor- in-chief of the Journal of Electronic Testing: Theory and Applications.

Pier Luca Montessoro received the Dr. Eng. degree in electronic engineering from the Politecnico di Torino, Italy, in 1986. He is presently with the Consiglio Nazionale delle Ricerche, (C.N.R.). the Italian National Council for Scientific Research. He is also a con- sultant for the Digital Equipment Corporation. He is the principal creator of the CREATOR Concurrent Fault Simulator.