DeltaPath: Precise and Scalable Calling Context Encoding

Size: px
Start display at page:

Download "DeltaPath: Precise and Scalable Calling Context Encoding"

Transcription

1 DeltaPath: Precise an Scalable Calling Context Encoing Qiang Zeng, Junghwan Rhee, Hui Zhang, Nipun rora, Guofei Jiang, Peng Liu Penn State University, NEC Laboratories merica BSTRCT Calling context provies important information for a large range of applications, such as event logging, profiling, ebugging, anomaly etection, an performance optimization. While some techniques have been propose to track calling context efficiently, they lack a reliable an precise ecoing capability; or they work only uner restricte conitions, that is, small programs without objectoriente programming or ynamic component loaing. These shortcomings have limite the application of calling context tracking in practice. We propose an encoing technique without those limitations: it provies precise an reliable ecoing, supports largesize programs, both proceural an objecte-oriente ones, an can cope with ynamic class/library loaing. The technique thus enables calling context tracking in a wie variety of scenarios. The evaluation on SPECjvm shows that its efficiency is comparable with that of the state-of-the-art approach while our technique provies precise ecoing an emonstrates scalability an flexibility. Categories an Subject Descriptors D..5 [Software Engineering]: Testing an Debugging-Monitors, Testing tools General Terms Performance, Measurement, Reliability Keywors Calling context encoing, object-oriente programming. INTRODUCTION calling context is the sequence of active function/metho invocations that lea to a program location. It provies critical information about ynamic program behavior. The usage has been emonstrate in a wie range of applications, such as ebugging [9, Permission to make igital or har copies of all or part of this work for personal or classroom use is grante without fee provie that copies are not mae or istribute for profit or commercial avantage an that copies bear this notice an the full citation on the first page. Copyrights for components of this work owne by others than the author(s) must be honore. bstracting with creit is permitte. To copy otherwise, or republish, to post on servers or to reistribute to lists, requires prior specific permission an/or a fee. Request permissions from Permissions@acm.org. CGO 4, February 5 9 4, Orlano, FL, US Copyright is hel by the owner/author(s). Publication rights license to CM. CM /4/...$5.., 5, 8, 9,,, 3, 7, 8, 3, 3, 39, 37], event logging an error reporting [45, 5, 35], testing [, 6, 4, 38], anomaly etection [, 6, 44], performance optimization [9], an profiling [, 33, 36, 34, 3, 43]. For example, system call event logging is critical for the analysis an iagnosis of the program execution in many prouction systems. Simply logging the system call events fails to recor how program components interact when a system call is issue, while recoring calling contexts woul be very informative. Take profiling as another example; context sensitive profiling is powerful as it associates ata such as execution frequencies, overhea an object life time with calling contexts, an thus provies precise information for program unerstaning an optimization [8]. It is straightforwar to obtain calling contexts through stack walking, which, however, is expensive [6, 3]. few encoing techniques, which represent a calling context using one or more integers, have been propose to track calling contexts continuously with low overhea. Bon an McKinley [4] propose a technique, probabilistic calling context (PCC), that computes a probabilistically unique integer ID, essentially a hash value, for each calling context. lthough PCC encoing is efficient an compact, it oes not provie ecoing, which is essential to applications that require inspecting an unerstaning contexts, such as ebugging, error reporting an event logging [4]. In orer to enable the ecoing capability, Breacrumbs was built on PCC [3]. It collects aitional ynamic information to assist ecoing. Specifically, it recors encoing values at relatively col call sites. Depening on the threshol efining the hot coe, the technique either incurs large overhea or sacrifices ecoing accuracy an reliability. Besies, the ecoing has to be offline because it involves expensive computation (their evaluation use the limit of 5 secons) for recovering one context. Computing calling contexts with low overhea an precise an reliable ecoing capability is challenging. Recent progress was mae by Sumner et al. [4], who propose precise calling context encoing (PCCE) evolve from path profiling []. This technique iterates every possible calling context through static analysis an represents each using a unique encoing uring runtime, so the context can be recovere precisely from the encoing. However, as pointe out in previous research [3], PCCE woul not work in the presence of virtual methos an ynamic class loaing. Besies, hanling large-scale software is a challenge to this technique, as it lacks a scalable solution to the encoing for a large number of calling contexts. More iscussion about PCCE is in Section. The challenges limit the application of the encoing technique in a large range of scenarios, as a lot of software nowaays is written in object-oriente languages with ynamically loae components an a large number of calling contexts. 9

2 This paper presents DeltaPath, an efficient calling context encoing technique with a precise ecoing capability an the support for both proceural an object-oriente programs. Similar to PCCE, the technique leverages the Ball-Larus path profiling algorithm []. It obtains a unique encoing for each context at runtime by summing up the aition values of the call sites forming the context. ition values are compute using our encoing algorithm base on static analysis of the target program, then an aition value an the aition operation are assigne to each call site through instrumentation. Unlike PCCE, which assumes small or meium-scale software without object-oriente programming or ynamically loae components, DeltaPath oes not have those limitations. It supports both proceural an object-oriente programming, allows ynamic class loaing, an works with largescale software. DeltaPath resolves the limitations base on the following insights an ieas. The aition value of a call site is relate to the number of calling contexts ening at it, while a big program usually contains a very large number of calling contexts, such that aition values may go beyon, i.e., overflow, the encoing integer. To avoi integer overflows, it is very inefficient to represent an operate on aition values using some class (e.g., BigInteger in Java). The insight is that a long calling context can be ivie into several shorter pieces, each can be encoe using an integer. The DeltaPath encoing algorithm automatically fins a small number of functions acting as such iviers for the whole program, avoiing integer overflows systematically with low overhea. In aition, a virtual function call can be ispatche to many possible functions, while PCCE computes an aition value for each target. It is infeasible to insert a bulky switch statement at each virtual function call site an execute it to choose the aition value, for virtual function call sites are ubiquitous an frequently invoke in object-oriente (OO) programs. Our encoing algorithm computes a single aition value for one call site to minimize the coe cache pressure an execution slowown. Moreover, ynamically loae classes introuce calling contexts that are not consiere uring static analysis. call path tracking technique is esigne to etect unexpecte calling contexts an keep the encoing correct. We implemente DeltaPath an performe experiments with a variety of Java programs. Our evaluation results show that its performance is comparable with that of PCC [4], which is a highly efficient an the state of the art calling context encoing technique capable of working in the presence of object-oriente programming an ynamic class loaing. Compare to PCC, DeltaPath introuces precise an reliable ecoing. We mae the following contributions. We propose a new precise calling context encoing technique that supports both proceural an OO programs. Encoing space pressure is aresse systematically. It thus allows the encoing technique to be applie to large-scale software. Dynamic class loaing is hanle properly using the call path tracking technique. We implemente DeltaPath an evaluate it on a variety of Java programs. The efficiency of DeltaPath is comparable with that of PCC while it provies precise an reliable ecoing. The rest of this paper is organize as follows. Section presents the encoing backgroun. Section 3 presents DeltaPath. Section 4 iscusses several practical issues. The implementation etails an evaluation results are presente in Section 5 an Section 6, respec- context B C BD CD BDE CDE BD'E CD'E BDF CDF CF... ID 3 4 B Figure : Example for PCCE encoing. Ege annotations are aition values; an aition value +c means ID+=c is execute before the invocation an ID-=c is execute after; the superscript on D (D ) isambiguates two call sites in D both invoking E. tively. The relate work is iscusse in Section 7, an the future work in Section 8. The paper is conclue in Section 9.. BCKGROUND Ball an Larus propose an efficient algorithm (referre to as the BL algorithm) to encoe intra-proceural control flow paths []. Each of the paths leaing from the entry of a function to the en of it obtains a unique encoing. The algorithm has become canonical in control flow encoing an path profiling. PCCE [4, 4] leverages the BL algorithm an aapts it to encoing calling contexts, which are essentially inter-proceural paths in a call graph. PCCE encoes the calling context using a small number of integer ientifiers (IDs), ieally one. It instruments function calls with aitions to an integer ID such that the calling context ening at any program point can be uniquely represente by the ID along with the program counter of the point. The algorithm calculating aition values consists of two steps of analysis of the target program s call graph. First, it computes the number of calling-contexts (NC) of each noe in the call graph by summing the NC of each of the noes preecessors (the NC of main is ). Secon, with respect to each noe, the aition value for the first ege is, an for each of the rest eges the aition value is the sum of the NCs of the preecessors appeare in the previously processe eges. Consier the call graph in Figure. The annotation of each noe inicates its NC. D s NC=, for example, is the sum of the NCs of B an C, enoting there are two possible contexts when D is invoke. The number along each ege is the aition value. Some eges o not have such numbers, meaning the aition values are. CG s aition value is calculate after EG an FG, thus it is the sum (7) of the NC of E (4) an that of F (3). Take the context CFG as an example for encoing, the ID increases along CF an FG, respectively, so the result is 6. The table in Figure shows the encoings of other calling contexts. Some contexts have the same ID values, for example, B an C. It is fine because an encoing is represente by both the ID an the ening noe. Given an encoing, we can precisely recover the calling context from bottom to top. Consier the ID 6 obtaine at noe G, for example, the ege whose aition value is the greatest but not greater than the ID value is taken, that is, FG. We then jump to noe F meanwhile ecrease the ID by the aition value, 4, for FG. The E + D + + F +4 C 3 +7 G 8

