Speculative Computation : Overcoming Communication Delays in Parallel Algorithms ? Vasudha Govindan Mark A. Franklin vasu@wuccrc.wustl.edu jbf@random.wustl.edu Computer & Communications Research Center Washington University Campus Box 1115 , One Brookings Drive St. Louis , Missouri 63130 Abstract Communication latencies and delays are a major source of performance degradation in parallel computing systems . It is important to \ mask '' these communication delays by overlapping them with useful computation in order to obtain good parallel performance . This paper proposes speculative computation as a technique to mask communication latencies . Speculative computation is discussed in the context of synchronous iterative algorithms . Processors speculate the contents of messages that are not yet received and perform computation based on the speculated values . When the messages are received , they are compared with the speculated values and , if the error is unacceptable , the resulting computation is corrected or recomputed . If the error is small , the speculated value is accepted and the processor has masked the communication delay . The technique is discussed in detail and is incorporated on to a N-body simulation example ; the techniques result in a performance improvement of up to 34 % . An empirical performance model is developed to estimate the performance of speculative computing . Model and measured values are compared and shown to be in good agreement . 1 Introduction Several compute intensive problems in science and engineering have found in parallel processing an attractive solution to their high computing needs -LSB- 6 -RSB- . The problem is appropriately partitioned and mapped on to the available processors and the processors cooperate to solve the problem . One of the major sources of performance degradation in parallel computing is the communication delay . The data and control dependency between different sections of the application often result in communication between the processors assigned to the various sections . If the associated delays are ? This research has been sponsored in part by funding from the NSF grant CCR-9021041 and ARPA contract DABT-93-C0057 . large , the processors are poorly utilized , resulting in poor parallel performance . This paper proposes speculative computation and associated communications \ masking '' as an approach to overcoming these delays . The techniques are implemented on a parallel N-body simulation example to illustrate the potential performance benefits of this approach . A recent trend in computing is to use networks of high performance workstations as a concurrent computing resource . The workstations are typically connected by standard interconnects like ethernet , FDDI or ATM networks and operate under programming environments such as PVM -LRB- Parallel Virtual Machine -RRB- -LSB- 9 -RSB- . The communication delays in such systems are significant and often subject to large variations due to non-deterministic network traffic . Overcoming communication delays in parallel algorithms has become increasingly important in such distributed computing systems . A number of algorithmic improvements have been proposed to overcome communication delays in parallel algorithms . Saltz et.al -LSB- 7 , 8 -RSB- suggest several techniques to develop robust algorithms for solving partial differential equations on hypercube machines . They propose partitioning strategies to reduce communication traffic , efficient convergence check mechanisms and concurrent execution of multiple time-steps . While their techniques are shown to be effective , they are limited to hypercube machines and to a small class of algorithms . Techniques such as asynchronous algorithms -LSB- 1 , 11 -RSB- and rollback synchronization -LSB- 1 -RSB- mask communication delays but are applicable only to a very small set of applications . Overcoming communication delays in message passing systems is analogous to the problem of overcoming memory access delays in shared memory systems . There has been considerable work on developing and analyzing techniques for overlapping remote memory access delays in medium to large scale shared memory systems -LSB- 5 -RSB- . Coherent caches , data prefetching and multithreading have been proposed and implemented in some systems . Speculative computing overcomes communication delays by effectively overlapping the communication time with useful computation . While waiting for a message , the processor speculates the contents of the message and uses the speculated values in its computation . Consider an example where two processors P1 and P2 cooperate to solve a problem . They exchange messages comprised of certain partial results of their computation . Suppose P1 needs some data from P2 and can not proceed with its computation until the data is received . P1 expects a message from P2 and blocks -LRB- or waits -RRB- till the message is received . If the communication delays are large , this dependency between P1 and P2 results in significant performance degradation . If instead , P1 speculates the value of the data it needs and proceeds with its computation using the speculated data , then communication and computation are overlapped . When the message from P2 arrives , the speculated and actual values are compared . If the error in speculation is large , the resulting computation is corrected or recomputed . If the error is \ small '' , the resulting computation is accepted , and P1 has effectively \ masked '' the communication delay . Speculative computation has been proposed -LSB- 2 -RSB- and implemented -LSB- 10 -RSB- to incorporate parallelism into inherently serial algorithms . Work is performed before it is known whether it is needed or not . If the work is needed , it has already been performed , thus speeding up the computation time . Some work may never be needed and thus is wasted . To gain from speculative computation it is critical to identify future work which is likely to be needed . Burton -LSB- 2 -RSB- proposes a simple functional language to incorporate speculative computation in inherently serial algorithms . Witte et.al -LSB- 10 -RSB- apply speculative computing to the simulated annealing algorithm . The resultant parallel implementation , based on a tree of speculative computations , yields a speedup of about log p on p processors . The concept of speculative computation to overcome communication delays can be applied to a host of parallel algorithms . However , in this paper , we focus on applying the technique to a class of synchronous iterative algorithms -LSB- 1 , 3 -RSB- . Section 2 describes the synchronous iterative algorithm model employed . Section 3 discusses the speculative computing technique and associated performance benefits . In section 4 , we develop an empirical performance model to estimate the performance of speculative computation . Section 5 describes the parallel N-body simulation example which is used to illustrate the speculative computing technique . Our example , implemented on a network of SUN/Sparc workstations , showed a significant performance improvement -LRB- up to 34 % on 16 processors -RRB- with speculative computation . The model and measured performance are then compared . 2 Synchronous Iterative Algorithms Synchronous iterative algorithms -LSB- 1 , 3 -RSB- include most of the compute intensive numerical methods used in science and engineering applications . Iterative techniques to solve linear and non-linear equations , solution of partial differential equations , numerical integration , particle simulation , etc. , are some examples . These algorithms require frequent communication between processors and their performance is highly sensitive to communication delays . Techniques that reduce or mask communication delay effects potentially yield significant performance improvement for this class of applications . Synchronous iterative algorithms proceed in synchronous steps or iterations . The work associated with each iteration is distributed over some or all of the available processors . The processors are synchronized either by means of a barrier operation or by message exchanges at the end of each iteration . The next iteration begins only after all the processors complete the current iteration . In this study , a general and widely applicable model for synchronous iterative algorithms -LSB- 1 -RSB- is used . The model is used for ease of illustration and does not limit the applicability of the principal ideas which apply broadly to a host of other algorithms . An application problem is defined as consisting of a set of n variables , X = fx1 ; x2 ; x3 : : : : xng that are evaluated each iteration according to some vector function F = ff1 -LRB- X -RRB- ; f2 -LRB- X -RRB- : : : fn -LRB- X -RRB- g of their values in previous iterations . Each variable may represent a single value or a complex data structure . This can be represented as follows : X -LRB- t + 1 -RRB- = F -LRB- X -LRB- t -RRB- ; X -LRB- t ? 1 -RRB- ; X -LRB- t ? 2 -RRB- : : :-RRB- -LRB- 1 -RRB- Each of the variables can be evaluated independently if the values of all the variables for previous iterations are known . xi -LRB- t + 1 -RRB- = fi -LRB- X -LRB- t -RRB- ; X -LRB- t ? 1 -RRB- ; : : :-RRB- -LRB- 2 -RRB- If there are p processors available , the set X is partitioned into p subsets and each subset is allocated to a processor . The p subsets may not have equal cardinality since , in general , the functions fi may be of unequal complexity and the processors may be of unequal power . Load balancing considerations will thus lead to unequal partitions . Let Xj be the set of variables allocated to processor j . The sets Xj are disjoint subsets of X -LRB- S j Xj = X and Xj \ Xk = ; ; j < > k -RRB- . Processor j is now responsible for evaluating all elements of Xj using equation 2 . Note that each variable xi can potentially be a function of all other variables . This implies that all computation associated with iteration t should be completed before iteration t + 1 can begin . Also , in a parallel implementation , each processor sends the newly evaluated values of all its variables to all the other processors and has to wait till it receives such messages containing the variable values from all the other processors before it can proceed to the next iteration . The parallel algorithm for a general synchronous iterative algorithm begin Read xi -LRB- 0 -RRB- 8i Partition and Distribute X Xj = set of variables allocated to processor j for t = to MAX Each processor j , Do : begin send Xj -LRB- t -RRB- to all processors receive Xk -LRB- t -RRB- 8k < > j compute : xi -LRB- t + 1 -RRB- = fi -LRB- X -LRB- t -RRB- ; X -LRB- t ? 1 -RRB- : : :-RRB- ; 8xi 2 Xj end end Figure 1 : Synchronous Iterative Algorithms is given in pseudocode form in Figure 1 . In this formulation , it is assumed that each variable is a function of every other variable . The rate at which the algorithm executes therefore depends on the computation speeds of all the processors , the partitioning , and the communication time to exchange messages between processors . Figure 2a shows the execution of a synchronous iterative algorithm on two processors where ideal load balancing has been achieved and the complexity of F is not a function of t . The figure shows the effect of a slow communication channel . The execution rate is slowed down by communication delays which are large and often unpredictable in distributed workstation based networks . 3 Speculative Computation 3.1 The Concept In this development , we apply speculative computation in the context of synchronous iterative algorithms . In synchronous iterative algorithms , each processor has to wait for messages from every other processor -LRB- in the general case -RRB- before it can proceed with its computation and therefore , a slow communication channel can introduce large communication delays degrading the performance . With speculative computation , in each iteration , each processor j sends a copy of its variables to all other processors . Next , it checks its message queue and incorporates any messages that have arrived . It then speculates the values of all variables that are not yet received based on some speculation function . For example , say that in iteration t , Xk -LRB- t -RRB- has not been received . The speculation function for Xk -LRB- t -RRB- might be a weighted sum of its past values , Xk -LRB- t ? 1 -RRB- ; Xk -LRB- t ? 2 -RRB- ; : : : , which have been stored on processor j from previous messages -LRB- i.e. , x?i -LRB- t -RRB- = w1xi -LRB- t ? 1 -RRB- + w2xi -LRB- t ? 2 -RRB- : : : ; 8xi 2 Xk , where w1 ; w2 ; : : : are the weighting factors -RRB- . Using the received values and the speculated values , it computes the next values of its variables -LRB- the set Xj -RRB- . It then waits for messages that have not yet been received . When a message is received , it compares the received values of the variables with the speculated values . If the error is beyond a certain predefined threshold , it calls a correction function to correct its computation , or in some cases , recomputes its variables . The synchronous iterative algorithm -LRB- Figure 1 -RRB- modified to incorporate speculative computation is presented in Figure 3 . 1 2 3 4 P2 P1 -LRB- b -RRB- speculation good 1 P2 P1 2 * 3 * 4 * 5 * 6 * spec.no good Tno.spec Tspec.good T -LRB- a -RRB- no speculation -LRB- c -RRB- speculation not good 1 2 3 4 P2 P1 2 * 3 * 4 * legendspeculate checkcompute communicate Figure 2 : Speculative Computation : An example Computation based on speculated values are marked with a ? Figure 2 shows speculative computation applied a two processor synchronous iterative algorithm example where a slow communication channel results in poor performance . The time taken to execute the first three iterations are shown for each case . For case -LRB- a -RRB- , the processors wait for messages each iteration resulting in poor utilization . For cases -LRB- b -RRB- and -LRB- c -RRB- , the processors use speculative computing to mask the communication delay . In -LRB- b -RRB- , every speculated value is good and acceptable . The execution time for this case -LRB- Tspec : good -RRB- is , therefore , much smaller than the time for the no speculation case -LRB- Tno : spec -RRB- . In -LRB- c -RRB- , the speculated values are each found unacceptable and the variables have to be recomputed . This incurs a small penalty and as a result , the execution time for -LRB- Tspec : nogood -RRB- is greater than the time for the no speculation case . When speculated values are acceptable , speculative computation overlaps communication delays but incurs the overhead of speculation , error checking and correction . In section 4 we develop a performance model that takes into account the computation/communication overlap , the speculation and checking overhead and the penalty for erroneous speculations . 3.2 Speculation Windows If the communication times are greater than the computation time per iteration , speculative computation for a single time value of Xj -LRB- i.e. , Xj -LRB- t + 1 -RRB- -RRB- can only partially mask the communication delay . The remaining idle time may be used to speculate and compute subsequent iterations -LRB- i.e. , Xj -LRB- t +2 -RRB- ; Xj -LRB- t +3 -RRB- : : :-RRB- . We define a \ forward window '' -LRB- FW -RRB- as the maximum number of iterations into the future that may be speculated . In the example in Figure 2 , the processors speculate one iteration into the future and the forward window , FW = 1 . Speculating for and computing more begin Read xi -LRB- 0 -RRB- ; 8i Partition and distribute X -LRB- Xj = set of variables allocated to processor j -RRB- for t = to MAX Each processor j , Do : begin send Xj -LRB- t -RRB- to all processors for each k < > j if -LRB- msg from k arrived -RRB- receive Xk -LRB- t -RRB- else speculate X?k -LRB- t -RRB- compute : xi -LRB- t + 1 -RRB- = fi -LRB- X -LRB- t -RRB- ; X -LRB- t ? 1 -RRB- : : :-RRB- ; 8xi 2 Xj for each k < > j if -LRB- msg from k not yet received -RRB- receive Xk -LRB- t -RRB- error = compare -LRB- Xk -LRB- t -RRB- ; X?k -LRB- t -RRB- -RRB- if -LRB- error > threshold -RRB- correct -LRB- Xj -LRB- t + 1 -RRB- -RRB- end end Figure 3 : Synchronous Iterative Algorithms : With Speculative Computing -LRB- Speculated values are shown with a ? superscript -RRB- TFW = 2 TFW = 1TFW = 0 legendspeculate checkcompute communicate P2 P1 P1 P1 P2 P2 -LRB- c -RRB- FW = 2 -LRB- b -RRB- FW = 1 -LRB- a -RRB- FW = 0 -LRB- no speculation -RRB- 1 2 3 4 1 2 * 3 * 4 * 5 * 1 2 * 3 * 4 * 5 * 6 * Figure 4 : Speculative Computation with FW = 2 than one iteration is particularly beneficial in situations where the computation and communication times are likely to vary with each iteration . For example , in a workstation network environment , messages may occasionally experience excessive delays due to network traffic or the background load on timeshared processors may slow down the computation phase . These delays , though transient , bring about significant performance degradation . In situations like this , a larger FW helps in overcoming the transient delays . However , speculating values too far into the future introduces inaccuracies . Speculated values farther into the future are more likely to exceed the error bounds and may have to be discarded . The FW is chosen based on an estimate of the communication and computation times and the accuracy of the speculation function . Figure 4 illustrates the effect of FW when there is an excessive but transient delay along one communication path . The example is similar to the example Figure 2 , but the first message from P1 to P2 is delayed in transit -LRB- shown by dashed line -RRB- . Figure 4a shows the execution with no speculation -LRB- FW = 0 -RRB- . The communication delay is greater than the time to speculate for and compute one iteration . Due to the extra long P1?P2 delay path , the FW = 1 case -LRB- Figure 4b -RRB- can only partially mask the communication delay . In the FW = 2 case -LRB- Figure 4c -RRB- , the idle time is used to speculate and compute two iterations into the future . If the speculated values are found accurate , this yields additional performance improvement . Defining an appropriate speculation function for an application is important in realizing the performance benefits of speculative computation . Speculation is most useful in applications where the variables generally follow a relatively slow changing trend that can be detected . In some applications , each variable is associated with some information revealing its trend . For example , in particle simulations , each variable -LRB- a particle -RRB- has an associated mass , position and velocity . The velocity indicates how the position of the particle is likely to change in the near future . The trend can also Table 1 : Model Definitions N Total number of variables Ni No . variables allocated to processor i Mi No . operations per second on processor i -LRB- a measure of processor capacity -RRB- fcomp No . operations to compute a variable fspec No . operations to speculate a variable fcheck No . operations to check a variable tcomm -LRB- p -RRB- Communication time on a p processor system -LRB- assumed constant over all processors -RRB- ttotal -LRB- p -RRB- Total time per iteration on p processors -LRB- no speculation -RRB- ^ ttotal -LRB- p -RRB- Total time per iteration on p processors -LRB- with speculation , FW = 1 -RRB- k % recomputations due to speculation error be detected by examining the history of the variable . In this context , we define a \ backward window '' -LRB- BW -RRB- , as the maximum number of past values of the variables used in the speculation function . The speculated value of a variable is an extrapolation of its present value and previous BW values . A larger BW generally implies a more accurate speculated value . It also implies a more complex speculation function and requires more memory to store the past values . The selection of an optimal value for the BW reflects the tradeoff between accuracy and complexity of speculation . FW and BW are tuned for a given algorithm and computing platform to maximize performance . 4 Performance Model In this section , an empirical performance model is developed which quantifies the benefits of speculative computation . The model estimates the execution time of a synchronous iterative algorithm with and without speculation and examines the effect of speculation accuracy on the performance . The model is used to predict the execution times for the N-body simulation example of section 5 and the predictions are compared with measured values . Consider a synchronous iterative algorithm that involves the evaluation of N variables every iteration . The computing platform consists of p processors that may be of unequal computing abilities . The N variables are distributed over the p processors such that each processor is allocated workload -LRB- number of variables -RRB- proportional to its computing abilities . The computation on each processor is therefore balanced and takes equal amount of time . It is assumed that the communication times are equal over all processors and that computation and communication times remain constant over all iterations . Table 1 defines the model parameters . Ni is the number of application variables allocated to processor i. fcomp , fspec and fcheck , respectively , are the number of operations required to compute , speculate and check for each variable . tcomm -LRB- p -RRB- is the communication time between processors in a p processor implementation . ^ ttotal -LRB- p -RRB- and ttotal -LRB- p -RRB- are the total time per iteration with and without speculation , respectively , for a p processor execution . Let P = fP1 ; P2 ; : : : g denote the set of available processors , ordered with respect to their computing abilities . If the computing abilities of processor P i , expressed as the number of operations performed per unit time , is given by Mi , the set P is ordered such that M1 > = M2 > = M3 > = : : : . A p?processor execution of the application implies that the application is run on the fastest p processors available , -LRB- i.e. , on the first p processors fP1 ; P2 ; : : : Ppg of the set P -RRB- . When the algorithm is run on a single processor -LRB- P 1 -RRB- , the total time per iteration is equal to the time to evaluate the N variables and is given by , ttotal -LRB- p -RRB- = N ? -LRB- fcomp = M1 -RRB- -LRB- 3 -RRB- For a p processor implementation , the N variables are distributed such that the number of variables allocated to each processor , Ni , is proportional to its computing ability , Mi . With ideal load balancing , -LRB- i.e. , equal computation time per iteration on each processor -RRB- , the following two conditions are satisfied : Ni Mi = Nj Mj ; 8i ; j -LRB- 4 -RRB- pX i = 1 Ni = N -LRB- 5 -RRB- The total time per iteration -LRB- no speculation case -RRB- is the same on all p processors and is given by the sum of computation and communication times : ttotal -LRB- p -RRB- = Ni ? -LRB- fcomp = Mi -RRB- + tcomm -LRB- p -RRB- ; p > 1 -LRB- 6 -RRB- With speculative computation , the computation and communication times are overlapped and the time per iteration has the general form : total time = max -LSB- -LRB- speculation time + computation time -RRB- , communication time -RSB- + error checking time + % error ? recomputation time : -LRB- 7 -RRB- The maximum term reflects the potential overlap between computation and communication . The final two terms deal with the time to check whether the speculated variable values were correctly predicted , and for the instances where error limits are exceeded , to perform a recomputation . Equation 7 can be rewritten by first assuming that processor i speculates and check all variables not allocated to it -LRB- i.e. , N ? Ni variables -RRB- . The processors are allocated variables such that the computation phase -LRB- the most time consuming phase -RRB- is equal on all processors . Speculation and checking phases are , however , not equal and this leads to a small load imbalance . The iteration time on processor i is given by : ^ t -LRB- i -RRB- total -LRB- p -RRB- = max -LSB- -LRB- N ? Ni -RRB- ? -LRB- fspec = Mi -RRB- + Ni ? -LRB- fcomp = Mi -RRB- ; tcomm -LRB- p -RRB- -RSB- + -LRB- N ? Ni -RRB- ? -LRB- fcheck = Mi -RRB- + k ? Ni ? -LRB- fcomp = Mi -RRB- ; -LRB- 8 -RRB- where , k is the percentage of variables that need to be recomputed due to speculation errors . The total time per iteration on p processors with speculative computation , ^ ttotal -LRB- p -RRB- , is the maximum iteration time over all processors : ^ ttotal -LRB- p -RRB- = p max i = 1 ^ t -LRB- i -RRB- total -LRB- p -RRB- -LRB- 9 -RRB- 12345678910111213141516 p : number of processors -- > 1.01.52.02.53.03.54.04.55.05.56.0 Sppedup -- > no speculationwith speculationMaximum speedup Figure 5 : Speculative Computation : Performance Model Speedups are relative to the fastest single processor case -LRB- P 1 -RRB- . Maximum speedup reflects computing power of the p-processor set relative to P 1 . The speedup obtained through parallel execution is a good measure of the parallel algorithm and system performance . In the model and experimental results presented in this paper , speedup for a p-processor implementation refers to the ratio of the execution time on processor P1 to the execution time on the first p processors in the set P. speedup -LRB- p -RRB- = Execution time on P1 Execution time on the set fP1 ; P2 : : : Ppg : Since the processors do not have equal computational power , and the parallel execution times are compared against the fastest processor , it is not possible to obtain linear speedup through parallel execution . The maximum speedup that can be obtained on a p-processor execution , speedupmax -LRB- p -RRB- is given by the ratio of the computing abilities of the p-processor set to that of the fastest processor , P 1 : speedupmax -LRB- p -RRB- = Ppi = 1 Mi M1 : The performance models developed above are now applied to a synchronous iterative algorithm example with N = 1000 . Consider a computing platform consisting of up to 16 processors . The processor computing abilities vary linearly with the fastest processor , P 1 , being 10 times faster than the slowest processor , P16 -LRB- i.e. , M1 = 10 ? M16 -RRB- . In a p processor implementation , the N variables are distributed over the first p processors of set P in accordance with the conditions in equations 4 and 5 . The speculation and checking functions are assumed to be small compared to computation -LRB- fcomp = 100 ? fspec = 50 ? fcheck -RRB- . It is also assumed that the communication time per iteration , tcomm increases linearly with the number of processors used in the implementation . tcomm is set equal to the computation time per iteration in the 16-processor case . The parameters chosen are reasonable and are close to the measured values for the N-body simulation example presented in section 5 . Figure 5 shows the speedup versus number of processors predicted by the model with and without speculation for the case where the percentage of recomputations , k = 2 % . Speculative computation 5101520253035404550 Percentage Recomputations : k -LRB- % -RRB- -- > 1.01.52.02.53.03.54.0 Speedup -- > no speculationwith speculation -LRB- 8 processor case -RRB- Figure 6 : Speculative Computation : Effect of speculation error has very little impact for small processor systems -LRB- 2 to 5 processors -RRB- . This is because the communication delays are relatively small and do not degrade performance significantly . For larger systems , speculative computation yields significant performance benefits , up to 25 % on 16 processors . Note that in the \ no speculation '' case , performance begins to decrease after about 10 processors . This is because the communication costs increases with the number of processors and results in lower performance . Figure 6 shows the effect of the speculation error on the performance for an 8-processor system . The figure shows the speedup on 8 processors versus the percentage of recomputations , k. Speculation yields performance gain over the no speculation case for errors less than 10 % . A large error percentage increases the overhead of recomputing the variables and results in poorer performance . Thus , unless variables can be predicted reasonably well , there is no gain with this method . In many practical applications , however , predicting within a 10 % error margin is not difficult . The N-body application discussed next illustrates this . 5 Case Study : Parallel N-body simulation To illustrate the ideas and performance benefits of speculative computation , the technique was implemented on a simple O -LRB- N2 -RRB- N-body simulation example1 . The parallel algorithm was written under the PVM programming environment using the message passing paradigm . The algorithm runs on SUN/Sparc workstation network using up to 16 workstations . The N-body problem involves a system of N particles where each particle exerts a force on every other particle . The evolution of such a system can be solved only by numerical simulation methods -LRB- for N > = 3 -RRB- . The simulation proceeds in timesteps , each timestep computing the force between every pair of particles , the resultant force on each particle and updating its position and velocity based on the resultant force . The force between any two particles is given by Newton 's universal law of gravitation . The resultant force on a particle is the vector sum of all its pairwise forces . The 1A more efficient O -LRB- N log N -RRB- is possible and has been implemented in the past -LSB- 4 -RSB- . Our objective here , however , is to illustrate the effectiveness of speculative computation , and the simpler O -LRB- N2 -RRB- implementation is employed . begin Distribute particles to processors for t = 1 to MAX On each processor , j , Do : begin send Xj to all processors num recvd = while num recvd < -LRB- p ? 1 -RRB- begin receive a message k = sender processor id compute force due to Xk num recvd = num recvd + 1 end update velocity , position , 8xi 2 Xj end end Figure 7 : The N-body simulation -LRB- no speculation case -RRB- change in position and velocity of a particle due to the resultant force is given by Newton 's laws of motion . Since all pairwise forces are computed , simulation of N particles results in a computational complexity of O -LRB- N2 -RRB- . The experiment utilized a network of up to 16 SUN/Sparc workstations connected by a standard ethernet . The processors differ widely in their computing abilities . The fastest workstation -LRB- SparcStation 10/1 -RRB- is rated 120 MIPS and the slowest -LRB- SUN 4/10 -RRB- is 10 MIPS . To determine a processor 's capacity , a small sequence of several operations was executed on each processor and the runtime on the processor was measured . The runtime divided by the number of operations is a measure of the processor 's capacity , Mi . The N particles simulated are distributed over the p processors such that each processor is allocated workload -LRB- i.e. , number of particles -RRB- proportional to its computing ability . Each processor is responsible for computing the resultant force and updating the velocity and positions of the particles allocated to it . At the start of each iteration -LRB- or timestep -RRB- , each processor sends the current position and velocity of all its particles to all other processors . It then waits to receive such messages from other processors and , when the particle information is received , computes the forces on its particles due to all the particles in the system . Once the resultant forces are computed , it updates the velocity and position of its particles based on the forces and proceeds to the next iteration . Figure 7 describes the algorithm in pseudocode form using the same notation as in section 2 for synchronous iterative algorithms . p is the number of processors and xi refers to a particle -LRB- i.e. , its mass , position , velocity and other attributes -RRB- , Xj refers to the set of particles allocated to processor j . The algorithm requires each processor to wait for messages and then compute the resultant forces . A considerable amount of time -LRB- e.g. , 40 % for a 1000 particle simulation on 16 processors -RRB- is spent in communication and most of this time is spent waiting for messages . Speculative computation was 12345678910111213141516 p : number of processors -- > 1.01.52.02.53.03.54.04.55.05.56.0 speedup -- > FW = 0FW = 1FW = 2maximum speedup Figure 8 : N-body simulations with speculative computation Speedups are relative to the fastest single processor case -LRB- P 1 -RRB- . Maximum speedup reflects computing power of the p-processor set relative to P 1 . incorporated into the algorithm of figure 7 . While a processor is waiting for a message containing particle information from another processor , it speculates the remote particle positions and computes forces based on the speculated values . When the message is received , the speculated and real values are compared ; if the error is unacceptable , the resultant force is recomputed . The position of a remote particle is speculated based on its previous position and velocity , assuming that the velocity remains constant for one timestep . This introduces a small error since the resultant forces on the particle may have altered its velocity . If the position of the remote particle a is given by the vector ~ ra and the velocity by ~ va , the speculated position at iteration t is given by ~ r ? a -LRB- t -RRB- = ~ ra -LRB- t ? 1 -RRB- + ~ va -LRB- t ? 1 -RRB- ? ? t ; -LRB- 10 -RRB- where , ? t is the timestep size . The force between a local particle b and the particle a at iteration t is computed using the speculated position of a , ~ r ? a -LRB- t -RRB- . When the message containing the actual position of a is received , the speculation error and the effect of this error on the force computations are calculated . The speculation error for particle a is given by the difference between the speculated and the actual values . The effect of this error on the force exerted on particle b is -LRB- approximately -RRB- proportional to the ratio of this error and the distance between particles a and b. errora ; b = k ~ r ? a -LRB- t -RRB- ? ~ ra -LRB- t -RRB- k k ~ ra -LRB- t -RRB- ? ~ rb -LRB- t -RRB- k : -LRB- 11 -RRB- The computation using the speculated value is considered acceptable if this ratio is less than a predefined threshold , ? . Figure 8 shows the speedup -LRB- based on measured execution times -RRB- versus the number of processors for the N-body simulation example -LRB- of 1000 particles -RRB- for various -LRB- forward -RRB- speculation windows with the error threshold , ? = :01 . For small number of processors -LRB- 2 to 4 processors -RRB- , speculative computation has very little performance impact . This is because the communication delays are small and do not affect performance to a great extent . As the number of processors increase , the effect of Table 2 : Measured times for a 16-processor , 1000-particle simulation FW computation communication speculation check total time -LRB- sec -RRB- time -LRB- sec -RRB- time -LRB- sec -RRB- time -LRB- sec -RRB- time -LRB- sec -RRB- 5.83 4.73 10.56 1 5.85 1.43 0.2 1.02 8.52 2 5.82 0.22 0.3 1.5 7.79 Table 3 : Effect of error bounds on recomputations and computation error ? Incorrect Max . error speculations in force 0.1 < 1 % 20 % 0.05 < 1 % 10 % 0.01 2 % 2 % 0.005 5 % 1 % 0.001 20 % 0.2 % communication delays are more significant and speculative computation makes a sizable performance impact . For 16-processors , 34 % performance gain over the no speculation case is observed . The speedup is within 20 % of the maximum speedup on 16 processors . A window size of corresponds to the no speculation case . The performance of an application with speculative computation is influenced by several factors . Among them are the complexity of the speculation , error checking and correction functions , accuracy of the speculation function and the error bounds defined by the user . In the current implementation of N-body simulation , computing the force between a pair of particles involves about 70 floating point operations , speculating the position of a particle takes 12 floating point operations , error checking involves 24 operations . Table 2 shows the average time spent per iteration in the various phases of the execution for a eight processor , 1000 particle simulation . The force computation , communication , speculation , error checking and correction times are shown for speculation windows of 0 , 1 and 2 . In the above example , the speculation and error checking time is small compared to the computation times and the communication delay . Since the overheads for speculative computing are small , significant performance improvement is observed . The accuracy of the speculation function and the user defined error bounds also affect the performance of speculative computation . Force computations using the speculated value are accepted if the effect of the speculation error is less than a certain error threshold , ? . Table 3 shows the effect of ? on the percentage of recomputations . As expected , lower bounds on ? directly result in a lower error in the particle force calculations and in an increased number of erroneous speculations . The table also shows the maximum error in the force computations for a given value of ? . From the table , a ? of 0.01 seems reasonable . In our implementation , the speculation function makes use of the velocity information -LRB- first derivative -RRB- of each particle to speculate the next position of the particle . Using higher order derivatives may increase the accuracy of speculation but make the speculation function more complex . This tradeoff has not yet been studied in our current implementation . The performance model developed in section 4 was parameterized to represent the N-body sim - 12345678910111213141516 p : number of processors -- > 1.01.52.02.53.03.54.04.55.05.56.0 Sppedup -- > FW = 0 ; no speculationFW = 1FW = 0 ; no speculation FW = 1 Figure 9 : Comparing model and measured performance Solid lines indicate measured values . Dashed lines indicate model predictions ulation example . In Figure 9 , we compare the model predictions with the measured values . The model predictions are within 10 % of the measured values for 8 or fewer processors and within 25 % for 8 to 16 processors . The difference in model and measured values are mainly due to some of the simplifying assumptions in the model . The communication time was assumed to remain constant over all iterations and on all processors . However , network traffic and processor loads cause significant variations in the communication times . In large processor systems -LRB- > 8 processors -RRB- , network contention -LRB- not accounted for in the model -RRB- causes additional communication delay and results in significant performance degradation . Similarly , background processor loads cause the computation times on processors to vary slightly with time . 6 Conclusions Speculative computation has been proposed as a technique to mask communication latencies and delays by overlapping them with useful computation . The technique potentially can yield significant performance improvements particularly in distributed systems such as workstation networks where communication delays are large and subject to considerable variation . The paper presented speculative computation in the context of synchronous iterative algorithms . The performance benefits of speculative computation are illustrated using an N-body simulation application . Up to 34 % improvement in performance over the no speculation case was measured . The speedups obtained using the technique were within 25 % of the maximum attainable speedup for the set of processors used . The experiment was run on a network of SUN/Sparc workstations operating under the PVM environment . This shows that speculative computing is an effective technique to overcome communication delays . The technique is likely to yield similar performance benefits for other applications . An empirical performance model was developed to estimate the potential the performance benefits of speculative computing . The model also illustrates the effect of speculation error on performance . Comparison of the model and measured performance shows less than 10 % error for small systems -LRB- < 8 processors -RRB- and about 25 % error for larger systems . Future work on speculative computation includes developing a more sophisticated performance model that accounts for variations in computation and communication times of processors and different forward and backward window sizes for speculation . The model can be used to estimate performance of the technique for a given application and computing system and in making design decisions with respect to the various tradeoffs involved in its implementation . With the recent trend in parallel computing favoring cost-effective networked computing systems , overcoming communication delays in parallel algorithms is crucial in obtaining good parallel performance . References -LSB- 1 -RSB- Dimitri P. Bertsekas and John N. Tsitsiklis . Parallel and Distributed Computation : Numerical Methods . Prentics Hall , Englewood Cliffs , New Jersey 07632 , 1989 . -LSB- 2 -RSB- F.W. Burton . Speculative computation , parallelism , and functional programming . IEEE Trans . Comput. , C -LRB- 34 -RRB- :1190 -LCB- 1193 , Dec 1985 . -LSB- 3 -RSB- M. Dubios and F.A. Briggs . Performance of synchronized iterative processes in multiprocessor systems . IEEE Trans . Software Eng. , SE-8 -LRB- 4 -RRB- , July 1982 . -LSB- 4 -RSB- Mark Franklin and Vasudha Govindan . The N-body Problem : Distributed System Load Balancing and Performance Evaluation . In Proceedings of the 6th International Conference on Parallel and Distributed Computing Systems . ISCA , October 1993 . Louisville , Kentucky , USA . -LSB- 5 -RSB- Anoop Gupta , John Hennessey , Kourosh Gharachorloo , Todd Mowry , and Wolf-Dietrich Weber . Comparitive evaluation of latency reducing and tolerating techniques . In Proceedings of International Symposium on Computer Architecture , pages 254 -LCB- 263 , 1991 . -LSB- 6 -RSB- Gary M. Johnson . Exploiting parallelism in computational science . Future Generation computer Systems , 5:319 -LCB- 337 , 1989 . -LSB- 7 -RSB- Joel Saltz and Vijay Naik . Towards developing robust algorithms for solving partial differential equations on mimd machines . Parallel Computing , 6:19 -LCB- 44 , 1988 . -LSB- 8 -RSB- Joel Saltz , Vijay Naik , and David Nicol . Reduction of the effects of communication delays in scientific algorithms on message passing mimd architectures . SIAM J. SCI . STAT . COMPUT. , 8 -LRB- 1 -RRB- , Jan 1987 . -LSB- 9 -RSB- Vaidy S. Sunderam . PVM : A Framework for Parallel Distributed Computing . Concurrency : Practice and Experience , 2 , december 1990 . -LSB- 10 -RSB- Ellen Witte , Roger Chamberlian , and Mark Franklin . Parallel simulated annealing using speculative computation . IEEE Transactions on Parallel and Distributed Systems , 2 -LRB- 4 -RRB- :483 -LCB- 494 , october 1991 . -LSB- 11 -RSB- David E. Womble . The performance of asynchronous algorithms on hypercubes . Technical Report SAND88-2714 , Sandia National Laboratories , Albuquerque , New Mexico , Dec 1988 .

