A PPM-like, tag-based branch predictor
|
|
|
- Junior Pope
- 10 years ago
- Views:
Transcription
1 Journal of Instruction-Level Parallelism 7 (25) 1-1 Submitted 1/5; published 4/5 A PPM-like, tag-based branch predictor Pierre Michaud IRISA/INRIA Campus de Beaulieu, Rennes 35, France [email protected] Abstract This paper describes cbp1.5, the tag-based, global-history predictor derived from PPM that was rank five at the first Championship Branch Prediction competition. This predictor is a particular instance of a family of predictors which we call GPPM. We introduce GPPMideal, an ideal GPPM predictor. It is possible to derive cbp1.5 from GPPM-ideal by introducing a series of degradations corresponding to real-life constraints. We characterize cbp1.5 by quantifying the impact of each degradation on the distributed CBP traces. 1. Introduction This paper describes the predictor whose final ranking was five at the first Championship Branch Prediction competition. In the remainder of this paper, we refer to this predictor as cbp1.5. Predictor cbp1.5 is a particular instance of a family of predictors which we call GPPM, for global-history PPM-like predictors. GPPM predictors feature two tables, a bimodal table and a global table. The bimodal table is indexed with the branch PC, and each bimodal entry contains a prediction associated with the branch. The global table consists of several banks. Each bank is indexed with a different global-history length. Each global entry contains a tag for identifying the global-history value owning the entry, and a prediction associated with this global history value. The prediction is given by the longest matching global-history value, or by the bimodal table if there is a tag miss in all the global banks. Predictor cbp1.5 can be viewed as a degraded version of an ideal GPPM predictor which we call GPPM-ideal. One can go from GPPM-ideal to cbp1.5 by introducing successive degradations corresponding to real-life constraints. We call degradation a modification that increases the number of mispredictions. By quantifying each degradation, one can get insight on the behavior of the application and on potential ways to improve the predictor. The paper is organized as follows. Section 2 describes predictor cbp1.5. Section 3 describes GPPM-ideal. Section 4 studies a degradation path from GPPM-ideal to cbp Description of predictor cbp Overview Predictor cbp1.5 is a global-history based predictor derived from PPM. PPM was originally introduced for text compression [1], and it was used in [2] for branch prediction. Figure 1 shows a synopsis of cbp1.5, which features 5 banks. It can be viewed as a 4 th order approximation to PPM [3], while YAGS [4], which is a GPPM predictor too, can be viewed as a 1 st order approximation. The leftmost bank on Figure 1 is a bimodal predictor [5]. We refer to this bank as bank. It has 4k entries, and is indexed with the 12 least significant
2 Michaud pc h[:9] pc h[:19] pc h[:39] pc h[:79] pc bit ctr m 3 bit ctr 8 bit u tag 3 bit ctr 8 bit u tag 3 bit ctr 8 bit u tag 3 bit ctr 8 bit u tag =? =? =? 8 8 =? prediction Figure 1: Predictor cbp1.5 features 5 banks. The bimodal bank on the left has 4k entries, with 4 bits per entry. Each of the 4 other banks has 1k entries, with 12 bits per entry. The rightmost bank is the one using the most global history bits (8 bits). bits of the branch PC. Each entry of bank contains a 3-bit up-down saturating counter, and an m bit (m stands for meta-predictor) whose function is described in Section 2.3. Bank uses a total of 4k (3 + 1) = 16 Kbits of storage. The 4 other banks are indexed both with the branch PC and some global history bits : banks 1,2,3 and 4 are indexed respectively with the 1,2,4 and 8 most recent bits in the 8-bit global history, as indicated on Figure 1. When the number of global history bits exceeds the number of index bits, the global history is folded by a bit-wise XOR of groups of consecutive history bits, then it is XORed with the branch PC as in a gshare predictor [5]. For example, bank 3 is indexed with 4 history bits, and the index may be implemented as pc[ : 9] h[ : 9] h[1 : 19] h[2 : 29] h[3 : 39] where denotes the bit-wise XOR. Section 2.4 describes precisely the index functions that are used in cbp1.5. Each of the banks 1 to 4 has 1k entries. Each entry contains an 8-bit tag, a 3-bit up-down saturating counter, and a u bit (u stands for useful entry, its function is described in Section 2.3), for a total of 12 bits per entry. So each of the banks 1 to 4 uses 1k ( ) = 12 Kbits. The total storage used by the predictor is 16k k = 64 Kbits. 2.2 Obtaining a prediction At prediction time, the 5 banks are accessed simultaneously. While accessing the banks, an 8-bit tag is computed for each bank 1 to 4. The function used to compute the 8-bit tag is different from the one used to index the bank, but it takes as input the same PC and global history bits. 2
3 A PPM-like, tag-based branch predictor Once the access is done, we obtain four 8-bit tags from banks 1 to 4, and 5 prediction bits from banks to 4 (the prediction bit is the most significant bit of the 3-bit counter). We obtain a total of = 37 bits. These 37 bits are then reduced to a /1 final prediction. The final prediction is the most significant bit of the 3-bit counter associated with the longest matching history. That is, if the computed tag on bank 4 matches the stored tag, we take the prediction from bank 4 as the final prediction. Otherwise, if the computed tag on bank 3 matches the stored tag, we take the prediction from bank 3. And so on. Eventually, if there is a tag mismatch on each bank 4 to 1, the final prediction is given by bank. 2.3 Predictor update At update time (for instance at instruction retirement), we know the prediction, from which bank X [, 4] it was obtained, and whether the prediction was correct or not. Update 3-bit counter. We update the 3-bit counter on bank X, the one that provided the final prediction, and only that counter. This is the classical method [6] : the counter is incremented if the branch is taken, decremented otherwise, and it saturates at values 7 and. In general, people prefer to use 2-bit counters instead of 3-bit counters. However, in cbp1.5, 3-bit counters generate less mispredictions. Allocate new entries. If X 3, and if the prediction was wrong, we allocate one or several entries in banks n > X (there is no need to allocate new entries if the prediction was correct). Actually, there was a tag miss on each bank n > X at prediction time. The allocation consists of stealing the corresponding entries by writing the computed tag for the current branch. This is done as follows. We read the 4 X u bits from banks X + 1 to 4. If all u bits are set, we chose a random Y [X + 1, 4] and steal the entry only on bank Y. Otherwise, if at least one among the 4 X u bits is reset, we steal only the entries which have their u bit reset. As said previously, a stolen entry is reinitialized with the computed tag of the current branch. Moreover, the associated u bit is reset. Finally, the associated 3-bit counter is reinitialized either with value 3 (weakly not-taken) or 4 (weakly taken). This is done as follows. We read the m bit from bank. If m is set, we reinitialize the 3-bit counter according to the branch outcome, i.e., value 4 if the branch is taken, value 3 if the branch is not taken. Otherwise, if m is reset, we reinitialize the 3-bit counter according to the bimodal prediction from bank, i.e., value 3 if the bimodal prediction is not-taken, value 4 if the bimodal prediction is taken. Updating bits u and m. If the final prediction was different from the bimodal prediction (which implies X > ), we update the u bit in bank X and the m bit in bank as follows. If the final prediction was correct, bits m and u are both set, otherwise they are both reset. The rationale is as follows. If the final prediction differs from the bimodal prediction, there are two situations : Bimodal is wrong. It means that the entry in bank X is a useful entry. By setting the u bit, we indicate that we would like to prevent this entry from being stolen by another branch. By setting the m bit, we indicate that the branch outcome exhibits 3
4 Michaud 2 bit history folded onto 8 bits h[2] + + h[] 8 bit history folded onto 1 bits h[8] + h[] Figure 2: Global history folding can be implemented with a circular shift register (CSR) and a couple of XORs (symbol ). correlation with the global history value, so new entries for that branch should be allocated by reinitializing the 3-bit counter according to the actual branch outcome. Bimodal is correct. Prediction from bank X was wrong. This happens when a branch exhibits randomness in its behavior, and its outcome is not correlated with the global history value (or the global history is not long enough). In that case, we are allocating many useless entries. Moreover, because allocation is done only upon mispredictions, it is safer to initialize 3-bit counters with the bimodal prediction, which represents the most likely branch outcome. So we reset the m bit to mean this. Moreover, we reset the u bit to indicate that the entry has not been proven useful, so it can be stolen if another branch claims the entry. 2.4 Folded global history A possible way to implement history folding would be to use a tree of XORs. For example, for the 4-bit history, h[ : 9] h[1 : 19] h[2 : 29] h[3 : 39] requires a depth-2 tree (assuming 2-input XORs). For the 8-bit history, this requires a depth-3 tree. In practice, history folding can be implemented by taking advantage of the fact that we are not folding a random value, but a global history value derived from the previous history value [3]. Figure 2 shows two examples of how global history folding can be implemented with a circular shift register (CSR) and a couple of XORs. In cbp1.5, there is a 1-bit CSR in front of each bank 2 to 4 to compute the index. The index is then obtained by a bitwise XOR of the CSR bits with pc[9 : ] pc[19 : 1]. In front of bank 1, the index is simply pc[9 : ] pc[19 : 1] h[9 : ]. History folding is also used for the tags. For each bank 1 to 4, we use a set of two CSRs, CSR1 and CSR2, which are respectively 8 bits and 7 bits. The tag is computed as pc[7 : ] CSR1 (CSR2 << 1). We used two CSRs because a single CSR is sensitive to periodic patterns in the global history, which is a frequent case. 4
5 A PPM-like, tag-based branch predictor 3. Description of GPPM-ideal 3.1 Definitions Our definition of GPPM-ideal is based on the notion of sequence frequency. We define the program control flow (PCF) as a finite sequence (B i ) of dynamic basic blocks B i B where B is the set of all static basic blocks constituting the program text. We denote S(n) the set of all possible sequences of n consecutive blocks. In particular, S(1) = B. We denote S(m, n) = k [m,n] S(k) the set of sequences whose length is between m and n. Given m < n and two sequences u S(m) and s S(n), we will say that u is a suffix of s, and denote it u s, if sequence u matches the last m blocks of s. For each sequence s, we define its frequency f(s) as the number of occurrences of s in the PCF. We assume that each block B B, hence each sequence, has only two possible successor blocks in the PCF, which is true for blocks ending on a conditional branch. We denote 1 s and s the most frequent and least frequent successor block of sequence s in the PCF, respectively. By definition, s S(n), we have f(s.1 s ) f(s. s ), where we denote s.1 s (resp. s. s ) the sequence from S(n + 1) formed by appending block 1 s (resp. s ) to sequence s. The following example illustrates the definitions. Consider the short PCF below : aababcdaaabcd The set of blocks is B = S(1) = {a, b, c, d}. The set of two-block sequences is S(2) = {aa, ab, ba, bc, cd, da}. The frequency of sequence s = aa is f(s) = 3, and we have 1 s = b, s = a,f(s.1 s ) = f(aab) = 2,f(s. s ) = f(aaa) = 1. Sequence bcd S(3) is a suffix of sequence babcd S(5), that is bcd babcd. 3.2 GPPM-ideal The GPPM-ideal predictor consists of a set T of sequences. The number of sequences in T is denoted T. Sequences in T have various lengths, which we assume are always strictly greater than one. We also assume that the content of T is fixed for the whole PCF. For each B j in the PCF, we search for the longest sequence s = B j n+1 B j in T, with n 2. If we do not find such a sequence, the default sequence is s = B j. Then the prediction from GPPM-ideal is 1 s. If B j+1 = 1 s, this is a correct prediction; otherwise if B j+1 = s we count a misprediction. The total number of mispredictions is m(t ) = s S(1) f(s. s ) s T (f(s. u ) f(s. s )) (1) where u is the longest suffix of s in B T. Expression (1) can be understood as follows. All the potential mispredictions are counted in the sum s S(1) f(s. s) + s T f(s. s). We must remove from this sum the false mispredictions on sequences u for which there exists a longer matching sequence in T, i.e., s T f(s. u). More explanations can be found in [7]. 5
6 Michaud 3.3 A heuristic for set T We assume T is fixed. Our goal is to find a T that minimizes m(t ). We define S as the set of all sequences that are allowed to be in T. For example, if we allow all sequences whose length does not exceed N, we have S = S(2, N). We define S S as the useful sequences remaining after removing from S the sequences s such that s = u, where u is the longest suffix of s in B S. It can be verified that S is the smallest subset of S such that m(s) = m(s ) = m( ) s S (f(s.1 s) f(s. s )). We order the sequences in S according to the following procedure. Each sequence s S has a potential which we define as f(s.1 s ) f(s. s ) + u S,s u (f(u.1 u ) f(u. u )) We sort sequences in S in decreasing potentials, and we put in T the first T sequences with the highest potentials. This heuristic does not necessarily give an optimal set T. However in practice, it gives a curve m(t ) as a function of T that is approximately convex, which ensures that we are close to an optimal T. 4. From GPPM-ideal to cbp1.5 All the results presented in this study are obtained with the CBP traces. To build GPPMideal, we first define a maximum sequence length N = 2, and we assume S S(2, N). Each sequence from S that occurs in the PCF and that ends with a conditional branch is recorded in a table. For each sequence recorded, we maintain a count of the number of occurrences of the sequence in the PCF, and how many times the branch ending the sequence was taken. At the end of the PCF, we build S and sort sequences in decreasing potentials. Then we compute m(t ) from (1). Because of memory limitations on our machines, when S exceeded a certain size, we decreased N. However, as the longest global history length in cbp1.5 is 8 branch direction bits, we did not want N to be smaller than 81. So we shortened a few traces, namely INT-2, INT-3, MM-1, MM-2 and MM Base results Table 1 gives the PCF length for each trace. We count in the PCF only the blocks ending on conditional branches, so the PCF length is in fact the number of dynamic conditional branches. The maximum sequence length N is indicated in Table 1 for each trace. S(1) is the number of unique static conditional branches encountered in the PCF. The set of allowed sequences is S = S(2, N). S is the number of useful sequences in S. A large value of S means that GPPM predictors need a large global table. The number of mispredictions for GPPM-ideal for the given value of N, and with no size limitation, is m(s ). Table 1 also gives the value of m(t ) when we constrain the global table size to not exceed T = 496 sequences, where the content of T is determined as described in Section 3.3. Note that 496 is also the number of global entries in cbp1.5. Finally, Table 1 shows the number of mispredictions for cbp1.5. 6
7 A PPM-like, tag-based branch predictor FP-1 FP-2 FP-3 FP-4 FP-5 PCF length N S(1) S m(s ) m(t ), T = 4k cbp INT-1 INT-2 INT-3 INT-4 INT-5 PCF length N S(1) S m(s ) m(t ), T = 4k cbp MM-1 MM-2 MM-3 MM-4 MM-5 PCF length N S(1) S m(s ) m(t ), T = 4k cbp SERV-1 SERV-2 SERV-3 SERV-4 SERV-5 PCF length N S(1) S m(s ) m(t ), T = 4k cbp Table 1: Basic results for each trace. Traces INT-2,3 and MM-1,2,5 were shortened due to memory limitations, to keep N greater than 8. 7
8 Michaud degradation 1 global history uses branch direction bits only 2 global history does not exceed 8 bits 3 allowed global history lengths are 1,2,4 and 8 bits 4 number of sequences of the same length cannot exceed T /4 = function and sequence allocation like cbp1.5, 3-bit tags 6 use 3-bit counters initialized with 1 s 7 8-bit tags 8 initialize 3-bit counters using the m bit 9 4k-entry direct-mapped bimodal Table 2: Degradation path from GPPM-ideal to cbp A degradation path from GPPM-ideal to cbp1.5 Table 2 gives an example of a degradation path from GPPM-ideal with T = 496 to cbp1.5. We arbitrarily divided the degradation path into 9 s, each including the previous ones. Figure 3 shows the number of mispredictions after each. Step corresponds to GPPM-ideal, with S = S(2, N). GPPM-ideal is a path-based predictor, meaning that each sequence is identified with the PC of the conditional branch ending the sequence and with the PC of all the blocks constituting the sequence. However, cbp1.5 uses a global history of branch directions, which contains less information. Step 1 corresponds to the use of branch direction bits in the global history. As can be seen on Figure 3, the degradation is generally small, except for INT2, MM5, SERV3 and SERV4 (several thousands of extra mispredictions). Step 2 corresponds to not using more than 8 global history bits, i.e., S = S(2, 81). It brings a significant degradation on FP traces, and on INT1, INT4 and MM3. Step 3 corresponds to limiting the allowed lengths to S = S(11) S(21) S(41) S(81). It is often a negligible degradation, but is significant on INT2, INT3, MM5 and SERV4. Step 4 splits T into 4 equally-sized partitions. That is, T cannot have more than T /4 = 124 sequences with the same length. In each partition, sequences are sorted in decreasing potentials (Section 3.3). This mimics the 4 global banks in cbp1.5. The impact of 4 is significant on INT2, INT3, SERV1, SERV2,and SERV4. Step 5 is the biggest qualitative. Starting at this, the content of T is allowed to change dynamically. We can no longer use formula (1), and so now we generate results by performing a second pass on the traces. We use the 4 global banks of cbp1.5, and the same allocation policy as cbp1.5 i.e., the one based on the u bit. Moreover, we use 3-bit tags. However, the prediction for the longest matching sequence s is still given by 1 s, as in GPPM-ideal. As expected, the magnitude of the degradation is strongly correlated with S. Step 6 corresponds to the introduction of 3-bit counters. Although predictions are now given by 3-bit counters, the counter associated with sequence s is initialized with 1 s when we steal an entry for s. Except for a few cases (INT2, INT4, MM4), it increases the number of mispredictions. As expected, traces with a large S(1), e.g. the SERV traces, experience a more pronounced degradation, corresponding to cold-start bimodal mispredictions. Step 7 corresponds to using 8-bit instead of 3-bit tags. This is a significant degradation on 8
9 A PPM-like, tag-based branch predictor FP-1 INT-1 MM-1 SERV FP-2 INT-2 MM-2 SERV FP-3 INT-3 MM-3 SERV FP-4 INT-4 MM-4 SERV FP-5 INT-5 MM-5 SERV Table 3: Impact of the degradations listed on Table 2 on the number of mispredictions. Step is GPPM-ideal, and 9 is cbp1.5. the INT and SERV traces. Step 8 corresponds to initializing 3-bit counters as in cbp1.5, that is, using information from the m bit instead of 1 s. Except for MM3, this increases the number of mispredictions, and significantly for a majority of cases. Finally, the last corresponds to limiting the bimodal table size. This is an important degradation for traces with a large S(1), in particular the SERV traces. 9
10 Michaud 5. Conclusion The difference between GPPM-ideal and cbp1.5 cannot be attributed to a single cause. If we want to improve cbp1.5, we must work in several places. Steps 1 to 4 on Table 2 concern the choice of history lengths and the number and size of global banks. There is a potential for removing a significant number of mispredictions here, especially on the FP and INT traces. Step 5 is one of the biggest single contributors to the discrepancy between GPPM-ideal and cbp1.5. In cbp1.5, we steal an entry on each misprediction. A paradox of this method is that the more mispredictions we have, the more useful entries are replaced with useless ones. This is harmful positive feedback. We should find a better method than the u bit to decide which entry should be stolen and which should not, so we can eliminate this positive feedback. We should also find a better method than the m bit to initialize counters, since this method is the source of a significant number of extra mispredictions ( 8). Finally, the SERV traces require a large bimodal table. We should try to enlarge the bimodal table, or find a way to dynamically adjust the fraction of the overall predictor storage holding bimodal entries. Some of the CBP-1 predictors (e.g., [8, 9]) dynamically adjust the history lengths according to the application. This would be another way to achieve a similar goal. Acknowledgements The author wishes to thank Jared Stark for helping improve the english References [1] J. Cleary and I. Witten, Data compression using adaptive coding and partial string matching, IEEE Transactions on Communications, vol. 32, pp , Apr [2] I.-C. Chen, J. Coffey, and T. Mudge, Analysis of branch prediction via data compression, in Proceedings of the 7th International Conference on Architectural Support for Programming Languages and Operating Systems, Oct [3] P. Michaud and A. Seznec, A comprehensive study of dynamic global-history branch prediction, Research report PI-146, IRISA, June 21. [4] A. Eden and T. Mudge, The YAGS branch prediction scheme, in Proceedings of the 31st Annual International Symposium on Microarchitecture, [5] S. McFarling, Combining branch predictors, TN 36, DEC WRL, June [6] J. Smith, A study of branch prediction strategies, in Proceedings of the 8th Annual International Symposium on Computer Architecture, [7] P. Michaud, Analysis of a tag-based branch predictor, Research report PI-166, IRISA, Nov. 24. [8] A. Seznec, The O-GEHL branch predictor. 1st CBP, Dec. 24. [9] D. Jiménez, Idealized piecewise linear branch prediction. 1st CBP, Dec
TPCalc : a throughput calculator for computer architecture studies
TPCalc : a throughput calculator for computer architecture studies Pierre Michaud Stijn Eyerman Wouter Rogiest IRISA/INRIA Ghent University Ghent University [email protected] [email protected]
More on Pipelining and Pipelines in Real Machines CS 333 Fall 2006 Main Ideas Data Hazards RAW WAR WAW More pipeline stall reduction techniques Branch prediction» static» dynamic bimodal branch prediction
WAR: Write After Read
WAR: Write After Read write-after-read (WAR) = artificial (name) dependence add R1, R2, R3 sub R2, R4, R1 or R1, R6, R3 problem: add could use wrong value for R2 can t happen in vanilla pipeline (reads
Storage Optimization in Cloud Environment using Compression Algorithm
Storage Optimization in Cloud Environment using Compression Algorithm K.Govinda 1, Yuvaraj Kumar 2 1 School of Computing Science and Engineering, VIT University, Vellore, India [email protected] 2 School
Analysis of Compression Algorithms for Program Data
Analysis of Compression Algorithms for Program Data Matthew Simpson, Clemson University with Dr. Rajeev Barua and Surupa Biswas, University of Maryland 12 August 3 Abstract Insufficient available memory
Solution: start more than one instruction in the same clock cycle CPI < 1 (or IPC > 1, Instructions per Cycle) Two approaches:
Multiple-Issue Processors Pipelining can achieve CPI close to 1 Mechanisms for handling hazards Static or dynamic scheduling Static or dynamic branch handling Increase in transistor counts (Moore s Law):
DIGITAL-TO-ANALOGUE AND ANALOGUE-TO-DIGITAL CONVERSION
DIGITAL-TO-ANALOGUE AND ANALOGUE-TO-DIGITAL CONVERSION Introduction The outputs from sensors and communications receivers are analogue signals that have continuously varying amplitudes. In many systems
Today s Agenda. Automata and Logic. Quiz 4 Temporal Logic. Introduction Buchi Automata Linear Time Logic Summary
Today s Agenda Quiz 4 Temporal Logic Formal Methods in Software Engineering 1 Automata and Logic Introduction Buchi Automata Linear Time Logic Summary Formal Methods in Software Engineering 2 1 Buchi Automata
Levent EREN [email protected] A-306 Office Phone:488-9882 INTRODUCTION TO DIGITAL LOGIC
Levent EREN [email protected] A-306 Office Phone:488-9882 1 Number Systems Representation Positive radix, positional number systems A number with radix r is represented by a string of digits: A n
Towards better accuracy for Spam predictions
Towards better accuracy for Spam predictions Chengyan Zhao Department of Computer Science University of Toronto Toronto, Ontario, Canada M5S 2E4 [email protected] Abstract Spam identification is crucial
Email Spam Detection Using Customized SimHash Function
International Journal of Research Studies in Computer Science and Engineering (IJRSCSE) Volume 1, Issue 8, December 2014, PP 35-40 ISSN 2349-4840 (Print) & ISSN 2349-4859 (Online) www.arcjournals.org Email
Gerry Hobbs, Department of Statistics, West Virginia University
Decision Trees as a Predictive Modeling Method Gerry Hobbs, Department of Statistics, West Virginia University Abstract Predictive modeling has become an important area of interest in tasks such as credit
Baltic Way 1995. Västerås (Sweden), November 12, 1995. Problems and solutions
Baltic Way 995 Västerås (Sweden), November, 995 Problems and solutions. Find all triples (x, y, z) of positive integers satisfying the system of equations { x = (y + z) x 6 = y 6 + z 6 + 3(y + z ). Solution.
Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language
Chapter 4 Register Transfer and Microoperations Section 4.1 Register Transfer Language Digital systems are composed of modules that are constructed from digital components, such as registers, decoders,
Standard for Software Component Testing
Standard for Software Component Testing Working Draft 3.4 Date: 27 April 2001 produced by the British Computer Society Specialist Interest Group in Software Testing (BCS SIGIST) Copyright Notice This document
Scheduling Shop Scheduling. Tim Nieberg
Scheduling Shop Scheduling Tim Nieberg Shop models: General Introduction Remark: Consider non preemptive problems with regular objectives Notation Shop Problems: m machines, n jobs 1,..., n operations
= 2 + 1 2 2 = 3 4, Now assume that P (k) is true for some fixed k 2. This means that
Instructions. Answer each of the questions on your own paper, and be sure to show your work so that partial credit can be adequately assessed. Credit will not be given for answers (even correct ones) without
Less naive Bayes spam detection
Less naive Bayes spam detection Hongming Yang Eindhoven University of Technology Dept. EE, Rm PT 3.27, P.O.Box 53, 5600MB Eindhoven The Netherlands. E-mail:[email protected] also CoSiNe Connectivity Systems
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 17 Shannon-Fano-Elias Coding and Introduction to Arithmetic Coding
Model Checking II Temporal Logic Model Checking
1/32 Model Checking II Temporal Logic Model Checking Edmund M Clarke, Jr School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 2/32 Temporal Logic Model Checking Specification Language:
Counters are sequential circuits which "count" through a specific state sequence.
Counters Counters are sequential circuits which "count" through a specific state sequence. They can count up, count down, or count through other fixed sequences. Two distinct types are in common usage:
Chapter II. Controlling Cars on a Bridge
Chapter II. Controlling Cars on a Bridge 1 Introduction The intent of this chapter is to introduce a complete example of a small system development. During this development, you will be made aware of the
Lecture 10: Regression Trees
Lecture 10: Regression Trees 36-350: Data Mining October 11, 2006 Reading: Textbook, sections 5.2 and 10.5. The next three lectures are going to be about a particular kind of nonlinear predictive model,
Temporal Logics. Computation Tree Logic
Temporal Logics CTL: definition, relationship between operators, adequate sets, specifying properties, safety/liveness/fairness Modeling: sequential, concurrent systems; maximum parallelism/interleaving
CALL CENTER SCHEDULING TECHNOLOGY EVALUATION USING SIMULATION. Sandeep Gulati Scott A. Malcolm
Proceedings of the 2001 Winter Simulation Conference B. A. Peters, J. S. Smith, D. J. Medeiros, and M. W. Rohrer, eds. CALL CENTER SCHEDULING TECHNOLOGY EVALUATION USING SIMULATION Sandeep Gulati Scott
Clustering and scheduling maintenance tasks over time
Clustering and scheduling maintenance tasks over time Per Kreuger 2008-04-29 SICS Technical Report T2008:09 Abstract We report results on a maintenance scheduling problem. The problem consists of allocating
A greedy algorithm for the DNA sequencing by hybridization with positive and negative errors and information about repetitions
BULLETIN OF THE POLISH ACADEMY OF SCIENCES TECHNICAL SCIENCES, Vol. 59, No. 1, 2011 DOI: 10.2478/v10175-011-0015-0 Varia A greedy algorithm for the DNA sequencing by hybridization with positive and negative
About the inverse football pool problem for 9 games 1
Seventh International Workshop on Optimal Codes and Related Topics September 6-1, 013, Albena, Bulgaria pp. 15-133 About the inverse football pool problem for 9 games 1 Emil Kolev Tsonka Baicheva Institute
How To Trace
CS510 Software Engineering Dynamic Program Analysis Asst. Prof. Mathias Payer Department of Computer Science Purdue University TA: Scott A. Carr Slides inspired by Xiangyu Zhang http://nebelwelt.net/teaching/15-cs510-se
Winning the Kaggle Algorithmic Trading Challenge with the Composition of Many Models and Feature Engineering
IEICE Transactions on Information and Systems, vol.e96-d, no.3, pp.742-745, 2013. 1 Winning the Kaggle Algorithmic Trading Challenge with the Composition of Many Models and Feature Engineering Ildefons
CHAPTER 5. Number Theory. 1. Integers and Division. Discussion
CHAPTER 5 Number Theory 1. Integers and Division 1.1. Divisibility. Definition 1.1.1. Given two integers a and b we say a divides b if there is an integer c such that b = ac. If a divides b, we write a
Introduction to Parallel Programming and MapReduce
Introduction to Parallel Programming and MapReduce Audience and Pre-Requisites This tutorial covers the basics of parallel programming and the MapReduce programming model. The pre-requisites are significant
MA 323 Geometric Modelling Course Notes: Day 02 Model Construction Problem
MA 323 Geometric Modelling Course Notes: Day 02 Model Construction Problem David L. Finn November 30th, 2004 In the next few days, we will introduce some of the basic problems in geometric modelling, and
Unraveling versus Unraveling: A Memo on Competitive Equilibriums and Trade in Insurance Markets
Unraveling versus Unraveling: A Memo on Competitive Equilibriums and Trade in Insurance Markets Nathaniel Hendren January, 2014 Abstract Both Akerlof (1970) and Rothschild and Stiglitz (1976) show that
Lecture Note 8 ATTACKS ON CRYPTOSYSTEMS I. Sourav Mukhopadhyay
Lecture Note 8 ATTACKS ON CRYPTOSYSTEMS I Sourav Mukhopadhyay Cryptography and Network Security - MA61027 Attacks on Cryptosystems Up to this point, we have mainly seen how ciphers are implemented. We
Measuring the Performance of an Agent
25 Measuring the Performance of an Agent The rational agent that we are aiming at should be successful in the task it is performing To assess the success we need to have a performance measure What is rational
Compact Representations and Approximations for Compuation in Games
Compact Representations and Approximations for Compuation in Games Kevin Swersky April 23, 2008 Abstract Compact representations have recently been developed as a way of both encoding the strategic interactions
Research on the UHF RFID Channel Coding Technology based on Simulink
Vol. 6, No. 7, 015 Research on the UHF RFID Channel Coding Technology based on Simulink Changzhi Wang Shanghai 0160, China Zhicai Shi* Shanghai 0160, China Dai Jian Shanghai 0160, China Li Meng Shanghai
Modelling, Extraction and Description of Intrinsic Cues of High Resolution Satellite Images: Independent Component Analysis based approaches
Modelling, Extraction and Description of Intrinsic Cues of High Resolution Satellite Images: Independent Component Analysis based approaches PhD Thesis by Payam Birjandi Director: Prof. Mihai Datcu Problematic
The string of digits 101101 in the binary number system represents the quantity
Data Representation Section 3.1 Data Types Registers contain either data or control information Control information is a bit or group of bits used to specify the sequence of command signals needed for
Chapter 6: Episode discovery process
Chapter 6: Episode discovery process Algorithmic Methods of Data Mining, Fall 2005, Chapter 6: Episode discovery process 1 6. Episode discovery process The knowledge discovery process KDD process of analyzing
A Comparison of General Approaches to Multiprocessor Scheduling
A Comparison of General Approaches to Multiprocessor Scheduling Jing-Chiou Liou AT&T Laboratories Middletown, NJ 0778, USA [email protected] Michael A. Palis Department of Computer Science Rutgers University
Resource Allocation Schemes for Gang Scheduling
Resource Allocation Schemes for Gang Scheduling B. B. Zhou School of Computing and Mathematics Deakin University Geelong, VIC 327, Australia D. Walsh R. P. Brent Department of Computer Science Australian
Gambling and Data Compression
Gambling and Data Compression Gambling. Horse Race Definition The wealth relative S(X) = b(x)o(x) is the factor by which the gambler s wealth grows if horse X wins the race, where b(x) is the fraction
A Model-driven Approach to Predictive Non Functional Analysis of Component-based Systems
A Model-driven Approach to Predictive Non Functional Analysis of Component-based Systems Vincenzo Grassi Università di Roma Tor Vergata, Italy Raffaela Mirandola {vgrassi, mirandola}@info.uniroma2.it Abstract.
AES Power Attack Based on Induced Cache Miss and Countermeasure
AES Power Attack Based on Induced Cache Miss and Countermeasure Guido Bertoni, Vittorio Zaccaria STMicroelectronics, Advanced System Technology Agrate Brianza - Milano, Italy, {guido.bertoni, vittorio.zaccaria}@st.com
Development of dynamically evolving and self-adaptive software. 1. Background
Development of dynamically evolving and self-adaptive software 1. Background LASER 2013 Isola d Elba, September 2013 Carlo Ghezzi Politecnico di Milano Deep-SE Group @ DEIB 1 Requirements Functional requirements
Load Balancing. Load Balancing 1 / 24
Load Balancing Backtracking, branch & bound and alpha-beta pruning: how to assign work to idle processes without much communication? Additionally for alpha-beta pruning: implementing the young-brothers-wait
WHAT ARE MATHEMATICAL PROOFS AND WHY THEY ARE IMPORTANT?
WHAT ARE MATHEMATICAL PROOFS AND WHY THEY ARE IMPORTANT? introduction Many students seem to have trouble with the notion of a mathematical proof. People that come to a course like Math 216, who certainly
International Journal of Advanced Research in Computer Science and Software Engineering
Volume 3, Issue 7, July 23 ISSN: 2277 28X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Greedy Algorithm:
EE482: Advanced Computer Organization Lecture #11 Processor Architecture Stanford University Wednesday, 31 May 2000. ILP Execution
EE482: Advanced Computer Organization Lecture #11 Processor Architecture Stanford University Wednesday, 31 May 2000 Lecture #11: Wednesday, 3 May 2000 Lecturer: Ben Serebrin Scribe: Dean Liu ILP Execution
Overview. Evaluation Connectionist and Statistical Language Processing. Test and Validation Set. Training and Test Set
Overview Evaluation Connectionist and Statistical Language Processing Frank Keller [email protected] Computerlinguistik Universität des Saarlandes training set, validation set, test set holdout, stratification
How To Balance In A Distributed System
6 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 11, NO. 1, JANUARY 2000 How Useful Is Old Information? Michael Mitzenmacher AbstractÐWe consider the problem of load balancing in dynamic distributed
Measurement and Metrics Fundamentals. SE 350 Software Process & Product Quality
Measurement and Metrics Fundamentals Lecture Objectives Provide some basic concepts of metrics Quality attribute metrics and measurements Reliability, validity, error Correlation and causation Discuss
Learning in Abstract Memory Schemes for Dynamic Optimization
Fourth International Conference on Natural Computation Learning in Abstract Memory Schemes for Dynamic Optimization Hendrik Richter HTWK Leipzig, Fachbereich Elektrotechnik und Informationstechnik, Institut
Scheduling a sequence of tasks with general completion costs
Scheduling a sequence of tasks with general completion costs Francis Sourd CNRS-LIP6 4, place Jussieu 75252 Paris Cedex 05, France [email protected] Abstract Scheduling a sequence of tasks in the acceptation
arxiv:1112.0829v1 [math.pr] 5 Dec 2011
How Not to Win a Million Dollars: A Counterexample to a Conjecture of L. Breiman Thomas P. Hayes arxiv:1112.0829v1 [math.pr] 5 Dec 2011 Abstract Consider a gambling game in which we are allowed to repeatedly
Load Balancing in MapReduce Based on Scalable Cardinality Estimates
Load Balancing in MapReduce Based on Scalable Cardinality Estimates Benjamin Gufler 1, Nikolaus Augsten #, Angelika Reiser 3, Alfons Kemper 4 Technische Universität München Boltzmannstraße 3, 85748 Garching
1 if 1 x 0 1 if 0 x 1
Chapter 3 Continuity In this chapter we begin by defining the fundamental notion of continuity for real valued functions of a single real variable. When trying to decide whether a given function is or
Arithmetic Coding: Introduction
Data Compression Arithmetic coding Arithmetic Coding: Introduction Allows using fractional parts of bits!! Used in PPM, JPEG/MPEG (as option), Bzip More time costly than Huffman, but integer implementation
Static Program Transformations for Efficient Software Model Checking
Static Program Transformations for Efficient Software Model Checking Shobha Vasudevan Jacob Abraham The University of Texas at Austin Dependable Systems Large and complex systems Software faults are major
Model Checking: An Introduction
Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI
Introduction to Scheduling Theory
Introduction to Scheduling Theory Arnaud Legrand Laboratoire Informatique et Distribution IMAG CNRS, France [email protected] November 8, 2004 1/ 26 Outline 1 Task graphs from outer space 2 Scheduling
Load Balancing on a Grid Using Data Characteristics
Load Balancing on a Grid Using Data Characteristics Jonathan White and Dale R. Thompson Computer Science and Computer Engineering Department University of Arkansas Fayetteville, AR 72701, USA {jlw09, drt}@uark.edu
ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies
ETEC 2301 Programmable Logic Devices Chapter 10 Counters Shawnee State University Department of Industrial and Engineering Technologies Copyright 2007 by Janna B. Gallaher Asynchronous Counter Operation
The Student-Project Allocation Problem
The Student-Project Allocation Problem David J. Abraham, Robert W. Irving, and David F. Manlove Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, UK Email: {dabraham,rwi,davidm}@dcs.gla.ac.uk.
CHAPTER 7 GENERAL PROOF SYSTEMS
CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes
Information, Entropy, and Coding
Chapter 8 Information, Entropy, and Coding 8. The Need for Data Compression To motivate the material in this chapter, we first consider various data sources and some estimates for the amount of data associated
Oct: 50 8 = 6 (r = 2) 6 8 = 0 (r = 6) Writing the remainders in reverse order we get: (50) 10 = (62) 8
ECE Department Summer LECTURE #5: Number Systems EEL : Digital Logic and Computer Systems Based on lecture notes by Dr. Eric M. Schwartz Decimal Number System: -Our standard number system is base, also
Dynamic Load Balance Algorithm (DLBA) for IEEE 802.11 Wireless LAN
Tamkang Journal of Science and Engineering, vol. 2, No. 1 pp. 45-52 (1999) 45 Dynamic Load Balance Algorithm () for IEEE 802.11 Wireless LAN Shiann-Tsong Sheu and Chih-Chiang Wu Department of Electrical
Determination of the normalization level of database schemas through equivalence classes of attributes
Computer Science Journal of Moldova, vol.17, no.2(50), 2009 Determination of the normalization level of database schemas through equivalence classes of attributes Cotelea Vitalie Abstract In this paper,
1 Description of The Simpletron
Simulating The Simpletron Computer 50 points 1 Description of The Simpletron In this assignment you will write a program to simulate a fictional computer that we will call the Simpletron. As its name implies
WebSphere Business Monitor
WebSphere Business Monitor Monitor models 2010 IBM Corporation This presentation should provide an overview of monitor models in WebSphere Business Monitor. WBPM_Monitor_MonitorModels.ppt Page 1 of 25
Fundamentele Informatica II
Fundamentele Informatica II Answer to selected exercises 1 John C Martin: Introduction to Languages and the Theory of Computation M.M. Bonsangue (and J. Kleijn) Fall 2011 Let L be a language. It is clear
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines
Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada [email protected] Micaela Serra
1 Approximating Set Cover
CS 05: Algorithms (Grad) Feb 2-24, 2005 Approximating Set Cover. Definition An Instance (X, F ) of the set-covering problem consists of a finite set X and a family F of subset of X, such that every elemennt
Row Ideals and Fibers of Morphisms
Michigan Math. J. 57 (2008) Row Ideals and Fibers of Morphisms David Eisenbud & Bernd Ulrich Affectionately dedicated to Mel Hochster, who has been an inspiration to us for many years, on the occasion
An Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration
An Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration Toktam Taghavi, Andy D. Pimentel Computer Systems Architecture Group, Informatics Institute
Predicting the Stock Market with News Articles
Predicting the Stock Market with News Articles Kari Lee and Ryan Timmons CS224N Final Project Introduction Stock market prediction is an area of extreme importance to an entire industry. Stock price is
RUNAHEAD EXECUTION: AN EFFECTIVE ALTERNATIVE TO LARGE INSTRUCTION WINDOWS
RUNAHEAD EXECUTION: AN EFFECTIVE ALTERNATIVE TO LARGE INSTRUCTION WINDOWS AN INSTRUCTION WINDOW THAT CAN TOLERATE LATENCIES TO DRAM MEMORY IS PROHIBITIVELY COMPLEX AND POWER HUNGRY. TO AVOID HAVING TO
Change Risk Assessment: Understanding Risks Involved in Changing Software Requirements
Change Risk Assessment: Understanding Risks Involved in Changing Software Requirements Byron J. Williams Jeffrey Carver Ray Vaughn Department of Computer Science and Engineering Mississippi State University
a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2.
Chapter 1 LINEAR EQUATIONS 1.1 Introduction to linear equations A linear equation in n unknowns x 1, x,, x n is an equation of the form a 1 x 1 + a x + + a n x n = b, where a 1, a,..., a n, b are given
Applications of Machine Learning in Software Testing. Lionel C. Briand Simula Research Laboratory and University of Oslo
Applications of Machine Learning in Software Testing Lionel C. Briand Simula Research Laboratory and University of Oslo Acknowledgments Yvan labiche Xutao Liu Zaheer Bawar Kambiz Frounchi March 2008 2
Problems, Methods and Tools of Advanced Constrained Scheduling
Problems, Methods and Tools of Advanced Constrained Scheduling Victoria Shavyrina, Spider Project Team Shane Archibald, Archibald Associates Vladimir Liberzon, Spider Project Team 1. Introduction In this
Basics of VTune Performance Analyzer. Intel Software College. Objectives. VTune Performance Analyzer. Agenda
Objectives At the completion of this module, you will be able to: Understand the intended purpose and usage models supported by the VTune Performance Analyzer. Identify hotspots by drilling down through
The CUSUM algorithm a small review. Pierre Granjon
The CUSUM algorithm a small review Pierre Granjon June, 1 Contents 1 The CUSUM algorithm 1.1 Algorithm............................... 1.1.1 The problem......................... 1.1. The different steps......................
TRINITY COLLEGE. Faculty of Engineering, Mathematics and Science. School of Computer Science & Statistics
UNIVERSITY OF DUBLIN TRINITY COLLEGE Faculty of Engineering, Mathematics and Science School of Computer Science & Statistics BA (Mod) Enter Course Title Trinity Term 2013 Junior/Senior Sophister ST7002
1 of 9 2/9/2010 3:38 PM
1 of 9 2/9/2010 3:38 PM Chapter 23 Homework Due: 8:00am on Monday, February 8, 2010 Note: To understand how points are awarded, read your instructor's Grading Policy. [Return to Standard Assignment View]
CHAPTER 5 FINITE STATE MACHINE FOR LOOKUP ENGINE
CHAPTER 5 71 FINITE STATE MACHINE FOR LOOKUP ENGINE 5.1 INTRODUCTION Finite State Machines (FSMs) are important components of digital systems. Therefore, techniques for area efficiency and fast implementation
Experimental Comparison of Concolic and Random Testing for Java Card Applets
Experimental Comparison of Concolic and Random Testing for Java Card Applets Kari Kähkönen, Roland Kindermann, Keijo Heljanko, and Ilkka Niemelä Aalto University, Department of Information and Computer
Mining the Software Change Repository of a Legacy Telephony System
Mining the Software Change Repository of a Legacy Telephony System Jelber Sayyad Shirabad, Timothy C. Lethbridge, Stan Matwin School of Information Technology and Engineering University of Ottawa, Ottawa,
Energy-Efficient, High-Performance Heterogeneous Core Design
Energy-Efficient, High-Performance Heterogeneous Core Design Raj Parihar Core Design Session, MICRO - 2012 Advanced Computer Architecture Lab, UofR, Rochester April 18, 2013 Raj Parihar Energy-Efficient,
Case Based Model to enhance aircraft fleet management and equipment performance
Case Based Model to enhance aircraft fleet management and equipment performance A. BEN ZAKOUR (a), E. RANDRIA (b) (a) University of Bordeaux, France (LaBRI) 2MoRO Solutions Bidart, France, [email protected]
400B.2.1 CH2827-4/90/0000-0350 $1.OO 0 1990 IEEE
Performance Characterizations of Traffic Monitoring, and Associated Control, Mechanisms for Broadband "Packet" Networks A.W. Berger A.E. Eckberg Room 3R-601 Room 35-611 Holmde1,NJ 07733 USA Holmde1,NJ
Change Management in Enterprise IT Systems: Process Modeling and Capacity-optimal Scheduling
Change Management in Enterprise IT Systems: Process Modeling and Capacity-optimal Scheduling Praveen K. Muthusamy, Koushik Kar, Sambit Sahu, Prashant Pradhan and Saswati Sarkar Rensselaer Polytechnic Institute
Formal Verification Coverage: Computing the Coverage Gap between Temporal Specifications
Formal Verification Coverage: Computing the Coverage Gap between Temporal Specifications Sayantan Das Prasenjit Basu Ansuman Banerjee Pallab Dasgupta P.P. Chakrabarti Department of Computer Science & Engineering