3 main p p p m V [ p ] V[ p ] V p ] n [ m V[ pi ] ICC[ pi ] V[ pi ] for i=...m ICC[ n] ICC[ pm ] V [ pm ] Figure : Intuition of our algorithm. ecoing continues with F an ID value, from which we can recover eges CF an C the same way. If cycles exist in the call graph, which implies there are recursions in the program, a recursive call path is ivie into acyclic sub-paths, each of which is encoe separately, such that a stack of IDs is use to represent a call path of recursions. We refer the reaers to [4] for more etails. Since recursions are hanle in the same way by our technique, we omit its iscussion an assume acyclic call graphs in the rest of the paper. s a first step towars calling context encoing that allows precise ecoing, PCCE works uner restrictive conitions: programs in proceural languages without ynamically loae components or high encoing space pressure. This has limite the application of PCCE in a variety of scenarios. Our goal is to eliver a calling context encoing technique without those limitations. 3. DELTPTH ENCODING This section presents DeltaPath. Section 3. covers encoing in the presence of virtual function calls, while Section 3. consiers encoing space pressure along with object-oriente programming an escribes a systematic solution. n... n 3. Encoing for Object-oriente Programs With object-oriente programming a function call can be ispatche to multiple targets. Such polymorphism complicates encoing, as a call site may have conflicte aition values ue to the multiple ispatch targets. For example, assume eges D E an DF in Figure are ue to the same virtual function call site. ccoring to the PCCE algorithm, the aition values for ege D E an DF are an, respectively. It is straightforwar an tempting to choose the aition value base on the ynamic ispatch result using a switch statement, which, however, will significantly increase the coe to be inserte an slow own the program execution, as virtual function call sites are massive an frequently invoke in OO programs. In orer to minimize the encoing overhea, our goal is to calculate a single aition value for each call site. However, aition values generate by the PCCE algorithm o not work for the purpose. For example, if is use as the single aition value in the case above, the calling contexts BDF an CF will both be encoe to, which violates the principle of a unique encoing for each ifferent context. The computation of the aition values thus requires a new encoing algorithm. The upper boun of the encoing space representing the calling contexts ening at a noe is calle its inflate calling-context count (ICC). That is, the calling contexts of a noe n are encoe usp... Step : a max{ CV[ n ],..., CV[ nk ]} Step : CV [ n ] CV [ nk ] ICC[ p] a Figure 3: Intuition of encoing with ynamic ispatch. virtual function call in p can be ispatche to multiple methos n, n,..., n k. The caniate aition value of a noe n i, enote by CV [n i ], is initially, an it is upate each time the aition value of an ege leaing to n i is calculate. We process the call in two steps. First, the aition value a = max{cv [n ],...,CV [n k ]} is obtaine; secon, CV [n i ] is upate as ICC[p] + a, for i =,...,k. The upate CV [n i ] is then use to calculate the aition value for the next incoming ege of n i. ing the integers in [,ICC[n]). The basic iea of our algorithm is to ensure the invariant that for any given noe, its encoing space is ivie into isjoint sub-ranges, with each sub-range encoing calling contexts along one incoming ege of the noe. Figure illustrates the intuition behin the iea. ssume for a given noe n, it has totally m incoming eges. The aition value along p i n is enote by V [p i ]. The invariant is kept if the following conitions are satisfie: () V [p ] an V [p i ] ICC[p i ] + V [p i ] for i =,...,m, an () ICC[main] = an ICC[n] ICC[p m ] + V [p m ] if n main. It can be prove using inuction. The encoing ID is initialize as at the main function, an ICC[main] = ; the encoing ID is in [,ICC[main]), thus the invariant is satisfie at main. ssume all the preecessors of n satisfy the invariant. The calling contexts ening at n are encoe into m isjoint sub-ranges: [V [p ],ICC[p ] + V [p ]) encoes the contexts along ege p n, an generally, [V [p i ],ICC[p i ] + V [p i ]), for i =,...,m, encoes the contexts along p i n, where V [p i ] ICC[p i ] + V [p i ], that is, V [p i ] the upper boun of the sub-range encoing the contexts along p i n. Plus, accoring to conition (), all the sub-ranges fall in the range [,ICC[n]). Figure 3 illustrates how ICCs an aition values are compute satisfying the conitions above. The virtual function call insie p can be ispatche to n,n,...,n k. Each noe n i is associate with a variable CV [n i ], enoting the caniate aition value that shoul be consiere when computing the aition value for the next incoming ege of n i. CV [n i ] is initially an keeps upating along with the calculation of the aition value. In this case, after the aition value for the call site is assigne as a = max{cv [n ],...,CV [n k ]}, the caniate aition values are upate as CV [n i ] = ICC[p] + a. Later the upate CV [n i ] is use to calculate the aition value for the next incoming ege of n i. By computing the aition value of a call site as the maximum value among the caniate aition values of the noes that the call site can be ispatche to an upating the CVs using the chosen aition value, conition () escribe above is satisfie. fter the aition value for the last incoming ege of a noe n is calculate an n aition value is associate with a call site, so more precisely it shoul be enote as V [p i n]; we use V [p i ] instea for the sake of conciseness. n k

4 lgorithm Encoing with ynamic ispatch : function ENCODING(N, E) : ICC[main] 3: for n N o 4: CV [n] 5: for n N in topological orer o 6: for e = p,n,l of the incoming eges of n o 7: cs = p,l 8: if cs processesites then 9: continue : processesites processesites {cs} : V [cs] CalculateIncrement(cs) : if n main then 3: ICC[n] CV [n] 4: function CLCULTEINCREMENT(cs = p, l ) 5: a 6: for each e = p,n,l ispatche from cs o 7: if CV [n] > a then 8: a CV [n] 9: for each e = p,n,l ispatche from cs o : CV [n] ICC[p] + a : return a CV [n] is upate for the last time, ICC[n] is assigne as CV [n], satisfying conition (). lgorithm shows the encoing algorithm. The input of the algorithm is the call graph of the target program, CG = N,E, where N is a set of noes with each representing a function an E a set of irecte eges. Each call ege e E is a triple n,m,l where n,m N, are the caller an callee, respectively, an n,l is a call site potentially invoking m. In Java, for example, l is the byte coe inex of the call site in n. call ege in our algorithm is moele as a triple instea of a caller an callee pair in orer to istinguish multiple call sites in the caller that may invoke the same callee. In the encoing examples below we omit l an simply use nm to enote an ege for the sake of simplicity, though. In the beginning, ICC[main] is set to (Line ), an the CV of each noe is initialize to be (Line 3 4). Then the noes are visite in a topological orer; a noe is visite after all its preecessors have been visite. For each non-main noe n, ICC[n] is assigne (Line 3) after all its incoming eges are processe (Line 6 ). For each incoming ege of the noe being visite, the algorithm ientifies its call site (Line 7), an etermines whether it has alreay been processe by searching the call site in processesites, which stores all the call sites that have been processe; as multiple eges can be ue to one call site, this ensures that the algorithm processes each call site only once. Function CLCULTEINCREMENT calculates the aition value for the call site an then upates the CV of each of the noes that the call site can be ispatche to. Due to the topological traversal orer, when noe n is processe, the ICC values of its preecessor noes are alreay assigne, so the upate of CV [n] can refer to ICC[p] without problems (Line ). Consier the example in Figure 4. ICC[] is set to be (Line ), an all the CVs are initialize as (Line 3 4). Upon the visit of B, the aition value for B is CV [B] = (Line 8), then CV [B] = ICC[]+ = (Line ) an ICC[B] = CV [B] = (Line 3). Noe C is processe similarly. Then the topological traversal reaches D. BD is first processe, so CV [D] = is use as the aition value. Next, CV [D] is upate as (= ICC[B] + ), which is then use as the aition value for the next incoming ege CD, an CV [D] is upate as (= ICC[C] + ) (Line ). s CD is the last incoming context B C BD CD BDE CDE BD'E CD'E BDF CDF CF... ID B E Figure 4: Example for encoing with ynamic ispatch. The superscript on D (D ) isambiguates two call sites in D both invoking E. D E an DF are ue to a virtual function call in D, an CF an CG are ue to a virtual function call in C. Noe annotations are ICC values. ege of D, ICC[D] is assigne as (= CV [D]) (Line 3). The traversal then visits noe E. fter DE is processe, CV [E] = ICC[D]+ = (Line ). Next, the last incoming ege of E, D E, is processe. Note that the two eges D E an DF are ue to the same call site, an CV [F] =. The aition value for this call site is hence calculate as max{cv [E],CV [F]} = (Lines 6 8). Then CV [E] an CV [F] are upate as 4(= ICC[D] + ) (Lines 9 ). fter that, ICC[E] is upate as CV [E] = 4 (Line 3). Other noes are similarly processe following the algorithm. In the en, each call site in Figure 4 obtains a single aition value, while each calling context can be encoe uniquely. In orer to accommoate virtual function calls, the algorithm inflates the number of calling contexts (NC) of a noe an uses it as the upper boun of its encoing space, which is thus terme as the inflate calling-context count (ICC). For example, NC[F] = 3, while ICC[F] = 5; the gap between the two enables a uniform aition value for the virtual call site leaing to eges D E an DF. It is interesting to note that when there is no virtual function in a program, ICC[n] = NC[n] for any given noe n, which is the case in the PCCE encoing for proceural programs. The ecoing remains the same (Section ), so it is omitte. 3. Encoing for Large-scale Object-oriente Programs In both PCCE an lgorithm, the aition value at a call site reflects the number of calling contexts ening at the call site, while the number of calling contexts grows exponentially with the size of a call graph. Thus the computation of aition values uring static analysis can incur integer overflows. Moreover, runtime integer overflows may also occur when computing the encoing ID by summing up aition values. The runtime integer overflows can be easily resolve espite some cost: before each aition operation, the encoing juges whether an integer overflow can occur; if so, the current ID value is pushe onto a stack, an the ID is reset to before the encoing continues. The encoing result is then represente as a stack of IDs along with the current ID value. The integer overflow problem uring static analysis is more challenging. Implementation using some big integer classes, for example, Java library provies the BigInteger class supporting representation of huge integers, is straightforwar but woul be very inefficient, as aition values are represente as objects an uring runtime each aition operation becomes a function call. Our goal is to completely avoi the + D F +9 C 5 +4 G 4

5 runtime integer overflow an resolve the integer overflow uring static analysis without using big integer classes. While PCCE achieves this goal by pruning eges uring static analysis to ensure that the resultant call graph can be encoe by a single integer, the technique is not scalable for encoing largesize programs, as massive eges at the eep portion of the call graph woul be prune an the prune eges are hanle at a relatively high runtime cost the same way a runtime integer overflow is processe as aforementione. We aim at a scalable an efficient solution to the integer overflow problem. The observation is that so far all calling contexts begin at the main function, such that the encoing space keeps growing when encoing those calling contexts ening at the eep portion of a call graph. So instea of encoing a calling context as a whole, we ivie it into pieces, each of which can be encoe using an integer without overflows; it implies that each aition value can be represente by an integer, since the encoing value of each piece is the sum of the aition values within the piece. We thus esign an avance version of the encoing algorithm, which chooses a set of anchor noes iviing all long calling contexts in a program into shorter pieces. Each piece begins at an anchor noe an is encoe relative to it. During runtime the encoing maintains a stack. When the program invokes an anchor noe p, the current encoing ID value along with the anchor noe s ientifier is pushe onto the stack, then the ID is reset to an the encoing continues. When the invocation of p returns, the ID is recovere with the poppe ID value. In this way the previously global encoing space pressure is istribute along anchor noes, an each calling context piece can be encoe separately an locally. The anchor noes virtually act as barriers that keep the encoing space pressure from flowing ownstream along the call graph. There are two challenges to be resolve when esigning the algorithm. First, it nees to fin the anchor noes. Secon, given a call site, there exist multiple calling context pieces all reaching the call site while starting from ifferent anchor noes; hence, multiple aition values for the call site may be obtaine ue to the encoing relative to ifferent anchor noes. We revise the static analysis in lgorithm to resolve the two challenges, as shown in lgorithm. It automatically picks anchor noes. Initially only the main noe is in the anchor noe set n (Line ). Whenever an integer overflow occurs while processing an ege p,n,l, p is ae into the set of anchor noes n (Line 5) an the static analysis is rerun (Line 6). In orer to cutting calling contexts correctly, function IDENTI- FYTERRITORIES first walks the territory of each anchor noe. Specifically for each anchor it fins out the noes an eges that can be reache through a boune epth-first search, which starts the traversal from the anchor noe an retreats at other anchor noes; those anchor noes form the bounary of the territory. From the noes an eges in each territory we erive nanchors[n] an eanchors[e], which represent the anchor noes that can reach noe n an ege e, respectively. The territories of anchor noes overlap, which explains the reason behin the secon challenge. In orer to resolve it, the caniate aition values (CV ) an the inflate calling-context counts (ICC) of a noe are extene to two-imensional arrays with the first inex still representing the noe an the secon an anchor noe, taking into account of multiple anchor noes that can reach the noe. For example, CV [n][r] enotes the caniate aition value that shoul be consiere when processing the next incoming ege e of n if an an only if r eanchors[e]. The aition value for a given call site is etermine by the max- lgorithm Encoing resolving encoing space explosion. : function ENCODING(N, E) : n {main} 3: again: Ienti f yterritories(n, E, n) 4: for n N o 5: for r nanchors[n] o 6: CV [n][r] 7: for n N in topological orer o 8: for e = p,n,l of the incoming eges of n o 9: cs = p,l : if cs processesites then : continue : processesites processesites {cs} 3: V [cs] CalculateIncrement(cs) 4: if V [cs] =- then // Overflow etecte. 5: n n {p} 6: goto again // Restart the encoing. 7: if n / n then 8: for r nanchors[n] o 9: ICC[n][r] CV [n][r] : else : ICC[n][n] : function IDENTIFYTERRITORIES(N, E, n) 3: for r n o 4: visiten, visitee BouneDFS(r) 5: for n visiten o 6: nanchors[n] nanchors[n] {r} 7: for e visitee o 8: eanchors[e] eanchors[e] {r} 9: function CLCULTEINCREMENT(cs = p, l ) 3: a 3: for each e = p,n,l ispatche from cs o 3: ssume eanchors[e] = {r,...,r k } 33: a max{cv [n][r ],...,CV [n][r k ]} 34: if a > a then 35: a a 36: for each e = p,n,l ispatche from cs o 37: for r eanchors[e] o 38: CV [n][r] ICC[p][r] + a 39: if CV [n][r] incurs an integer overflow then 4: return - 4: return a imum of the caniate aition values of all its possible ispatch target noes to aress the ynamic ispatch (Line 3 35). ll the anchor noes that can reach each of the possible ispatch eges are taken into account, so that the territory conflict is resolve. fter a noe s incoming eges are processe (Line 8 6), the ICC values are upate. For a non-anchor noe n, the ICC relative to each anchor in nanchors[n] is upate (Lines 8 9), while the ICC of each anchor noe is set to (Line ), which is equivalent with ICC[main] in lgorithm. The encoing algorithm is correct because the invariant escribe in Section 3. is satisfie. Specifically, the encoe ID obtaine at n is in the range of [,ICC[n][top]), where top is the top anchor noe save on the stack. It is notable that the runtime overflow checks are not neee, as the algorithm ensures that there is no integer overflow for ICC values (Line 9), which are the upper bouns of the encoing spaces. Figure 5 shows an example of encoing involving two anchor noes C an D. Consier the encoing of the calling context CFG. Ege CF is first processe. Eges CF an CG are ue to the same 3

6 context DE D'E DF CF DEG D'EG DFG CFG CG stack c c c ID 3 ICC[D][D]= E ICC[E][D]= + D + F + G C ICC[C][C]= ICC[F][C]= ICC[F][D]= ICC[G][C]=3 ICC[G][D]=4 Figure 5: Example for encoing in large programs. C an D are anchor noes. The superscript on D (D ) isambiguates two call sites in D both invoking E. D E an DF are ue to a virtual function call in D, an CF an CG are ue to a virtual function call in C. The annotation of a noe enotes the ICC values of the noe relative to anchor noes; for example, ICC[E][D] = means the ICC of E relative to anchor D is. stack is use to store the anchor noe ientifiers an the ID values when invoking them. The encoing of a call path CFG, for example, is represente by c on the stack, where c contains anchor C s ientifier an the encoing ID value when C is invoke, along with the encoing ID value, which is the sum of aition values of CF an FG. virtual call site. s CV [F][C] an CV [G][C] are initially both (Line 4 6), the aition value for the call site is thus calculate as max{cv [F][C],CV [G][C]} = (Line 33). Then CV [F][C] an CV [G][C] are upate as ICC[C][C]+a = (Line 38). The aition value for the virtual function call in D are calculate similarly. fter DE, D E an DF are processe, now focus on noe G. CG is alreay processe an the relate call site is inclue in processesites (Line ) ue to the ynamic ispatch at C. EG is processe next with aition value. CV [G][D] = ICC[E][D] + = (Line 38), an CV [G][C] is still, so max{cv [G][D],CV [G][C]} = is use as the aition value for FG (Line 33). For ecoing, we first recover the eepest piece of the calling context accoring to the current ID an the anchor noe on the stack top. Then pop the anchor noe an the ID to continue ecoing the next piece of the calling context. The process repeats until the stack is empty. Given the ID obtaine at G an the anchor noe C on stack stop, we recover a call path CFG. Then anchor noe C an the save ID are poppe from the stack to continue ecoing the next piece of the calling context. 4. PRCTICL ISSUES 4. Dynamic Class Loaing So far we assume a complete call graph for static analysis. However, in reality the ynamic characteristics of a program can rener this assumption invali. Dynamic class loaing, which is common in Java for example, makes the generation of a complete call graph ahea of runtime unresolvable. s a result, relative to a call graph generate for static analysis, ynamically loae classes introuce unexpecte call paths (UCPs). Figure 6 shows such an example, where noe X an its incoming an outgoing eges are missing uring static analysis stage ue to ynamic class loaing. The context BXE contains a UCP B X E; its encoing ID value is. However, if we ecoe it, an incorrect calling context CE is obtaine. This kin of UCPs is hazarous as they lea to incorrect encoing an ecoing. Consier another context BXD, which contains a UCP B X D, an BD B X C D E X missing noe missing ege Figure 6: Incomplete call graph. BD an BX are ue to the same virtual function call, where X is from a ynamically loae class unexpecte by static analysis. an BX are ue to the same virtual call site. Its encoing ID can be ecoe to BD. lthough the ecoe result oes not contain the ynamically loae noe X, it inclues all the other noes in the right orer. We thus consier the encoing correct an this kin of UCPs benign. In orer to keep the encoing correct in the presence of ynamic class loaing, we nee to etect hazarous UCPs an respon accoringly. Inspire by the control flow integrity (CFI) technique [7], we propose a call path tracking technique that checks call transfers, an apply it to etect hazarous UCPs. The technique consists of static analysis an runtime enforcement. In the beginning of the static analysis each noe in the call graph is in a separate set. The analysis then traverses the call graph. For each call site, it fins out the ispatch target noes, an merge the sets that contain those noes. In the en each of the sets left is assigne with a unique set ientifier (SID), an noes in the same set share the SID. In runtime before a call is issue, the expecte callee noe s SID along with the call site an the current encoing ID value is save. t the entry point of each statically loae function, the expecte SID is compare against the function s SID. If they are not equal, a hazarous UCP is etecte. Consier the UCP B X E for example. E is able to etect it as hazarous since the expecte SID set by B is not equal to E s SID. Once a hazarous UCP is etecte, the encoing respons as follows. First, the expecte SID, the call site, the encoing ID, an the current function s ientifier (E, in this case) are pushe onto stack. The encoing ID is reset to zero, an the encoing continues. t the exit point of E, the pushe information is poppe to balance the stack an recover the encoing variables. It is easy to see that the technique allows benign UCPs; for example, in the case of B X D, the expecte SID set by B is equal to D s SID. During ecoing, whenever the ID is an the current function s ientifier is equal to the one on the stack top, it pops the information from the stack to continue the ecoing. Recall that the information pushe on the stack can be ue to invocation to an anchor noe, a hazarous UCP or a recursion. n extra integer can be use to inicate the information type in each stack element. lternative solutions exist. For example, we can maintain a variable representing the epth of invocations of ynamically loae functions by incrementing an ecrementing the variable at each ynamically loae function s entry an exit points, respectively. Such that each statically loae function etects a UCP if the epth is not zero. The reset an recover of the epth variable using a stack are require when statically an ynamically loae function calls interleave. The main engineering avantage of the call path track- Our implementation borrows two bits from the metho ientifier integer to ientify the type of a push, so it oes not nee an extra integer. 4

7 JDK B E D Figure 7: JDK library classes are exclue from encoing. ing solution is that instrumentation of ynamically loae classes is completely avoie, while in practice it is sometimes ifficult or infeasible to instrument them. For example, if they are loae by custom class loaers, the instrumentation component usually nees to moify the custom loaers; an the security policy of some thirparty components oes not allow instrumentation. 4. Flexible Encoing It is esirable that we can perform a selective encoing for the components of interest in orer to reuce encoing overhea. For example, the JVM an library methos are usually of less interest compare to application ones, as JVM implementation an Java libraries are often consiere black boxes [3]. When recovering calling contexts, users may want to obtain all application methos, while JVM an library methos can be ignore. PCC, for example, reefines that a calling context consists of application functions only an hence encoes application functions solely [4, 3]. Leveraging the call path tracking technique we can skip encoing components of no interest the same way we hanle ynamically loae classes to achieve a more efficient an flexible encoing. s illustrate in Figure 7, JDK methos an the associate eges (enote by ashe circles an lines) are of no interest an exclue from the call graph when running lgorithm, an the encoing is performe only on application methos. During runtime we rely on the call path tracking to etect unexpecte UCPs an encoe correctly. Consier the calling context BDFG for example. only ege B is encoe, while eges BD, DF an FG are skippe an hence no overhea is incurre. G etects the hazarous UCP at its entry point, so it respons as iscusse in Section 4. an continues the encoing. Finally, BG, which consists of application methos only, can be recovere from the encoing result. It illustrates another avantage of the call path tracking solution over the epth tracking one: no encoing or UCP etection coe is execute insie the exclue components, such that the more components are exclue from encoing, the less overhea is incurre by encoing. 5. IMPLEMENTTION The implementation of DeltaPath consists of static analysis an a runtime component. The input of the static analysis is the bytecoe of the target program. Besies, the user can optionally specify classes of interest for selective encoing. We use WL [5] to generate the call graph base on a context insensitive control flow analysis, -CF [4]. lgorithm is then run to compute aition values. The runtime component is implemente as a Java agent []. During runtime it hooks the loaing of each class an instruments the F C G call sites base on the static analysis results using Javassist [7]. Our implementation oes not require the source coe. It is not epenent on a specific Java Virtual Machine (JVM); it can work with any JVM compatible with JDK EVLUTION In this section we present the effectiveness an efficiency our encoing technique. We use the SPECjvm8 benchmark suite [4], which contains a variety of Java programs incluing compilers (compiler.*), cryptography applications (crypto.*), scientific computation (scimark.*), an xml applications (xml.*). ll experiments were performe on a machine with an Intel Core i7 CPU an 8GB RM. We use Ubuntu.4 an Sun JDK.6..4 on this machine. 6. Static Program Characteristics In SPECjvm a common ispatcher is use in all benchmarks to configure the workloa an collect results. It is exclue from the encoing so that the statistics properly represent the characteristics of iniviual benchmark programs. The static analysis is performe in two encoing settings. One is to encoe functions of both JDK an application classes (encoingall) an the other encoes applications functions only (encoingapplication). The encoing-application setting correspons to the scenario that the user is only intereste in application functions in a calling context. Base on the call path tracking technique, Delta- Path provies the flexibility of encoing only the components of interest. Table presents the static characteristics of the benchmark programs with the two settings: encoing-all an encoing-application. For each program, the table etails the program size in bytes (size), an for each encoing setting, the number of noes (noes) an eges (eges) in the call graph, the number of call sites to be instrumente (CS), the number of virtual function call sites (VCS), an the static maximum encoing ID value (max. ID) which represents the encoing space neee. With the encoing-all setting, the majority of the benchmarks (3 out of 5) nee an encoing space larger than a million. Two benchmarks (sunflow an xml.valiation) in particular require huge encoing spaces with numbers shown in bol, such that even a 64-bit integer is insufficient for encoing. lgorithm resolves the integer overflow problem automatically by aing 6 an 7 anchor noes for sunflow an xml.valiation, respectively. With the encoing-application setting, all programs nee much smaller encoing spaces. xml.transform benchmark nees a 64- bit integer for encoing, while the encoing space of each other benchmarks can fit into a 3-bit integer. In aition we observe that with the encoing-application setting the call graph an the number of instrumente call sites of each program are much smaller than with the encoing-all setting, which implies efficiency benefit ue to the encoing flexibility. 6. Performance Comparison We compare our work with the state of the art encoing technique, Probabilistic Calling Context (PCC) encoing [4], which is a purely runtime mechanism representing each calling context as an integer hash value. Similar to DeltaPath, PCC works with object-oriente programs. The original PCC was implemente as a moule insie Jikes RVM, which is a research JVM allowing internal optimization options. For example, Jikes RVM inlining information enables PCC to optimize the instrumentation by combining multiple encoing computations within inline functions into a single one. Its performance overhea is very low on Jikes RVM, 3% 5

8 program size encoing-all encoing application (bytes) noes eges CS VCS max. ID noes eges CS VCS max. ID compiler.compiler 4K e compiler.sunflow 85K e compress 59K e crypto.aes 33K e crypto.rsa 33K e crypto.signverify 35K e mpegauio 6K e scimark.fft.large 57K e scimark.lu.large 57K e scimark.monte_carlo 56K e scimark.sor.large 57K e scimark.sparse.large 57K e sunflow 458K e e6 xml.transform 75K e e xml.valiation 478K e Table : Static program characteristics (SPECjvm8). The maximum encoing ID values of sunflow an xml.valiation, shown in bol, are larger than the maximum value of a 64-bit integer (aroun.8e9), so the two benchmarks nee anchor noes. Figure 8: Execution spees applying PCC, DeltaPath without call path tracking (wo/cpt), an DeltaPath with call path tracking (w/cpt), respectively. The spee means the throughput (operations per minute) that reflects the rate at which the system was able to complete invocations of the workloa of that benchmark, an it is normalize against the native runtime. on average an 9% at most. In orer to have a hea-to-hea comparison on our platform, we implemente PCC as a Java agent as well. Therefore, such lowlevel optimizations are not performe. Note that this is not a limitation of our algorithm but rather ue to the implementation choice. If our scheme is implemente in Jikes RVM as the original PCC, both techniques can equally benefit from such low-level optimizations. In fact the composition of our encoing computations (simply aing up multiple aitions into one) is as easy as in PCC, an the call path tracking for the inline functions can also be one at compile time. The main focus of our experiments is to fin out whether our technique is comparable with PCC in terms of efficiency an effectiveness using the same implementation technology. s the original PCC work encoes application functions only, we aopt the encoing-application setting for DeltaPath to instrument the same set of functions. Figure 8 illustrates the normalize execution spee when our encoing technique an PCC are applie, respectively. We use the geometric mean to calculate the average slowown. Overall DeltaPath (without call path tracking) incurs 3.5% slowown on average with call path tracking introucing extra 6.79% slowown, while PCC incurs.5% higher overhea than DeltaPath (without call path tracking). For the majority of the benchmarks ( out of 5 benchmarks), DeltaPath with call path tracking incurs less than 6.5% overhea. In aition, both incur high overhea in a few benchmarks (compress, mpegauio, scimark.monte_carlo an sunflow), as they contain a few small hot functions; the overhea can be largely reuce if the optimization of combining instrumentations is performe for inline functions. The results show that DeltaPath is comparable with PCC in all benchmarks, which reflects the similarity of their runtime implementation: both instrument the same set of call sites with simple arithmetic operations. t a low cost, DeltaPath provies a reliable an precise ecoing capability, which is the most critical ifference between DeltaPath an PCC. In contrast, Breacrumbs [3], which is built on PCC with the purpose of proviing ecoing capability, either incurs almost % overhea for a very accurate ecoing, or sacrifices reliability an accuracy significantly even at a moerate cost (extra % overhea over PCC). 6.3 Dynamic Program Characteristics In orer to evaluate the effectiveness of DeltaPath an PCC, we collect the encoe calling contexts at the entry of the instrumente application functions. Table presents the statistics. It etails the total number of calling contexts collecte (total contexts), the maximum/average number of functions in a calling context (max. epth an avg. epth), the number of unique calling context encoings (unique contexts) collecte by both techniques. For DeltaPath we present aitional information about the encoing stack. The maximum/average epth of the the stack (max. epth an avg. epth), the maximum/average number of hazarous UCPs 6

9 collecte calling contexts PCC DeltaPath program total max. avg. unique unique max. avg. max. avg. max. contexts epth epth contexts contexts epth epth UCP UCP ID compiler.compiler compiler.sunflow compress crypto.aes crypto.rsa crypto.signverify mpegauio scimark.fft.large scimark.lu.large scimark.monte_carlo scimark.sor.large scimark.sparse.large sunflow xml.transform xml.valiation Table : Dynamic program characteristics (SPECjvm8). etecte per calling context (max. UCP an avg. UCP), an the maximum ynamic encoing ID (max. ID) are presente. DeltaPath represents each calling context using a stack. Ieally, the stack only contains one element recoring the entry noe; when the calling context contains recursions, anchor noes or hazarous UCPs, the epth increases. The maximum/average number of hazarous UCPs is not high, showing that hazarous UCPs are etecte in all benchmarks although they are infrequent. The average stack epth is 4.4 varying among the 5 benchmarks, compare to the original calling context epth (5..8). PCC uses only one integer to represent a calling context, which is more concise than DeltaPath. However, PCC collects fewer unique calling context encoings ue to hash collisions, implying that some calling contexts obtain ientical encoing results. Therefore, for applications that o not nee ecoing an allow occasional encoing collisions, such as test coverage an profiling, PCC is a better choice; however, for applications that require precise encoing or ecoing, DeltaPath is generally superior to PCC an Breacrumbs. 7. RELTED WORK Stack Walking. Stack walking is commonly use to obtain calling contexts in ebugging [] an error reporting [6, 3]. However, for applications that nee continuously capture calling contexts, it usually incurs excessive overhea. Dynamic Calling Context Tree. ynamic calling context tree (CCT) [8, 46] is a summary of calling contexts represente as a tree ata structure. Maintaining a complete CCT incurs large space an time overhea, while a CCT obtaine using sampling may miss contexts of interest. In contrast, calling context encoing approaches [4, 4, 4, 3] incluing our work provie concise representation of all calling contexts. Path Profiling. Ball an Larus evelope an algorithm to encoe intraproceural control flow paths []. Melski an Reps extene the work by capturing both inter- an intraproceural control flow [36]. It encoes the whole control flow transfer history leaing to a program point, but their approach oes not scale, because there exist too many possible paths for nontrivial programs, an the inserte coe is complex. Calling context encoing targets a succinct representation of active methos on the call stack with high efficiency. Precise Calling Context Encoing. Sumner et al. propose a precise calling context encoing technique that allows ecoing [4, 4]. However, it oes not work well with object-oriente programming, large-scale software, an ynamic class loaing. The challenges are resolve in our work. Probabilistic Calling Context. Probabilistic calling context [4] by Bon et al. provies an encoing technique that works with OO programs. The encoing result is essentially a hash value of the ientifiers of the functions in the calling context. Its avantages over DeltaPath are that the encoing result is consistently only one integer an it oes not nee static analysis. However, PCC oes not provie ecoing. Their later work aresses this shortcoming by combining call graph analysis an recoring of encoing results [3]. Due to the hash base encoing nature, it remains as a probabilistic approach in essence thus leaving the ecoing stage inaccurate, unreliable an/or expensive. In aition, its ecoing has to be offline. In prouction systems where precise an timely response is neee, eterministic an instant ecoing, which is supporte by DeltaPath, is a highly esire property. 8. FUTURE WORK Prune an Relative Encoing. In applications such as event logging an profiling where the functions of interest are known an the user only nees to capture the calling contexts of those target functions, we can perform a prune encoing by skipping encoing functions that o not invoke target functions irectly or inirectly. For example, in Figure 4, assume the user s interest is the calling contexts of functions D an F; with a simple static analysis we can fin E an G o not lea to the target functions, thus we can skip the encoing operations in E an G. This shoul boost the encoing efficiency for those applications. Moreover, we can exploit the relative positions of the target functions for encoing. For example, after the encoing result of BD is store, to encoe BDF, we simply represent the result as a reference to the previous encoing result an an encoing relative to D, that is, DF. It may reuce the storage space of encoing results. Hybri Encoing. PCC has a compact representation of the encoing result with a lack of precise ecoing capability, while DeltaPath complements PCC. So a hybri encoing approach combining PCC an DeltaPath can be interesting an useful. For example, we can perform profiling to establish the mapping between a set of calling contexts that are most frequently generate in a pro- 7

DELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING

DELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING DELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING Qiang Zeng*, Junghwan Rhee, Hui Zhang, Nipun Arora, Guofei Jiang, Peng Liu* NEC Laboratories America *Penn State University www.nec-labs.com Calling

More information

Chapter 9 Memory Management

Chapter 9 Memory Management Contents 1. Introuction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threas 6. CPU Scheuling 7. Process Synchronization 8. Dealocks 9. Memory Management 10.Virtual Memory

More information

Skyline Community Search in Multi-valued Networks

Skyline Community Search in Multi-valued Networks Syline Community Search in Multi-value Networs Rong-Hua Li Beijing Institute of Technology Beijing, China lironghuascut@gmail.com Jeffrey Xu Yu Chinese University of Hong Kong Hong Kong, China yu@se.cuh.eu.h

More information

Non-homogeneous Generalization in Privacy Preserving Data Publishing

Non-homogeneous Generalization in Privacy Preserving Data Publishing Non-homogeneous Generalization in Privacy Preserving Data Publishing W. K. Wong, Nios Mamoulis an Davi W. Cheung Department of Computer Science, The University of Hong Kong Pofulam Roa, Hong Kong {wwong2,nios,cheung}@cs.hu.h

More information

Computer Organization

Computer Organization Computer Organization Douglas Comer Computer Science Department Purue University 250 N. University Street West Lafayette, IN 47907-2066 http://www.cs.purue.eu/people/comer Copyright 2006. All rights reserve.

More information

Almost Disjunct Codes in Large Scale Multihop Wireless Network Media Access Control

Almost Disjunct Codes in Large Scale Multihop Wireless Network Media Access Control Almost Disjunct Coes in Large Scale Multihop Wireless Network Meia Access Control D. Charles Engelhart Anan Sivasubramaniam Penn. State University University Park PA 682 engelhar,anan @cse.psu.eu Abstract

More information

Online Appendix to: Generalizing Database Forensics

Online Appendix to: Generalizing Database Forensics Online Appenix to: Generalizing Database Forensics KYRIACOS E. PAVLOU an RICHARD T. SNODGRASS, University of Arizona This appenix presents a step-by-step iscussion of the forensic analysis protocol that

More information

Queueing Model and Optimization of Packet Dropping in Real-Time Wireless Sensor Networks

Queueing Model and Optimization of Packet Dropping in Real-Time Wireless Sensor Networks Queueing Moel an Optimization of Packet Dropping in Real-Time Wireless Sensor Networks Marc Aoun, Antonios Argyriou, Philips Research, Einhoven, 66AE, The Netherlans Department of Computer an Communication

More information

Coupling the User Interfaces of a Multiuser Program

Coupling the User Interfaces of a Multiuser Program Coupling the User Interfaces of a Multiuser Program PRASUN DEWAN University of North Carolina at Chapel Hill RAJIV CHOUDHARY Intel Corporation We have evelope a new moel for coupling the user-interfaces

More information

ACE: And/Or-parallel Copying-based Execution of Logic Programs

ACE: And/Or-parallel Copying-based Execution of Logic Programs ACE: An/Or-parallel Copying-base Execution of Logic Programs Gopal GuptaJ Manuel Hermenegilo* Enrico PontelliJ an Vítor Santos Costa' Abstract In this paper we present a novel execution moel for parallel

More information

On the Role of Multiply Sectioned Bayesian Networks to Cooperative Multiagent Systems

On the Role of Multiply Sectioned Bayesian Networks to Cooperative Multiagent Systems On the Role of Multiply Sectione Bayesian Networks to Cooperative Multiagent Systems Y. Xiang University of Guelph, Canaa, yxiang@cis.uoguelph.ca V. Lesser University of Massachusetts at Amherst, USA,

More information

A Plane Tracker for AEC-automation Applications

A Plane Tracker for AEC-automation Applications A Plane Tracker for AEC-automation Applications Chen Feng *, an Vineet R. Kamat Department of Civil an Environmental Engineering, University of Michigan, Ann Arbor, USA * Corresponing author (cforrest@umich.eu)

More information

Random Clustering for Multiple Sampling Units to Speed Up Run-time Sample Generation

Random Clustering for Multiple Sampling Units to Speed Up Run-time Sample Generation DEIM Forum 2018 I4-4 Abstract Ranom Clustering for Multiple Sampling Units to Spee Up Run-time Sample Generation uzuru OKAJIMA an Koichi MARUAMA NEC Solution Innovators, Lt. 1-18-7 Shinkiba, Koto-ku, Tokyo,

More information

AnyTraffic Labeled Routing

AnyTraffic Labeled Routing AnyTraffic Labele Routing Dimitri Papaimitriou 1, Pero Peroso 2, Davie Careglio 2 1 Alcatel-Lucent Bell, Antwerp, Belgium Email: imitri.papaimitriou@alcatel-lucent.com 2 Universitat Politècnica e Catalunya,

More information

Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed.

Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed. Preface Here are my online notes for my Calculus I course that I teach here at Lamar University. Despite the fact that these are my class notes, they shoul be accessible to anyone wanting to learn Calculus

More information

Frequent Pattern Mining. Frequent Item Set Mining. Overview. Frequent Item Set Mining: Motivation. Frequent Pattern Mining comprises

Frequent Pattern Mining. Frequent Item Set Mining. Overview. Frequent Item Set Mining: Motivation. Frequent Pattern Mining comprises verview Frequent Pattern Mining comprises Frequent Pattern Mining hristian Borgelt School of omputer Science University of Konstanz Universitätsstraße, Konstanz, Germany christian.borgelt@uni-konstanz.e

More information

Generalized Edge Coloring for Channel Assignment in Wireless Networks

Generalized Edge Coloring for Channel Assignment in Wireless Networks Generalize Ege Coloring for Channel Assignment in Wireless Networks Chun-Chen Hsu Institute of Information Science Acaemia Sinica Taipei, Taiwan Da-wei Wang Jan-Jan Wu Institute of Information Science

More information

Offloading Cellular Traffic through Opportunistic Communications: Analysis and Optimization

Offloading Cellular Traffic through Opportunistic Communications: Analysis and Optimization 1 Offloaing Cellular Traffic through Opportunistic Communications: Analysis an Optimization Vincenzo Sciancalepore, Domenico Giustiniano, Albert Banchs, Anreea Picu arxiv:1405.3548v1 [cs.ni] 14 May 24

More information

Generalized Edge Coloring for Channel Assignment in Wireless Networks

Generalized Edge Coloring for Channel Assignment in Wireless Networks TR-IIS-05-021 Generalize Ege Coloring for Channel Assignment in Wireless Networks Chun-Chen Hsu, Pangfeng Liu, Da-Wei Wang, Jan-Jan Wu December 2005 Technical Report No. TR-IIS-05-021 http://www.iis.sinica.eu.tw/lib/techreport/tr2005/tr05.html

More information

Message Transport With The User Datagram Protocol

Message Transport With The User Datagram Protocol Message Transport With The User Datagram Protocol User Datagram Protocol (UDP) Use During startup For VoIP an some vieo applications Accounts for less than 10% of Internet traffic Blocke by some ISPs Computer

More information

Divide-and-Conquer Algorithms

Divide-and-Conquer Algorithms Supplment to A Practical Guie to Data Structures an Algorithms Using Java Divie-an-Conquer Algorithms Sally A Golman an Kenneth J Golman Hanout Divie-an-conquer algorithms use the following three phases:

More information

Intensive Hypercube Communication: Prearranged Communication in Link-Bound Machines 1 2

Intensive Hypercube Communication: Prearranged Communication in Link-Bound Machines 1 2 This paper appears in J. of Parallel an Distribute Computing 10 (1990), pp. 167 181. Intensive Hypercube Communication: Prearrange Communication in Link-Boun Machines 1 2 Quentin F. Stout an Bruce Wagar

More information

Politehnica University of Timisoara Mobile Computing, Sensors Network and Embedded Systems Laboratory. Testing Techniques

Politehnica University of Timisoara Mobile Computing, Sensors Network and Embedded Systems Laboratory. Testing Techniques Politehnica University of Timisoara Mobile Computing, Sensors Network an Embee Systems Laboratory ing Techniques What is testing? ing is the process of emonstrating that errors are not present. The purpose

More information

An Algorithm for Building an Enterprise Network Topology Using Widespread Data Sources

An Algorithm for Building an Enterprise Network Topology Using Widespread Data Sources An Algorithm for Builing an Enterprise Network Topology Using Wiesprea Data Sources Anton Anreev, Iurii Bogoiavlenskii Petrozavosk State University Petrozavosk, Russia {anreev, ybgv}@cs.petrsu.ru Abstract

More information

d 3 d 4 d d d d d d d d d d d 1 d d d d d d

d 3 d 4 d d d d d d d d d d d 1 d d d d d d Proceeings of the IASTED International Conference Software Engineering an Applications (SEA') October 6-, 1, Scottsale, Arizona, USA AN OBJECT-ORIENTED APPROACH FOR MANAGING A NETWORK OF DATABASES Shu-Ching

More information

Preamble. Singly linked lists. Collaboration policy and academic integrity. Getting help

Preamble. Singly linked lists. Collaboration policy and academic integrity. Getting help CS2110 Spring 2016 Assignment A. Linke Lists Due on the CMS by: See the CMS 1 Preamble Linke Lists This assignment begins our iscussions of structures. In this assignment, you will implement a structure

More information

IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 31, NO. 4, APRIL

IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 31, NO. 4, APRIL IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 1, NO. 4, APRIL 01 74 Towar Efficient Distribute Algorithms for In-Network Binary Operator Tree Placement in Wireless Sensor Networks Zongqing Lu,

More information

Loop Scheduling and Partitions for Hiding Memory Latencies

Loop Scheduling and Partitions for Hiding Memory Latencies Loop Scheuling an Partitions for Hiing Memory Latencies Fei Chen Ewin Hsing-Mean Sha Dept. of Computer Science an Engineering University of Notre Dame Notre Dame, IN 46556 Email: fchen,esha @cse.n.eu Tel:

More information

Particle Swarm Optimization Based on Smoothing Approach for Solving a Class of Bi-Level Multiobjective Programming Problem

Particle Swarm Optimization Based on Smoothing Approach for Solving a Class of Bi-Level Multiobjective Programming Problem BULGARIAN ACADEMY OF SCIENCES CYBERNETICS AND INFORMATION TECHNOLOGIES Volume 17, No 3 Sofia 017 Print ISSN: 1311-970; Online ISSN: 1314-4081 DOI: 10.1515/cait-017-0030 Particle Swarm Optimization Base

More information

6.823 Computer System Architecture. Problem Set #3 Spring 2002

6.823 Computer System Architecture. Problem Set #3 Spring 2002 6.823 Computer System Architecture Problem Set #3 Spring 2002 Stuents are strongly encourage to collaborate in groups of up to three people. A group shoul han in only one copy of the solution to the problem

More information

Study of Network Optimization Method Based on ACL

Study of Network Optimization Method Based on ACL Available online at www.scienceirect.com Proceia Engineering 5 (20) 3959 3963 Avance in Control Engineering an Information Science Stuy of Network Optimization Metho Base on ACL Liu Zhian * Department

More information

Comparison of Methods for Increasing the Performance of a DUA Computation

Comparison of Methods for Increasing the Performance of a DUA Computation Comparison of Methos for Increasing the Performance of a DUA Computation Michael Behrisch, Daniel Krajzewicz, Peter Wagner an Yun-Pang Wang Institute of Transportation Systems, German Aerospace Center,

More information

PART 2. Organization Of An Operating System

PART 2. Organization Of An Operating System PART 2 Organization Of An Operating System CS 503 - PART 2 1 2010 Services An OS Supplies Support for concurrent execution Facilities for process synchronization Inter-process communication mechanisms

More information

Improving Spatial Reuse of IEEE Based Ad Hoc Networks

Improving Spatial Reuse of IEEE Based Ad Hoc Networks mproving Spatial Reuse of EEE 82.11 Base A Hoc Networks Fengji Ye, Su Yi an Biplab Sikar ECSE Department, Rensselaer Polytechnic nstitute Troy, NY 1218 Abstract n this paper, we evaluate an suggest methos

More information

Fast Fractal Image Compression using PSO Based Optimization Techniques

Fast Fractal Image Compression using PSO Based Optimization Techniques Fast Fractal Compression using PSO Base Optimization Techniques A.Krishnamoorthy Visiting faculty Department Of ECE University College of Engineering panruti rishpci89@gmail.com S.Buvaneswari Visiting

More information

Questions? Post on piazza, or Radhika (radhika at eecs.berkeley) or Sameer (sa at berkeley)!

Questions? Post on piazza, or  Radhika (radhika at eecs.berkeley) or Sameer (sa at berkeley)! EE122 Fall 2013 HW3 Instructions Recor your answers in a file calle hw3.pf. Make sure to write your name an SID at the top of your assignment. For each problem, clearly inicate your final answer, bol an

More information

On the Placement of Internet Taps in Wireless Neighborhood Networks

On the Placement of Internet Taps in Wireless Neighborhood Networks 1 On the Placement of Internet Taps in Wireless Neighborhoo Networks Lili Qiu, Ranveer Chanra, Kamal Jain, Mohamma Mahian Abstract Recently there has emerge a novel application of wireless technology that

More information

Distributed Line Graphs: A Universal Technique for Designing DHTs Based on Arbitrary Regular Graphs

Distributed Line Graphs: A Universal Technique for Designing DHTs Based on Arbitrary Regular Graphs IEEE TRANSACTIONS ON KNOWLEDE AND DATA ENINEERIN, MANUSCRIPT ID Distribute Line raphs: A Universal Technique for Designing DHTs Base on Arbitrary Regular raphs Yiming Zhang an Ling Liu, Senior Member,

More information

Pairwise alignment using shortest path algorithms, Gunnar Klau, November 29, 2005, 11:

Pairwise alignment using shortest path algorithms, Gunnar Klau, November 29, 2005, 11: airwise alignment using shortest path algorithms, Gunnar Klau, November 9,, : 3 3 airwise alignment using shortest path algorithms e will iscuss: it graph Dijkstra s algorithm algorithm (GDU) 3. References

More information

SURVIVABLE IP OVER WDM: GUARANTEEEING MINIMUM NETWORK BANDWIDTH

SURVIVABLE IP OVER WDM: GUARANTEEEING MINIMUM NETWORK BANDWIDTH SURVIVABLE IP OVER WDM: GUARANTEEEING MINIMUM NETWORK BANDWIDTH Galen H Sasaki Dept Elec Engg, U Hawaii 2540 Dole Street Honolul HI 96822 USA Ching-Fong Su Fuitsu Laboratories of America 595 Lawrence Expressway

More information

Coordinating Distributed Algorithms for Feature Extraction Offloading in Multi-Camera Visual Sensor Networks

Coordinating Distributed Algorithms for Feature Extraction Offloading in Multi-Camera Visual Sensor Networks Coorinating Distribute Algorithms for Feature Extraction Offloaing in Multi-Camera Visual Sensor Networks Emil Eriksson, György Dán, Viktoria Foor School of Electrical Engineering, KTH Royal Institute

More information

Learning Subproblem Complexities in Distributed Branch and Bound

Learning Subproblem Complexities in Distributed Branch and Bound Learning Subproblem Complexities in Distribute Branch an Boun Lars Otten Department of Computer Science University of California, Irvine lotten@ics.uci.eu Rina Dechter Department of Computer Science University

More information

Yet Another Parallel Hypothesis Search for Inverse Entailment Hiroyuki Nishiyama and Hayato Ohwada Faculty of Sci. and Tech. Tokyo University of Scien

Yet Another Parallel Hypothesis Search for Inverse Entailment Hiroyuki Nishiyama and Hayato Ohwada Faculty of Sci. and Tech. Tokyo University of Scien Yet Another Parallel Hypothesis Search for Inverse Entailment Hiroyuki Nishiyama an Hayato Ohwaa Faculty of Sci. an Tech. Tokyo University of Science, 2641 Yamazaki, Noa-shi, CHIBA, 278-8510, Japan hiroyuki@rs.noa.tus.ac.jp,

More information

Solution Representation for Job Shop Scheduling Problems in Ant Colony Optimisation

Solution Representation for Job Shop Scheduling Problems in Ant Colony Optimisation Solution Representation for Job Shop Scheuling Problems in Ant Colony Optimisation James Montgomery, Carole Faya 2, an Sana Petrovic 2 Faculty of Information & Communication Technologies, Swinburne University

More information

Indexing the Edges A simple and yet efficient approach to high-dimensional indexing

Indexing the Edges A simple and yet efficient approach to high-dimensional indexing Inexing the Eges A simple an yet efficient approach to high-imensional inexing Beng Chin Ooi Kian-Lee Tan Cui Yu Stephane Bressan Department of Computer Science National University of Singapore 3 Science

More information

CS 106 Winter 2016 Craig S. Kaplan. Module 01 Processing Recap. Topics

CS 106 Winter 2016 Craig S. Kaplan. Module 01 Processing Recap. Topics CS 106 Winter 2016 Craig S. Kaplan Moule 01 Processing Recap Topics The basic parts of speech in a Processing program Scope Review of syntax for classes an objects Reaings Your CS 105 notes Learning Processing,

More information

Secure Network Coding for Distributed Secret Sharing with Low Communication Cost

Secure Network Coding for Distributed Secret Sharing with Low Communication Cost Secure Network Coing for Distribute Secret Sharing with Low Communication Cost Nihar B. Shah, K. V. Rashmi an Kannan Ramchanran, Fellow, IEEE Abstract Shamir s (n,k) threshol secret sharing is an important

More information

BIJECTIONS FOR PLANAR MAPS WITH BOUNDARIES

BIJECTIONS FOR PLANAR MAPS WITH BOUNDARIES BIJECTIONS FOR PLANAR MAPS WITH BOUNDARIES OLIVIER BERNARDI AND ÉRIC FUSY Abstract. We present bijections for planar maps with bounaries. In particular, we obtain bijections for triangulations an quarangulations

More information

All-to-all Broadcast for Vehicular Networks Based on Coded Slotted ALOHA

All-to-all Broadcast for Vehicular Networks Based on Coded Slotted ALOHA Preprint, August 5, 2018. 1 All-to-all Broacast for Vehicular Networks Base on Coe Slotte ALOHA Mikhail Ivanov, Frerik Brännström, Alexanre Graell i Amat, an Petar Popovski Department of Signals an Systems,

More information

State Indexed Policy Search by Dynamic Programming. Abstract. 1. Introduction. 2. System parameterization. Charles DuHadway

State Indexed Policy Search by Dynamic Programming. Abstract. 1. Introduction. 2. System parameterization. Charles DuHadway State Inexe Policy Search by Dynamic Programming Charles DuHaway Yi Gu 5435537 503372 December 4, 2007 Abstract We consier the reinforcement learning problem of simultaneous trajectory-following an obstacle

More information

Backpressure-based Packet-by-Packet Adaptive Routing in Communication Networks

Backpressure-based Packet-by-Packet Adaptive Routing in Communication Networks 1 Backpressure-base Packet-by-Packet Aaptive Routing in Communication Networks Eleftheria Athanasopoulou, Loc Bui, Tianxiong Ji, R. Srikant, an Alexaner Stolyar Abstract Backpressure-base aaptive routing

More information

Disjoint Multipath Routing in Dual Homing Networks using Colored Trees

Disjoint Multipath Routing in Dual Homing Networks using Colored Trees Disjoint Multipath Routing in Dual Homing Networks using Colore Trees Preetha Thulasiraman, Srinivasan Ramasubramanian, an Marwan Krunz Department of Electrical an Computer Engineering University of Arizona,

More information

Verifying performance-based design objectives using assemblybased vulnerability

Verifying performance-based design objectives using assemblybased vulnerability Verying performance-base esign objectives using assemblybase vulnerability K.A. Porter Calornia Institute of Technology, Pasaena, Calornia, USA A.S. Kiremijian Stanfor University, Stanfor, Calornia, USA

More information

Overview. Operating Systems I. Simple Memory Management. Simple Memory Management. Multiprocessing w/fixed Partitions.

Overview. Operating Systems I. Simple Memory Management. Simple Memory Management. Multiprocessing w/fixed Partitions. Overview Operating Systems I Management Provie Services processes files Manage Devices processor memory isk Simple Management One process in memory, using it all each program nees I/O rivers until 96 I/O

More information

Image Segmentation using K-means clustering and Thresholding

Image Segmentation using K-means clustering and Thresholding Image Segmentation using Kmeans clustering an Thresholing Preeti Panwar 1, Girhar Gopal 2, Rakesh Kumar 3 1M.Tech Stuent, Department of Computer Science & Applications, Kurukshetra University, Kurukshetra,

More information

An Adaptive Routing Algorithm for Communication Networks using Back Pressure Technique

An Adaptive Routing Algorithm for Communication Networks using Back Pressure Technique International OPEN ACCESS Journal Of Moern Engineering Research (IJMER) An Aaptive Routing Algorithm for Communication Networks using Back Pressure Technique Khasimpeera Mohamme 1, K. Kalpana 2 1 M. Tech

More information

Probabilistic Medium Access Control for. Full-Duplex Networks with Half-Duplex Clients

Probabilistic Medium Access Control for. Full-Duplex Networks with Half-Duplex Clients Probabilistic Meium Access Control for 1 Full-Duplex Networks with Half-Duplex Clients arxiv:1608.08729v1 [cs.ni] 31 Aug 2016 Shih-Ying Chen, Ting-Feng Huang, Kate Ching-Ju Lin, Member, IEEE, Y.-W. Peter

More information

Recitation Caches and Blocking. 4 March 2019

Recitation Caches and Blocking. 4 March 2019 15-213 Recitation Caches an Blocking 4 March 2019 Agena Reminers Revisiting Cache Lab Caching Review Blocking to reuce cache misses Cache alignment Reminers Due Dates Cache Lab (Thursay 3/7) Miterm Exam

More information

MORA: a Movement-Based Routing Algorithm for Vehicle Ad Hoc Networks

MORA: a Movement-Based Routing Algorithm for Vehicle Ad Hoc Networks : a Movement-Base Routing Algorithm for Vehicle A Hoc Networks Fabrizio Granelli, Senior Member, Giulia Boato, Member, an Dzmitry Kliazovich, Stuent Member Abstract Recent interest in car-to-car communications

More information

Using Vector and Raster-Based Techniques in Categorical Map Generalization

Using Vector and Raster-Based Techniques in Categorical Map Generalization Thir ICA Workshop on Progress in Automate Map Generalization, Ottawa, 12-14 August 1999 1 Using Vector an Raster-Base Techniques in Categorical Map Generalization Beat Peter an Robert Weibel Department

More information

Inuence of Cross-Interferences on Blocked Loops: to know the precise gain brought by blocking. It is even dicult to determine for which problem

Inuence of Cross-Interferences on Blocked Loops: to know the precise gain brought by blocking. It is even dicult to determine for which problem Inuence of Cross-Interferences on Blocke Loops A Case Stuy with Matrix-Vector Multiply CHRISTINE FRICKER INRIA, France an OLIVIER TEMAM an WILLIAM JALBY University of Versailles, France State-of-the art

More information

Impact of cache interferences on usual numerical dense loop. nests. O. Temam C. Fricker W. Jalby. University of Leiden INRIA University of Versailles

Impact of cache interferences on usual numerical dense loop. nests. O. Temam C. Fricker W. Jalby. University of Leiden INRIA University of Versailles Impact of cache interferences on usual numerical ense loop nests O. Temam C. Fricker W. Jalby University of Leien INRIA University of Versailles Niels Bohrweg 1 Domaine e Voluceau MASI 2333 CA Leien 78153

More information

Overlap Interval Partition Join

Overlap Interval Partition Join Overlap Interval Partition Join Anton Dignös Department of Computer Science University of Zürich, Switzerlan aignoes@ifi.uzh.ch Michael H. Böhlen Department of Computer Science University of Zürich, Switzerlan

More information

WLAN Indoor Positioning Based on Euclidean Distances and Fuzzy Logic

WLAN Indoor Positioning Based on Euclidean Distances and Fuzzy Logic WLAN Inoor Positioning Base on Eucliean Distances an Fuzzy Logic Anreas TEUBER, Bern EISSFELLER Institute of Geoesy an Navigation, University FAF, Munich, Germany, e-mail: (anreas.teuber, bern.eissfeller)@unibw.e

More information

NAND flash memory is widely used as a storage

NAND flash memory is widely used as a storage 1 : Buffer-Aware Garbage Collection for Flash-Base Storage Systems Sungjin Lee, Dongkun Shin Member, IEEE, an Jihong Kim Member, IEEE Abstract NAND flash-base storage evice is becoming a viable storage

More information

Optimal Distributed P2P Streaming under Node Degree Bounds

Optimal Distributed P2P Streaming under Node Degree Bounds Optimal Distribute P2P Streaming uner Noe Degree Bouns Shaoquan Zhang, Ziyu Shao, Minghua Chen, an Libin Jiang Department of Information Engineering, The Chinese University of Hong Kong Department of EECS,

More information

Supporting Fully Adaptive Routing in InfiniBand Networks

Supporting Fully Adaptive Routing in InfiniBand Networks XIV JORNADAS DE PARALELISMO - LEGANES, SEPTIEMBRE 200 1 Supporting Fully Aaptive Routing in InfiniBan Networks J.C. Martínez, J. Flich, A. Robles, P. López an J. Duato Resumen InfiniBan is a new stanar

More information

Software Reliability Modeling and Cost Estimation Incorporating Testing-Effort and Efficiency

Software Reliability Modeling and Cost Estimation Incorporating Testing-Effort and Efficiency Software Reliability Moeling an Cost Estimation Incorporating esting-effort an Efficiency Chin-Yu Huang, Jung-Hua Lo, Sy-Yen Kuo, an Michael R. Lyu -+ Department of Electrical Engineering Computer Science

More information

1 Shortest Path Problems

1 Shortest Path Problems CS268: Geometric Algorithms Hanout #7 Design an Analysis Original Hanout #18 Stanfor University Tuesay, 25 February 1992 Original Lecture #8: 4 February 1992 Topics: Shortest Path Problems Scribe: Jim

More information

Demystifying Automata Processing: GPUs, FPGAs or Micron s AP?

Demystifying Automata Processing: GPUs, FPGAs or Micron s AP? Demystifying Automata Processing: GPUs, FPGAs or Micron s AP? Marziyeh Nourian 1,3, Xiang Wang 1, Xiaoong Yu 2, Wu-chun Feng 2, Michela Becchi 1,3 1,3 Department of Electrical an Computer Engineering,

More information

Just-In-Time Software Pipelining

Just-In-Time Software Pipelining Just-In-Time Software Pipelining Hongbo Rong Hyunchul Park Youfeng Wu Cheng Wang Programming Systems Lab Intel Labs, Santa Clara What is software pipelining? A loop optimization exposing instruction-level

More information

Transient analysis of wave propagation in 3D soil by using the scaled boundary finite element method

Transient analysis of wave propagation in 3D soil by using the scaled boundary finite element method Southern Cross University epublications@scu 23r Australasian Conference on the Mechanics of Structures an Materials 214 Transient analysis of wave propagation in 3D soil by using the scale bounary finite

More information

Compiler Optimisation

Compiler Optimisation Compiler Optimisation Michael O Boyle mob@inf.e.ac.uk Room 1.06 January, 2014 1 Two recommene books for the course Recommene texts Engineering a Compiler Engineering a Compiler by K. D. Cooper an L. Torczon.

More information

Characterizing Decoding Robustness under Parametric Channel Uncertainty

Characterizing Decoding Robustness under Parametric Channel Uncertainty Characterizing Decoing Robustness uner Parametric Channel Uncertainty Jay D. Wierer, Wahee U. Bajwa, Nigel Boston, an Robert D. Nowak Abstract This paper characterizes the robustness of ecoing uner parametric

More information

Backpressure-based Packet-by-Packet Adaptive Routing in Communication Networks

Backpressure-based Packet-by-Packet Adaptive Routing in Communication Networks 1 Backpressure-base Packet-by-Packet Aaptive Routing in Communication Networks Eleftheria Athanasopoulou, Loc Bui, Tianxiong Ji, R. Srikant, an Alexaner Stoylar arxiv:15.4984v1 [cs.ni] 27 May 21 Abstract

More information

Improving Performance of Sparse Matrix-Vector Multiplication

Improving Performance of Sparse Matrix-Vector Multiplication Improving Performance of Sparse Matrix-Vector Multiplication Ali Pınar Michael T. Heath Department of Computer Science an Center of Simulation of Avance Rockets University of Illinois at Urbana-Champaign

More information

Adjacency Matrix Based Full-Text Indexing Models

Adjacency Matrix Based Full-Text Indexing Models 1000-9825/2002/13(10)1933-10 2002 Journal of Software Vol.13, No.10 Ajacency Matrix Base Full-Text Inexing Moels ZHOU Shui-geng 1, HU Yun-fa 2, GUAN Ji-hong 3 1 (Department of Computer Science an Engineering,

More information

William S. Law. Erik K. Antonsson. Engineering Design Research Laboratory. California Institute of Technology. Abstract

William S. Law. Erik K. Antonsson. Engineering Design Research Laboratory. California Institute of Technology. Abstract Optimization Methos for Calculating Design Imprecision y William S. Law Eri K. Antonsson Engineering Design Research Laboratory Division of Engineering an Applie Science California Institute of Technology

More information

6 Gradient Descent. 6.1 Functions

6 Gradient Descent. 6.1 Functions 6 Graient Descent In this topic we will iscuss optimizing over general functions f. Typically the function is efine f : R! R; that is its omain is multi-imensional (in this case -imensional) an output

More information

Socially-optimal ISP-aware P2P Content Distribution via a Primal-Dual Approach

Socially-optimal ISP-aware P2P Content Distribution via a Primal-Dual Approach Socially-optimal ISP-aware P2P Content Distribution via a Primal-Dual Approach Jian Zhao, Chuan Wu The University of Hong Kong {jzhao,cwu}@cs.hku.hk Abstract Peer-to-peer (P2P) technology is popularly

More information

Authenticated indexing for outsourced spatial databases

Authenticated indexing for outsourced spatial databases The VLDB Journal (2009) 8:63 648 DOI 0.007/s00778-008-03-2 REGULAR PAPER Authenticate inexing for outsource spatial atabases Yin Yang Stavros Papaopoulos Dimitris Papaias George Kollios Receive: February

More information

On Effectively Determining the Downlink-to-uplink Sub-frame Width Ratio for Mobile WiMAX Networks Using Spline Extrapolation

On Effectively Determining the Downlink-to-uplink Sub-frame Width Ratio for Mobile WiMAX Networks Using Spline Extrapolation On Effectively Determining the Downlink-to-uplink Sub-frame With Ratio for Mobile WiMAX Networks Using Spline Extrapolation Panagiotis Sarigianniis, Member, IEEE, Member Malamati Louta, Member, IEEE, Member

More information

Throughput Characterization of Node-based Scheduling in Multihop Wireless Networks: A Novel Application of the Gallai-Edmonds Structure Theorem

Throughput Characterization of Node-based Scheduling in Multihop Wireless Networks: A Novel Application of the Gallai-Edmonds Structure Theorem Throughput Characterization of Noe-base Scheuling in Multihop Wireless Networks: A Novel Application of the Gallai-Emons Structure Theorem Bo Ji an Yu Sang Dept. of Computer an Information Sciences Temple

More information

Estimating Velocity Fields on a Freeway from Low Resolution Video

Estimating Velocity Fields on a Freeway from Low Resolution Video Estimating Velocity Fiels on a Freeway from Low Resolution Vieo Young Cho Department of Statistics University of California, Berkeley Berkeley, CA 94720-3860 Email: young@stat.berkeley.eu John Rice Department

More information

A Cost Model For Nearest Neighbor Search. High-Dimensional Data Space

A Cost Model For Nearest Neighbor Search. High-Dimensional Data Space A Cost Moel For Nearest Neighbor Search in High-Dimensional Data Space Stefan Berchtol University of Munich Germany berchtol@informatikuni-muenchene Daniel A Keim University of Munich Germany keim@informatikuni-muenchene

More information

Chalmers Publication Library

Chalmers Publication Library Chalmers Publication Library All-to-all Broacast for Vehicular Networks Base on Coe Slotte ALOHA This ocument has been ownloae from Chalmers Publication Library (CPL). It is the author s version of a work

More information

A General Technique for Non-blocking Trees

A General Technique for Non-blocking Trees A General Technique for Non-blocking Trees Trevor rown an Faith Ellen University of Toronto, Canaa Eric Ruppert York University, Canaa Abstract We escribe a general technique for obtaining provably correct,

More information

A Neural Network Model Based on Graph Matching and Annealing :Application to Hand-Written Digits Recognition

A Neural Network Model Based on Graph Matching and Annealing :Application to Hand-Written Digits Recognition ITERATIOAL JOURAL OF MATHEMATICS AD COMPUTERS I SIMULATIO A eural etwork Moel Base on Graph Matching an Annealing :Application to Han-Written Digits Recognition Kyunghee Lee Abstract We present a neural

More information

Design of Policy-Aware Differentially Private Algorithms

Design of Policy-Aware Differentially Private Algorithms Design of Policy-Aware Differentially Private Algorithms Samuel Haney Due University Durham, NC, USA shaney@cs.ue.eu Ashwin Machanavajjhala Due University Durham, NC, USA ashwin@cs.ue.eu Bolin Ding Microsoft

More information

Local Path Planning with Proximity Sensing for Robot Arm Manipulators. 1. Introduction

Local Path Planning with Proximity Sensing for Robot Arm Manipulators. 1. Introduction Local Path Planning with Proximity Sensing for Robot Arm Manipulators Ewar Cheung an Vlaimir Lumelsky Yale University, Center for Systems Science Department of Electrical Engineering New Haven, Connecticut

More information

+ E. Bit-Alignment for Retargetable Code Generators * 1 Introduction A D T A T A A T D A A. Keen Schoofs Gert Goossens Hugo De Mant

+ E. Bit-Alignment for Retargetable Code Generators * 1 Introduction A D T A T A A T D A A. Keen Schoofs Gert Goossens Hugo De Mant Bit-lignment for Retargetable Coe Generators * Keen Schoofs Gert Goossens Hugo e Mant IMEC, Kapelreef 75, B-3001 Leuven, Belgium bstract When builing a bit-true retargetable compiler, every signal type

More information

Short-term prediction of photovoltaic power based on GWPA - BP neural network model

Short-term prediction of photovoltaic power based on GWPA - BP neural network model Short-term preiction of photovoltaic power base on GWPA - BP neural networ moel Jian Di an Shanshan Meng School of orth China Electric Power University, Baoing. China Abstract In recent years, ue to China's

More information

The Reconstruction of Graphs. Dhananjay P. Mehendale Sir Parashurambhau College, Tilak Road, Pune , India. Abstract

The Reconstruction of Graphs. Dhananjay P. Mehendale Sir Parashurambhau College, Tilak Road, Pune , India. Abstract The Reconstruction of Graphs Dhananay P. Mehenale Sir Parashurambhau College, Tila Roa, Pune-4030, Inia. Abstract In this paper we iscuss reconstruction problems for graphs. We evelop some new ieas lie

More information

Threshold Based Data Aggregation Algorithm To Detect Rainfall Induced Landslides

Threshold Based Data Aggregation Algorithm To Detect Rainfall Induced Landslides Threshol Base Data Aggregation Algorithm To Detect Rainfall Inuce Lanslies Maneesha V. Ramesh P. V. Ushakumari Department of Computer Science Department of Mathematics Amrita School of Engineering Amrita

More information

APPLYING GENETIC ALGORITHM IN QUERY IMPROVEMENT PROBLEM. Abdelmgeid A. Aly

APPLYING GENETIC ALGORITHM IN QUERY IMPROVEMENT PROBLEM. Abdelmgeid A. Aly International Journal "Information Technologies an Knowlege" Vol. / 2007 309 [Project MINERVAEUROPE] Project MINERVAEUROPE: Ministerial Network for Valorising Activities in igitalisation -

More information

Variable Independence and Resolution Paths for Quantified Boolean Formulas

Variable Independence and Resolution Paths for Quantified Boolean Formulas Variable Inepenence an Resolution Paths for Quantifie Boolean Formulas Allen Van Geler http://www.cse.ucsc.eu/ avg University of California, Santa Cruz Abstract. Variable inepenence in quantifie boolean

More information

Learning convex bodies is hard

Learning convex bodies is hard Learning convex boies is har Navin Goyal Microsoft Research Inia navingo@microsoftcom Luis Raemacher Georgia Tech lraemac@ccgatecheu Abstract We show that learning a convex boy in R, given ranom samples

More information

Shift-map Image Registration

Shift-map Image Registration Shift-map Image Registration Svärm, Linus; Stranmark, Petter Unpublishe: 2010-01-01 Link to publication Citation for publishe version (APA): Svärm, L., & Stranmark, P. (2010). Shift-map Image Registration.

More information

6.854J / J Advanced Algorithms Fall 2008

6.854J / J Advanced Algorithms Fall 2008 MIT OpenCourseWare http://ocw.mit.eu 6.854J / 18.415J Avance Algorithms Fall 2008 For inormation about citing these materials or our Terms o Use, visit: http://ocw.mit.eu/terms. 18.415/6.854 Avance Algorithms

More information

k-nn Graph Construction: a Generic Online Approach

k-nn Graph Construction: a Generic Online Approach k-nn Graph Construction: a Generic Online Approach Wan-Lei Zhao arxiv:80.00v [cs.ir] Sep 08 Abstract Nearest neighbor search an k-nearest neighbor graph construction are two funamental issues arise from

More information