B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I I B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I O O O O B I I O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B I I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

performance model
speculative computation
synchronous iterative algorithms

communication latency masking
n-body simulation


Academy of Sciences of the Czech Republic institute of information theory and automation Pod vod?arenskou v < = e < = z ?? 4 , 182 08 Prague 8 , Czech Republic Titles and Abstracts of the Technical Reports of the Institute of Information Theory and Automation January 1 , 1995 Telex : 122018 atom c Fax : -LRB- 42 -RRB- -LRB- 2 -RRB- 6641 4903 e-mail utia@utia.cas.cz Academy of Sciences of the Czech Republic institute of information theory and automation Pod vod?arenskou v < = e < = z ?? 4 , 182 08 Prague 8 , Czech Republic Technical Report Number 1863 February 1996 Feedback Control of Affine Nonlinear Singular Control Systems Liu Xiaoping and Sergej < = Celikovsk?y Institute of Information and Control Theory Academy of Sciences of the Czech Republic Pod vod?arenskou v < = e < = z ?? 4 128 08 Praha 8 Abstract This paper discusses feedback control problems like regularization , noninteraction and linearization , for affine nonlinear singular systems . First , based on the constrained dynamic algorithm in affine nonlinear systems , an algorithm is introduced . By using such an algorithm , sufficient and necessary conditions are derived for the solvability fof regularization problem . Then , another algorithm is proposed , based on which a sequence of integers can be defined for the system . It is shown that under some mild conditions , the dynamic part of singular systems can be linearized by using a regular feedback . Finaly , an example is provided to illustrate the main results . Academy of Sciences of the Czech Republic institute of information theory and automation Pod vod?arenskou v < = e < = z ?? 4 , 182 08 Prague 8 , Czech Republic Technical Report Number 1872 June 1996 A Note on Damped Algebraic Riccati Equations J.J. Henchy C. Hez V. Mehrmannz y Institute of Information and Control Theory Academy of Sciences of the Czech Republic Pod vod?arenskou v < = e < = z ?? 4 128 08 Praha 8 e -LCB- mail : J.Hench@reading.ac.uk z Technische Universit?at Chemnitz-Zwickau Fakult?at f?ur Mathematik D-09107 Chemnitz Germany e -LCB- mail : he@mathematik.tu-chemnitz.de mehrmann@mathematik.tu-chemnitz.de Abstract In a recent paper , an algorithm which produces dampening controllers based on a periodic formulation of Hamiltonian systems was proposed . Central to this algorithm is a formulation of symmetric and skew-symmetric damped algebraic Riccati equations . It was shown that each of the two solutions leads to a dampening feedback , i.e. , a stable closed -LCB- loop system for which the real parts of the eigenvalues are larger in modulus than the imaginary parts . In this paper , we extend these results to include a broader class of Hermitian and skew-Hermitian solutions and show that every convex combination of these solutions produces a dampening feedback . This property can be used to vary the feedback with two parameters and thus obtain more flexibility in the controller design process . Keywords : dampening feedback , damped system dynamics , periodic Schur decomposition , periodic Riccati equation , Hamiltonian systems , linear quadratic control

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

linearization
regularization
singular systems

noninteracting control
nonlinear control systems