An empirical study of regression test application frequency Regression testing is an expensive maintenance process used to revalidate modified software. Regression test selection (RTS) techniques try to lower the cost of regression testing by selecting and running a subset of existing test suites. Many such techniques have been proposed and initial studies show that they can produce savings. We believe, however, that issues such as the frequency with which testing is done have a strong effect on the behavior of these techniques. Therefore, we conducted an experiment to assess the effects of test application frequency on the costs and benefits of regression test selection techniques. Our results expose essential tradeoffs that should be considered when using these techniques over a series of software releases.Keywords regression testing, application frequency, empirical studyAfter modifying software, developers typically want to know that unmodified code has not been adversely affected. When such unmodified code is adversely affected, we say that a regression error has occurred.Developers often perform regression testing to search for such regression errors. The simplest regression testing strategy is to rerun all existing test suites. This method is simple to implement, but can be unnecessarily expensive, especially when changes affect only a small part of the system.Consequently, an alternative approach, regression test selection (RTS) technique, has been proposed [e.g., 1,2,5,6,10,14]. With this approach only a subset of test suites are selected and rerun. Since, in general, optimal test selection 1 is impossible, the cost-benefit tradeoffs of RTS techniques is a central concern of regression testing research and practice. 1 i.e., selecting exactly the fault revealing tests.A common way to study this problem has been to find or create base and modified versions of a system and accompanying test suites. Next, a test selection algorithm is run and the size and effectiveness of the selected test suite is compared to the size and effectiveness of the original test suite [e.g., 4,11,16,17].One limitation of this approach is that it models regression testing as a one-time activity rather than as the continuous process it is. For example, software releases often require many changes to a system with regression testing interspersed between some number of changes (rather than one regression test at the end of a release). In practice, many companies integrate changes and then regression test on a monthly, weekly, or even daily basis.Our hypothesis is that the amount of change made between regression testing sessions strongly affects the costs and benefits of different regression test selection techniques. That is, we believe that some test selection techniques will perform less cost-effectively as the amount of changes made between regression testing sessions grows. This is because they will select increasingly larger test suites and because these suites will become increasingly less cost-effective at finding faults.If this hypothesis is true, testing practitioners may be able to better manage and coordinate their integration and regression testing processes, thereby saving time and money. Therefore we have designed and implemented an experiment to examine this hypothesis.In the remainder of this paper we review the relevant literature, describe our research hypotheses, present the design and analysis of our experiment and discuss our conclusions and future research directions.2.1 Regression Testing Let P be a procedure or program, let P′ be a modified version of P and let T be a test suite for P. A typical regression test proceeds as follows: After modifying software, developers typically want to know that unmodified code has not been adversely affected. When such unmodified code is adversely affected, we say that a regression error has occurred.. Developers often perform regression testing to search for such regression errors. The simplest regression testing strategy is to rerun all existing test suites. This method is simple to implement, but can be unnecessarily expensive, especially when changes affect only a small part of the system.. Consequently, an alternative approach, regression test selection (RTS) technique, has been proposed [e.g., 1, 2, 5, 6, 10, 14] . With this approach only a subset of test suites are selected and rerun. Since, in general, optimal test selection 1 is impossible, the cost-benefit tradeoffs of RTS techniques is a central concern of regression testing research and practice. 1 i.e., selecting exactly the fault revealing tests.. A common way to study this problem has been to find or create base and modified versions of a system and accompanying test suites. Next, a test selection algorithm is run and the size and effectiveness of the selected test suite is compared to the size and effectiveness of the original test suite [e.g., 4, 11, 16, 17] .. One limitation of this approach is that it models regression testing as a one-time activity rather than as the continuous process it is. For example, software releases often require many changes to a system with regression testing interspersed between some number of changes (rather than one regression test at the end of a release). In practice, many companies integrate changes and then regression test on a monthly, weekly, or even daily basis.. Our hypothesis is that the amount of change made between regression testing sessions strongly affects the costs and benefits of different regression test selection techniques. That is, we believe that some test selection techniques will perform less cost-effectively as the amount of changes made between regression testing sessions grows. This is because they will select increasingly larger test suites and because these suites will become increasingly less cost-effective at finding faults.. If this hypothesis is true, testing practitioners may be able to better manage and coordinate their integration and regression testing processes, thereby saving time and money. Therefore we have designed and implemented an experiment to examine this hypothesis.. In the remainder of this paper we review the relevant literature, describe our research hypotheses, present the design and analysis of our experiment and discuss our conclusions and future research directions. We have presented the initial results of an empirical study of regression test application frequency. We investigated some of the costs and benefits of several RTS techniques when the number of changes between the base and subsequent versions of a program increases. Our results highlight several differences among RTS techniques with respect to test application frequency. They also illustrate some tradeoffs and provide an infrastructure for further research.. As we discussed earlier, this study has several limits to its validity. Particularly, several threats to external validity limit our ability to generalize our results. These threats can only be addressed by extensive experiments with a wider variety of programs, test suites, series of versions, type of faults, etc. Keeping this in mind, we drew the following conclusions.. • Our experimental results strongly support our hypotheses that the size and fault detection effectiveness of test suites chosen by selective retest techniques changes as the frequency of regression testing changes.. • As testing interval increases so does the percentage of faults that are undetectable by the original test suite. This affects the performance of all RTS techniques we studied.. • Safe techniques selected the same or fewer test cases as retest-all did while having the same effectiveness. Therefore, they are preferable to retest-all as long as their analysis costs are less than the cost of running the unselected test cases. We saw, however, that as the testing interval grew, almost all test cases were selected. In this case, safe methods may not be preferable to retest-all.. Nevertheless, our analysis showed that the performance of safe techniques depended heavily on the structure of the program, the location of faults and the composition of the test suites. For instance, test cases for the program schedule2 are constructed in such a way that each test exercises large portions of the code. Consequently, changes, no matter how small, tend to involve all test cases in the test suite. Test cases that exercise independent portions of the system might not exhibit such behavior and thus might be more amenable to safe test selection.. Research that successfully merges the RTS techniques with test suite construction is likely to have a large effect on the use of safe techniques in practice.. • Random techniques are surprisingly cheap and effective. Interestingly, as the testing interval increases their median effectiveness approaches that of retest-all with less variation between runs. That is: at small testing intervals effectiveness ranges from very high to very low. However, as the testing interval increases, this range gets much smaller. Thus, a user of random techniques might be more confident of their effectiveness in the latter situation.. • The difference in performance between minimization at low testing intervals and minimization at high testing intervals was remarkable. At low testing intervals minimization selected one or two test cases and was only 15% as effective as retest-all. However, at a testing interval of 10, it selected only four or five test cases, while having about 60% of the effectiveness of retest-all.. Thus, although this approach will miss some faults, from a cost-benefit perspective it presents an interesting option. Also, in our study minimization picks exactly one test case through a change. It would be interesting to ask what would happen if it instead picked two, three or more.. • As testing intervals increase, complex fault interactions can make it harder to detect some faults. This is somewhat obvious. More to the point, however, is that as the testing interval increases, information about a base program P, and test set T, will become less predictive of the state of P′. For example, a test set that was edge-coverage-adequate on program P, might have very different coverage of program P′.. We are continuing this family of experiments. We plan to (1) improve our cost models to include factors such as testing overhead and to better handle analysis cost, (2) extend our experiment to larger programs with a wider variety of naturally-occurring faults and (3) explore techniques that incorporate previous testing history.

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


An interactive 3D medical visualization system based on a light field display We present a prototype medical data visualization system exploiting a light field display and custom direct volume rendering techniques to enhance understanding of massive volumetric data, such as CT, MRI, and PET scans. The system can be integrated with standard medical image archives and extends the capabilities of current radiology workstations by supporting real-time rendering of volumes of potentially unlimited size on light field displays generating dynamic observer-independent light fields. The system allows multiple untracked naked-eye users in a sufficiently large interaction area to coherently perceive rendered volumes as real objects, with stereo and motion parallax cues. In this way, an effective collaborative analysis of volumetric data can be achieved. Evaluation tests demonstrate the usefulness of the generated depth cues and the improved performance in understanding complex spatial structures with respect to standard techniques. We have described the implementation of a new medical visualization system having several features that are expected to be found in the 3D radiology workstation of the future: a light field display able to provide stereo and motion parallax cues in a setting supporting collaborative use, and advanced volumetric rendering implementation that can create, at interactive speed, high quality light fields from gigavoxel data sets.. Our prototype has to be considered a testbed in a development process aimed at creating a really good 3D light field based radiology workstation in the future. Despite the limitations of current prototypical hardware settings, all the perceptual evaluation tests that we have carried out tend to prove that the system provides correct depth cues, helps in layout discrimination and is clearly superior to twodimensional displays for path tracing tasks, common in operations such as the understanding of vascular structures. The first feedback received from physicians and radiologists seems to confirm this fact.. Besides continuing to improve our implementation, we plan to further extend the evaluation of the 3D display capabilities in comparison with other stereo display solutions, with a special focus on the immediacy and persistence of the stereo effect, and to perform an evaluation of the system for diagnostic tasks in a clinical context.

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


Integrating Job Parallelism in Real-Time Scheduling Theory We investigate the global scheduling of sporadic, implicit deadline, real-time task systems on multiprocessor platforms. We provide a task model which integrates job parallelism. We prove that the time-complexity of the feasibility problem of these systems is linear relatively to the number of (sporadic) tasks for a fixed number of processors. We propose a scheduling algorithm theoretically optimal (i.e., preemptions and migrations neglected). Moreover, we provide an exact feasibility utilization bound. Lastly, we propose a technique to limit the number of migrations and preemptions. The use of computers to control safety-critical real-time functions has increased rapidly over the past few years. As a consequence, real-time systems -computer systems where the correctness of each computation depends on both the logical results of the computation and the time at which these results are produced -have become the focus of much study. Since the concept of "time" is of such importance in real-time application systems, and since these systems typically involve the sharing of one or more resources among various contending processes, the concept of scheduling is integral to real-time system design and analysis. Scheduling theory as it pertains to a finite set of requests for resources is a well-researched topic. However, requests in real-time environments are often of a recurring nature. Such systems are typically modeled as finite collections of simple, highly repetitive tasks, each of which generates jobs in a very predictable manner. These tasks have bounds upon their worst-case execution requirements and their periods, and associated deadlines.. In this work, we consider sporadic task systems, i.e., where there is at least T i (called the period) time units between two consecutive job instances of the same task. A job which occurs at time t must be executed for at most C i time units in the time interval [t, t + D i ) (where D i is the relative deadline). A particular case of sporadic tasks are the periodic ones for which the period is the exact temporal separation between the arrival of two successive jobs generated by the task. We

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


A Rank-Metric Approach to Error Control in Random Network Coding The problem of error control in random linear network coding is addressed from a matrix perspective that is closely related to the subspace perspective of Kötter and Kschischang. A large class of constantdimension subspace codes is investigated. It is shown that codes in this class can be easily constructed from rank-metric codes, while preserving their distance properties. Moreover, it is shown that minimum distance decoding of such subspace codes can be reformulated as a generalized decoding problem for rank-metric codes where partial information about the error is available. This partial information may be in the form of erasures (knowledge of an error location but not its value) and deviations (knowledge of an error value but not its location). Taking erasures and deviations into account (when they occur) strictly increases the error correction capability of a code: if µ erasures and δ deviations occur, then errors of rank t can always be corrected provided that 2t ≤ d − 1 + µ + δ, where d is the minimum rank distance of the code. For Gabidulin codes, an important family of maximum rank distance codes, an efficient decoding algorithm is proposed that can properly exploit erasures and deviations. In a network coding application where n packets of length M over F q are transmitted, the complexity of the decoding algorithm is given by O(dM ) operations in an extension field F q n . While random linear network coding [1] - [3] is an effective technique for information dissemination in communication networks, it is highly susceptible to errors. The insertion of even a single corrupt packet has the potential, when linearly combined with legitimate packets, to affect all packets gathered by an information receiver. The problem of error control in random network coding is therefore of great interest.. In this paper, we focus on end-to-end error control coding, where only the source and destination nodes apply error control techniques. Internal network nodes are assumed to be unaware of the presence of an outer code; they simply create outgoing packets as random linear combinations of incoming packets in the usual manner of random network coding. In addition, we assume that the source and destination nodes have no knowledge-or at least make no effort to exploit knowledge-of the topology of the network or of the particular network code used in the network. This is in contrast to the pioneering approaches [4] - [6] , which have considered the design of a network code as part of the error control problem.. In the basic transmission model for end-to-end coding, the source node produces n packets, which are length-M vectors in a finite field F q , and the receiver gathers N packets. Additive packet errors may occur in any of the links. The channel equation is given by Y = AX + BZ, where X, Y and Z are matrices whose rows represent the transmitted, received and (possibly) corrupting packets, respectively, and A and B are the (unknown) corresponding transfer matrices induced by linear network coding.. There have been three previous quite different approaches to reliable communication under this model.. In [7] , Zhang characterizes the error correction capability of a network code under a brute-force decoding algorithm. He shows that network codes with good error-correcting properties exist if the field size is sufficiently large. His approach can be applied to random network coding if an extended header is included in each packet in order to allow for the matrix B (as well as A) to be estimated at a sink node.. A drawback of this approach is that the extended header has size equal to the number of network edges, which may incur excessive overhead. In addition, no efficient decoding algorithm is provided for errors occurring according to an adversarial model. Jaggi et al. [8] propose a different approach specifically targeted to combat Byzantine adversaries.. They provide rate-optimal end-to-end codes that do not rely on the specific network code used and that can be decoded in polynomial time. However, their approach is based on probabilistic arguments that require both the field size and the packet length to be sufficiently large.. In contrast, Kötter and Kschischang [9] take a more combinatorial approach to the problem, which provides correction guarantees against adversarial errors and can be used with any given field and packet size. Their key observation is that, under the unknown linear transformation applied by random network coding, the only property of the matrix X that is preserved is its row space. Thus, information should be encoded in the choice of a subspace rather than a specific matrix. The receiver observes a subspace, given by the row space of Y , which may be different from the transmitted space when packet errors occur. A metric is proposed to account for the discrepancy between transmitted and received spaces, and a new coding theory based on this metric is developed. In particular, nearly-optimal Reed-Solomon-like codes are proposed that can be decoded in O(nM ) operations in an extension field F q n .. Although the approach in [9] seems to be the appropriate abstraction of the error control problem in random network coding, one inherent difficulty is the absence of a natural group structure on the set of all subspaces of the ambient space F M q . As a consequence, many of the powerful concepts of classical coding theory such as group codes and linear codes do not naturally extend to codes consisting of subspaces.. In this paper, we explore the close relationship between subspace codes and codes for yet another distance measure: the rank metric. Codewords of a rank metric code are n × m matrices and the rank distance between two matrices is the rank of their difference. The rank metric was introduced in coding theory by Delsarte [10] . Codes for the rank metric were largely developed by Gabidulin [11] (see also [10] , [12] ). An important feature of the coding theory for the rank metric is that it supports many of the powerful concepts and techniques of classical coding theory, such as linear and cyclic codes and corresponding decoding algorithms [11] - [14] .. One main contribution of this paper is to show that codes in the rank metric can be naturally "lifted" to subspace codes in such a way that the rank distance between two codewords is reflected in the subspace distance between their lifted images. In particular, nearly-optimal subspace codes can be obtained directly from optimal rank-metric codes. Conversely, when lifted rank-metric codes are used, the decoding problem for random network coding can be reformulated purely in rank-metric terms, allowing many of the tools from the theory of rank-metric codes to be applied to random network coding.. In this reformulation, we obtain a generalized decoding problem for rank-metric codes that involves not only ordinary rank errors, but also two additional phenomena that we call erasures and deviations.. Erasures and deviations are dual to each other and correspond to partial information about the error matrix, akin to the role played by symbol erasures in the Hamming metric. Here, an erasure corresponds to the knowledge of an error location but not its value, while a deviation correspond to the knowledge of an error value but not its location. These concepts generalize similar concepts found in the rank-metric literature under the terminology of "row and column erasures" [13] , [15] - [18] . Although with a different terminology, the concept of a deviation (and of a code that can correct deviations) has appeared before in [19] .. Our second main contribution is an efficient decoding algorithm for rank-metric codes that takes into account erasures and deviations. Our algorithm is applicable to Gabidulin codes [11] , a class of codes, analogous to conventional Reed-Solomon codes, that attain maximum distance in the rank metric. We show that our algorithm fully exploits the correction capability of Gabidulin codes; namely, it can correct any pattern of ǫ errors, µ erasures and δ deviations provided 2ǫ + µ + δ ≤ d − 1, where d is the minimum rank distance of the code. Moreover, the complexity of our algorithm is O(dM ) operations in F q n , which is smaller than that of the algorithm in [9] , especially for practical high-rate codes.. In the course of setting up the problem, we also prove a result that can be seen as complementary to [9] ; namely, we relate the performance guarantees of a subspace code with more concrete network parameters such as the maximum number of corrupting packets that can be injected in the network. This result provides a tighter connection between the subspace approach of [9] and previous approaches that deal with link errors.. The remainder of this paper is organized as follows. In Section II, we provide a brief review of rankmetric codes and subspace codes. In Section III, we describe in more detail the problem of error control in random network coding, along with Kötter and Kschischang's approach to this problem. In Section IV, we present our code construction and show that the resulting error control problem can be replaced by a generalized decoding problem for rank-metric codes. At this point, we turn our attention entirely to rankmetric codes. The generalized decoding problem that we introduce is developed in more detail in Section V, wherein the concepts of erasures and deviations are described and compared to related concepts in the rank-metric literature. In Section VI, we present an efficient algorithm for decoding Gabidulin codes in the presence of errors, erasures and deviations. Finally, Section VII contains our conclusions.

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


Accelerating SQL database operations on a GPU with CUDA Prior work has shown dramatic acceleration for various database operations on GPUs, but only using primitives that are not part of conventional database languages such as SQL. This paper implements a subset of the SQLite command processor directly on the GPU. This dramatically reduces the effort required to achieve GPU acceleration by avoiding the need for database programmers to use new programming languages such as CUDA or modify their programs to use non-SQL libraries.This paper focuses on accelerating SELECT queries and describes the considerations in an efficient GPU implementation of the SQLite command processor. Results on an NVIDIA Tesla C1060 achieve speedups of 20-70X depending on the size of the result set. GPUs, known colloquially as video cards, are the means by which computers render graphical information on a screen. The modern GPU's parallel architecture gives it very high throughput on certain problems, and its near universal use in desktop computers means that it is a cheap and ubiquitous source of processing power. There is a growing interest in applying this power to more general non-graphical problems through frameworks such as NVIDIA's CUDA, an application programming interface developed to give programmers a simple and standard way to execute general purpose logic on NVIDIA GPUs. Programmers often use CUDA and similar interfaces to accelerate computationally intensive data processing operations, often executing them fifty times faster Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. on the GPU [2] . Many of these operations have direct parallels to classic database queries [4, 9] . SQLite is a completely open source database developed by a small team supported by several major corporations [20] . Its development team claims that SQLite is the most widely deployed database in the world owing to its use in popular applications, such as Firefox, and on mobile devices, such as the iPhone [22] . SQLite is respected for its extreme simplicity and extensive testing. Unlike most databases which operate as server, accessed by separate processes and usually accessed remotely, SQLite is written to be compiled directly into the source code of the client application. SQLite is distributed as a single C source file, making it trivial to add a database with a full SQL implementation to a C/C++ application. This project simultaneously demonstrates the power of using a generic interface to drive GPU data processing and provides further evidence of the effectiveness of accelerating database operations by offloading queries to a GPU. Though only a subset of all possible SQL queries can be used, the results are promising and there is reason to believe that a full implementation of all possible SELECT queries would achieve similar results. SQL is an excellent interface through which the GPU can be accessed: it is much simpler and more widely used than many alternatives. Using SQL represents a break from the paradigm of previous research which drove GPU queries through the use of operational primitives, such as map, reduce, or sort. Additionally, it dramatically reduces the effort required to employ GPUs for database acceleration. The results of this paper suggest that implementing databases on GPU hardware is a fertile area for future research and commercial development.. The SQLite database was used as a platform for the project, enabling the use of an existing SQL parsing mechanism and switching between CPU and GPU execution. Execution on the GPU was supported by reimplementing the SQLite virtual machine as a CUDA kernel. The queries executed on the GPU were an average of 35X faster than those executed through the serial SQLite virtual machine. The characteristics of each query, the type of data being queried, and the size of the result set were all significant factors in how CPU and GPU execution compared. Despite this variation, the minimum speedup for the 13 queries considered was 20X. Additionally, the results of this paper are expected to improve with the release of the next generation of NVIDIA GPU hardware. Though further research is needed, clearly native SQL query processing can be significantly accelerated with GPU hardware. Interestingly, the floating point queries had a slightly higher speedup than the integer queries. This is likely a result of the GPU's treatment of integers. While the GPU supports IEEE 754 compliant floating point operations, integer math is done with a 24-bit unit, thus 32-bit integer operations are essentially emulated [19] . The resulting difference in performance is nontrivial but not big enough to change the magnitude of the speedup. Next generation NVIDIA hardware is expected to support true 32-bit integer operations.. There are several major factors that affect the results of individual queries, including the difficulty of each operation and output size. Though modern CPUs run at clock speeds in excess of 2 GHz and utilize extremely optimized and deeply pipelined ALUs, the fact that these operations are parallelized over 240 streaming multiprocessors means that the GPU should outperform in this area, despite the fact that the SMs are much less optimized on an individual level. Unfortunately, it is difficult to measure the computational intensity of a query, but it should be noted that queries 7 and 8, which involve multiplication operations, performed on par with the other queries, despite the fact that multiplication is a fairly expensive operation. A more significant determinant of query speedup was the size of the result set, in other words, the number of rows that a query returned. This matters because a bigger result set increases the overhead of the reduction step since each thread must call atomicAdd(). It also directly affects how long it takes to copy the result set from device memory to host memory. These factors are illuminated with figure 2. A set of 21 queries were executed in which rows of data were returned when the uniformi column was less than x, where x was a value in the range [-100, 100] incremented by 10 for each subsequent query. Since the uniformi column contains a uniform distribution of integers between -99 and 99, the expected size of the result set increased by 25,000 for each query, ranging from 0 to 5,000,000.. The most striking trend of this graph is that the speedup of GPU query execution increased along with the size of the result set, despite the reduction overhead. This indicates that the GPU implementation is more efficient at handling a result row than the CPU implementation, probably because of the sheer throughput of the device. The overhead of transferring the result set back is demonstrated in the second line, showing that the GPU implementation is still more efficient when the time to transfer a row back is considered. For these tests, the unweighted average time to transfer a single 16 byte row (including meta information and memory copy setup overhead) was 7.67 ns. Note that the data point for 0 returned rows is an outlier. This is because transferring results back is a two step process, as described in the implementation section, and the second step is not needed when there are no result rows. This point thus shows how high the overhead is for using atomic operations in the reduction phase and initiating a memory copy operation in the results transfer phase.. We have not yet implemented a parallel version of the same SQLite functionality for multicore CPUs. This is an important aspect of future work. In the meantime, the potential speedup with multiple cores must be kept in mind when interpreting the GPU speedups we report. Speedup with multicore would have an upper bound of the number of hardware threads supported, 8 on the Xeon X5550 used for testing, and would be reduced by the overhead of coordination, resulting in a speedup less than 8X. The speedups we observed with the GPU substantially exceed these numbers, showing that the GPU has a clear architectural advantage.

O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Robot expressionism through cartooning We present a new technique for human-robot interaction called robot expressionism through cartooning. We suggest that robots utilise cartoon-art techniques such as simplified and exaggerated facial expressions, stylised text, and icons for intuitive social interaction with humans. We discuss practical mixed reality solutions that allow robots to augment themselves or their surroundings with cartoon art content. Our effort is part of what we call robot expressionism, a conceptual approach to the design and analysis of robotic interfaces that focuses on providing intuitive insight into robotic states as well as the artistic quality of interaction. Our paper discusses a variety of ways that allow robots to use cartoon art and details a test bed design, implementation, and exploratory evaluation. We describe our test bed, Jeeves, which uses a Roomba, an iRobot vacuum cleaner robot, and a mixed-reality system as a platform for rapid prototyping of cartoon-art interfaces. Finally, we present a set of interaction content scenarios which use the Jeeves prototype: trash Roomba, the recycle police, and clean tracks, as well as initial exploratory evaluation of our approach. When we communicate with other humans, through any medium such as speech, gestures, the written word or art, we rely on complex levels of inter-personal understanding as a base for communication. However, when we interact with robots, common understanding is very limited, if it exists at all: robots think in the foreign language of bits and bytes, a language we humans cannot inherently understand. This poses a problem, as robot technology is quickly advancing towards autonomous and intelligent robots that will likely soon enter our everyday environments. As this happens, it is important that we design robots that will communicate effectively using language and techniques understandable by the general population.. There has been a recent shift in Human-Robot Interaction (HRI) toward the development of social robots which use human communication techniques to interact with people. This approach is fuelled by an increase in robot autonomy and their entrance into the everyday lives of the general public. In favour of social robots, Human-Computer Interaction (HCI) guru Donald Norman argues that humans have the tendency to interpret the state of things by emoting and anthropomorphising, and that robots should take advantage of this tendency by displaying their state using human-like communication techniques [20] .. In addition to more direct interaction methods like gestures and speech, humans use artistic or symbolic methods such as the written word or drawings for communication. We believe that these methods can be used by robots for expression and communication. In particular, we believe that modern cartoon art, the simplified artistic and visual language found in comic books and animated cinema, can provide powerful expression mechanisms for robots.. Robots that use cartoon art for expression as shown in Figure 1 will have a rich communication vocabulary that is widely understood by the general public. These robots will be able to utilise meaningful cartoon-like annotations, many of which are able to express human-like emotion. For example, a robot may place sweat drops on its forehead to express fatigue and the need to recharge. Using such cartoon art to express a low battery state will enable robots to communicate clearly and intuitively across many language and cultural barriers, whereas the meaning of a "low-battery" light may not be clear or users may not take the time to read, interpret, and understand a battery level meter. A robot may also use simplified cartoon-like facial expressions to convey happiness for completing a mission or fear for not completing a task on time. From a human's point of view, these expressions foster an intuitive understanding of the robot's internal state, tasks and goals, and can improve the effectiveness of social interaction in comparison to low-level and limited expressions such as blinking lights or text messages.. We implement the current version of our cartoon-art test bed using Mixed Reality (MR), a technology that utilises displays (such as a projector, Head-Mounted Display (HMD), or wall-display) to visually augment a user's vision with computer graphics: in this case, cartoon elements. MR allows computer graphics to be placed directly within the physical environment, and robots can use MR to place cartoon annotations on themselves or on their surroundings. While it is possible for robots to use other display techniques to render cartoon art, we chose MR as it is very flexible in its ability to augment interaction spaces: it can superimpose information anywhere on the robot's body, place elements in the immediate vicinity of the robot (e. g., over its head), or also allow robots to leave virtual elements behind in the environment.. In this paper, we present and explore the idea of robot expressionism, and in particular the use of cartoon-art. We start by discussing how our work relates and contributes to to the current state-of-the-art. Following, we present the idea of robot expressionism in detail, and explore the use of cartoon-art by robots. Finally, we describe a test-bed implementation that allows for diverse and rapid prototyping of cartoon-art interfaces, present a number of interactionscenario implementations and the results of an informal feasibility study. First, there is a need for a theoretical foundation, including a framework for understanding the intersection of expressionism, cartoon art, and MR in human-robot interfaces. This also includes a taxonomy for classifying the use of cartoon-art robot expressionism, a cartoon-art vocabulary for building HRI content, and a set of heuristics for design.. Secondly, we plan to expand our test bed and implement a full set of MR-based display techniques, including vision and various displays from HMDs to projectors and screens.. Thirdly, we want to develop complete, detailed HRI interfaces dedicated to specific and valid robot tasks using Jeeves. Selected tasks will utilise the robotic-expressionism based MR cartooning and would possibly take place in lab settings using available off-the-shelf robots.. Finally, we need to thoroughly study and evaluate our new interaction paradigm, techniques and interfaces. This includes an analysis of their effectiveness and ability to improve the quality of interaction relative to existing, more orthodox, robotic interfaces. Communication between humans relies on various levels of inter-personal understanding. Because of this, natural communication between humans and robots is often a challenge as robots are digital entities while humans are not. We suggest to approach this problem by designing robots that use cartoon-art expressionism, abstracting bits and bytes into higher level cartoon annotations and allowing robots to offer insight into their state using the well-understood language of cartoon and comic art. We believe that this approach can provide robots with powerful expressive ability understood by the general public.. We believe that our cartoon art approach is an effective medium for robotic interfaces for various reasons: it attempts to avoid the uncanny valley by increasing behavioural likeness to humans without attempting to increase visual likeness to humans, and it enables robots to break free from many existing physical limitations in expression by allowing them to display dynamic cartoon art on their body, around their body, or anywhere in the environment. In addition, cartoon art is a rather simple medium, using basic shapes and colours, and a clear language largely understood across many cultures and languages. Finally, cartoon art can be used in conjunction with existing robotic interfaces, strengthening and augmenting other approaches.. As a means of realising our ideas, we provide a test bed implementation called Jeeves, utilising MR technology and a Roomba robot, allowing for rapid and versatile prototyping of cartoon-art interfaces and scenarios. Using this test bed, we conducted an exploratory user study to get initial feedback on the feasibility of our approach. These results were promising, suggesting there is merit in continuing our work, and offered insight into its limitations and risks.. In conclusion, we believe that robot expressionism through cartooning is an effective, valid, and interesting approach to human-robot interaction, one that can provide a powerful, yet simple and intuitive, interface for users. In this section we discuss the issue of believability and acceptance of social robots by human users, offer a review of robotic platforms related to our work, the existing use of cartoon art for communication, and how MR has been used with robots. We present this section to establish and outline the context of our work and our contributions.

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


Route Stability in MANETs under the Random Direction Mobility Model Abstract-A fundamental issue arising in mobile ad hoc networks (MANETs) is the selection of the optimal path between any two nodes. A method that has been advocated to improve routing efficiency is to select the most stable path so as to reduce the latency and the overhead due to route reconstruction. In this work, we study both the availability and the duration probability of a routing path that is subject to link failures caused by node mobility. In particular, we focus on the case where the network nodes move according to the Random Direction model, and we derive both exact and approximate (but simple) expressions of these probabilities. Through our results, we study the problem of selecting an optimal route in terms of path availability. Finally, we propose an approach to improve the efficiency of reactive routing protocols.Index Terms-Mobile ad hoc networks, routing, modeling and analysis. M OBILE wireless networks are receiving an increasing interest due to the possibility of ubiquitous communications they offer. In particular, mobile ad hoc networks (MANETs) enable users to maintain connectivity to the fixed network or exchange information when no infrastructure, such as a base station or an access point, is available. This is achieved through multihop communications, which allow a node to reach far away destinations by using intermediate nodes as relays.. The selection and maintenance of a multihop path, however, is a fundamental problem in MANETs. Node mobility, signal interference, and power outages make the network topology frequently change; as a consequence, the links along a path may fail and an alternate path must be found. To avoid the degradation of the system performance, several solutions have been proposed in the literature, taking into account various metrics of interest. A method that has been advocated to improve routing efficiency is to select the most stable path [1] , [2] , [3] , [30] so as to avoid packet losses and limit the latency and overhead due to path reconstruction.. In this work, we focus on the stability of a routing path, which is subject to link failures caused by node mobility. We define the path duration as the time interval from when the route is established until one of the links along the route becomes unavailable, while we say that a path is available at a given time instant t when all links along the path are active at time t. Then, our objective is to derive the probability of path duration till time t and the probability of path availability at time t.. Clearly, the probabilities of path duration and path availability strongly depend on the mobility pattern of the network nodes. Indeed, the path duration (availability) is determined by the duration (availability) of its links, which on its turn depends on the movement of a node with respect to the other. To characterize the nodes position with respect to each other, we need the spatial distribution of a single node over time. One would like to be able to evaluate these quantities in presence of various mobility models, however the analysis is extremely difficult even under simple mobility patterns [4] . (Please see Section 2.2 for a detailed discussion of related work and previous results.). Here we focus on bidimensional random mobility [5] , and we consider nodes moving according to the Random Direction (RD) mobility model, which was first introduced in [6] , [7] . According to such model, each node alternates periods of movement (move phase) to periods during which it pauses (pause phase); at the beginning of each move phase, a node independently selects its new direction and speed of movement [6] . Speed and direction are kept constant for the whole duration of the node move phase.. The main contributions of our work are as follows:. . We derive for the first time an expression for the transform of the distribution of a node moving according to the RD model. This expression can be numerically inverted to obtain the temporal evolution of the probability density function of the node position, given an assigned initial condition. Closedform expressions for the temporal evolution of the distribution moments can also be derived directly from the transform (Section 4). . We propose a simple, approximate expression for the probability of link availability under the RD model, which leverages the derivation of the second moment of the node spatial distribution (Section 4.2). Our findings suggest that as time proceeds, the probability of link availability under a generic mobility model can be obtained through a similar approximation. The same approach can be applied to the computation of the probability of path duration (Section 4.3). . Based on our results on the probabilities of link availability and link duration, we study the same metrics for multihop paths, again in the case of RD mobility. We discuss the validity of the link independence assumption, which is widely used, and compare it against a refined assumption that accounts for link correlation (Section 5). We observe that the link independence assumption provides sufficiently accurate results. . We show how our analysis can be exploited to improve the efficiency of traffic routing in MANETs.. In particular, we show how to select the optimal route in terms of path availability and how to determine the optimal number of hops between source and destination, taking into account the initial distance between the nodes (Section 7). We then propose an approach to find and select routes, which accounts for the expected data transfer time over the path and allows to reduce the overhead of reactive routing protocols. We studied the duration and availability probabilities of routing paths in MANETs-a fundamental issue to provide reliable routes and short route disruption times. We focused on the Random Direction mobility model and derived both exact and approximate (but simple) expressions for the probability of path duration and availability. We used these results to determine the optimal path in terms of route stability; in particular, we showed some properties of the optimal path and we provided an approximate yet accurate expression for the optimal number of hops. Finally, based on our findings, we proposed an approach to find and select routes, which accounts for the expected data transfer time over the path and allows to reduce the overhead of reactive routing protocols.

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


Performance characteristics of gang scheduling in multiprogrammed environments Gang scheduling provides both space-slicing and time-slicing of computer resources for parallel programs. Each thread of execution from a parallel job is concurrently scheduled on an independent processor in order to achieve an optimal level of program performance. Time-slicing of parallel jobs provides for better overall system responsiveness and utilization than otherwise possible. Lawrence Livermore National Laboratory has deployed three generations of its gang scheduler on a variety of computing platforms. Results indicate the potential benefits of this technology to parallel processing are no less significant than time-sharing was in the 1960's. Interest in parallel computers has been propelled by both the economics of commodity priced microprocessors and a growth rate in computational requirements exceeding processor speed increases. The symmetric multiprocessor (SMP) and massively parallel processor (MPP) architectures have proven quite popular, yet both suffer significant shortcomings when applied to large scale problems in multiprogrammed environments. The problems must first be recast in a form supporting a high levels of parallelism. Then to achieve the inherent parallelism and performance, it is necessary to concurrently schedule CPU resources to all threads and processes associated with each program. System throughput is frequently used as a metric of success; however, ease of use, good interactivity, and "fair" distribution of resources are of substantial importance to customers in a multiprogrammed environment. Efficiently harnessing the power of a multitude processors while satisfying customer requirements is a difficult proposition for schedulers.. Most MPP computers provide concurrent scheduling through space-slicing schemes. A program is allocated a collection of processors and retains those processors until completion of the program. Scheduling is critical, yet each decision has an unknown impact upon the future: should a job be scheduled at the risk of blocking larger jobs later or should processors be left idle in anticipation of future arrivals? The lack of a time-slicing mechanism precludes good interactivity at high levels of utilization. Gang scheduling solves this dilemma by combining concurrent resource scheduling, space-slicing, and time-slicing. The impact of each scheduling decision is limited to a time-slice rather than the job's entire lifetime. Empirical evidence from gang scheduling on a Cray T3D installed at Lawrence Livermore National Laboratory (LLNL) demonstrates this additional flexibility can improve overall system utilization and responsiveness.. Most SMP computers provide both space-sharing and time-slicing, but schedule each process independently. While good parallelism may be achieved this way on a lightly loaded system, that is a luxury rarely available. The purpose of gang scheduling in this environment is to improve the throughput of parallel jobs by concurrent scheduling, without degrading either overall system throughput or responsiveness. Moreover, this scheme can be extended to scheduling of parallel jobs across a cluster of computers in order to address larger problems. Gang scheduling of DEC Alpha computers at LLNL is explored in both stand-alone and cluster environments, and shown to fulfill these expectations. Gang scheduling has been shown to provide an attractive multiprogrammed environment for multiprocessor systems in several ways:. Parallel jobs can be provided with access to all required resources simultaneously, providing the illusion of a dedicated environment Interactive and other high priority jobs can be provided with rapid response and excellent throughput Jobs with large resource requirements can be initiated rapidly, without having to wait for multiple jobs to terminate and release resources A high level of utilization can be maintained under a wide range of workloads Experience on the Cray T3D has been overwhelmingly positive. It can now sustain processor utilization rates over 95 percent through the course of a week while providing the aggregate interactive workload with a slowdown of less than 20 percent. Such performance give this distributed memory MPP a range of performance spanning large-scale parallel applications to general purpose interactive computing.. Experience on the DEC Alpha environment has also been very favorable during our testing period. A very rich and interactive environment is available on these fast SMPs, while true supercomputing class problems can be addressed by harnessing the power of a cluster for parallel jobs. Our plans call for bringing two 80 CPU DEC Alpha 8400 clusters under the control of gang scheduling in the Fall of 1997.

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


Viewpoint Invariant Texture Description Using Fractal Analysis Abstract Image texture provides a rich visual description of the surfaces in the scene. Many texture signatures based on various statistical descriptions and various local measurements have been developed. Existing signatures, in general, are not invariant to 3D geometric transformations, which is a serious limitation for many applications. In this paper we introduce a new texture signature, called the multifractal spectrum (MFS). The MFS is invariant under the bi-Lipschitz map, which includes view-point changes and non-rigid deformations of the texture surface, as well as local affine illumination changes. It provides an efficient framework combining global spatial invariance and local robust measurements. Intuitively, the MFS could be viewed as a "better histogram" with greater robustness to various environmental changes and the advantage of capturing some geometrical distribution information encoded in the texture. Experiments demonstrate that the MFS codes the essential structure of textures with very low dimension, and thus represents an useful tool for texture classification. Image descriptors that capture essential properties of surfaces and are also invariant to environmental changes would constitute ideal tools for describing, matching and recognizing these surfaces. In the Computer Vision literature the search for invariants started in the nineties (Weiss 1993) , when researchers dug up the mathematical literature on algebraic and geometric invariants. Great importance has been given to the study of quantities which are invariant to the viewpoint from which the image is taken, as such quantities would facilitate the matching of surfaces. A number of projective invariants (Mundy and Zisserman 1992) have been found, which are defined on sets of points and lines and planar curves (Weiss 1993) , and they have been used for object recognition and calibration. However, none of these descriptors is concerned with texture.. Computational studies on texture started with the seminal work of Julesz (1965) . Since then texture has been studied in the context of four major applications (Forsyth and Ponce 2002) . Earlier work was concerned with shape from texture (Garding and Lindeberg 1996; Malik and Rosenholtz 1997; Bajcsy and Lieberman 1976; Aloimonos 1988) , that is the recovery of surface orientation from texture. Most recent studies focus on the representations of texture for the purpose of segmentation, synthesis and classification. These representations are due to two factors: statistical models and local filter bank responses, and most descriptors combine both. The successful statistical models are Markov random fields (Efros and Leung 1999; Varma and Zisserman 2003) , joint distribution and co-occurrence of pixels or filter responses (Kervrann and Heitz 1995; Konishi and Yuille 2000; Azencott et al. 1997; Portilla and Simoncelli 2000; Teuner et al. 1995) and moments (Mihran 1994; Mindru et al. 2004 ). Often many filter or wavelet responses (Mallat 1989; Laine and Fan 1993) are obtained at every point or patch in the image from training images, and response distributions of training images are learned from histograms and clusters of the filter responses. Synthesis can then be achieved by constructing textures with the same distribution, segmentation by assigning class-membership, and classification by comparing a novel texture with the distributions of the training images.. Most texture descriptors are sensitive to changes in viewpoint and lighting. However, the importance of creating robust descriptions has been recognized (Zhu et al. 1998) . A number of researchers have proposed to build representation by combining images from many views or illumination directions, which have been registered (Dana and Nayar 1998; Liu et al. 2001; Zalesny and Van Gool 2001; Neubeck et al. 2004; Leung and Malik 2001; Chantler et al. 2005) . Closest related to this work are a number of studies, which achieve robustness to view-point changes by using local descriptors or filter responses, which are rotationally or locally affine invariant (Cula and Dana 2001; Schmid 2001; Zisserman 2002, 2003) . Particularly good results have been achieved with the method in Lazebnik et al. (2005) , which does not extract measurements everywhere, but only at spatial locations found by interest operators.. Here we introduce a novel texture descriptor called the MFS (multifractal spectrum vector), which is based on fractal geometry theory. The MFS is globally invariant under the bi-Lipschitz transform (see (8)), a very general transform which includes perspective transforms (viewpoint changes) and general texture surface deformations. Furthermore, the MFS has low dimension, and is very efficient to compute. We demonstrate with a number of experiments on synthesized and real image textures that, first the MFS in practice is very robust to geometric 3D transforms and non-rigid smooth transforms. Second, its performance is similar to the top methods in traditional texture retrieval and classification on standard texture datasets, and better on the high resolution dataset.. Fractal geometry has been used before in the description and classification of textures (Espinal et al. 1998; Peleg et al. 1984; Vehel et al. 1992) , for texture segmentation (Conci and Monteiro 2000; Kam and Blanc-Talon 2000; Kaplan 1999; Chaudhuri and Sarkar 1995) , as well as synthesis (Kaplan and Kuo 1995) . However, the invariance of the fractal dimension to bi-Lipschitz maps has not been utilized in the vision community. Existing approaches, which globally use fractal geometry, consider the image intensity as a surface and compute its fractal dimension in 3D (Peleg et al. 1984) , or they describe this surface as generated by fractal Brownian motion (Kaplan 1999) and expressed by the so-called Hurst parameter. In either case the fractal texture is parameterized by only a scalar number, which is not enough for a good characterization of the texture. Actually most fractal-based approaches describe the texture by only a few numbers. For example, Chaudhuri and Sarkar (1995) computes the fractal dimensions of a few filtered and intensity modified versions of the image, and Peleg et al. (1984) computes the logarithmic texture parameters at multiple scales instead of enforcing the fractal behavior on all scales. For those methods which utilize the multi-fractal-spectrum (Kam and Blanc-Talon 2000; Xia et al. 2006) , with the exception of Vehel et al. (1992) , it is only used for local feature description, in which case there is no global invariance to bi-Lipschitz maps. Moreover, in previous work the fractal dimension was defined only on the image intensity, which makes it sensitive to changes in illumination.. In our approach, we look at the image as an union of point sets. The point sets are the level sets under a level set categorization of image points. Intuitively, the MFS is the extension of the fractal dimension. The MFS encodes the fractal dimension of every level set. By choosing different categorizations of image points different MFS vectors are obtained. The categorizations in our MFS approach are based on the density function (also referred to as Hölder exponent or local fractal dimension Varma and Garg 2007) defined on (functions of) the image intensity, and this makes it more robust to variations in illumination.. The paper is organized as follows. Section 2 gives a brief introduction to fractal geometry and MFS theory. Section 3 presents our MFS texture descriptor and its implementation. Section 4 shows the MFS's invariance to spatial bi-Lipschitz transforms and local affine illumination changes and discusses the MFS in comparison to the histogram. Section 5 provides experiments on texture retrieval and classification and a comparison to other methods. Section 6 presents the conclusions and discusses future work.. A preliminary version of this work has appeared in Xu et al. (2006) . The new paper has a different implementation of the MFS. Instead of the moment-based approach (Appendix A), a direct method (Sect. 3.4) is employed for better performance. Furthermore, in the experiments on classification (Sect. 5), a procedure has been included to select a subset of the original MFS, leading to improved results. We showed both in theory and experiment that the MFS offers a new and promising efficient texture description. Not only does it compete in performance with other top methods in classifying textures, but it also has a mathematically justified global bi-Lipschitz spatial invariance and local linear invariance to illumination. No other approach proposed in the past has such global properties. In practice, the MFS is very robust in handling spatial changes, and it has satisfactory performance in handling illumination changes. Experiments on a standard dataset demonstrated its effectiveness and efficiency in texture retrieval and classification tasks, achieving a performance comparable to the top feature based methods, but with far lower dimension. Furthermore, the experiments on a high-resolution texture database clearly showed that the MFS is capable of utilizing the extra details provided by images of high resolution to improve its performance. It is worth noting that the MFS is very efficient and simple to compute without requiring feature detection and clustering. Thus a large image size doesn't impose much computational burden on the computation of the MFS descriptor.. In future work we will be investigating whether the MFS can be applied to other more discriminative measurements. Can we take local invariant feature descriptors, such as SIFT features (Lowe 2004) , spin images (Johnson and Hebert 1999) , or MSR features (Matas et al. 2002) and define an MFS on them to obtain a global spatial descriptor? If this is the case, we will have a very useful tool for many recognition tasks in vision. . where the sum is over the r-mesh squares {B(x, r)} for which μ(B(x, r)) > 0. For a series of r = 1, 2, . . . , n, we have corresponding measurements M r (q). Then the power law behavior of M r (q) is identified by the number β(q) which is defined as:. β(q) = Slope of log(M r (q)) vs log(r).. In other word, β(q) is the slope of the line which best fits the data sets:. {log(M r (q)), log(r)}.. It has been shown in Falconer (1997) that the MFS and β(q) are related to each other by a Legendre transform as. where. Using (11) and (12) we estimate the MFS. It can be seen that we could obtain a measure of the reliability of β(q) from the fitting residual in (10). However, after the Legendre transform, we don't have any idea how to estimate the reliability of f (α), anymore.

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


Determining Semantic Similarity among Entity Classes from Different Ontologies Semantic similarity measures play an important role in information retrieval and information integration. Traditional approaches to modeling semantic similarity compute the semantic distance between definitions within a single ontology. This single ontology is either a domain-independent ontology or the result of the integration of existing ontologies. We present an approach to computing semantic similarity that relaxes the requirement of a single ontology and accounts for differences in the levels of explicitness and formalization of the different ontology specifications. A similarity function determines similar entity classes by using a matching process over synonym sets, semantic neighborhoods, and distinguishing features that are classified into parts, functions, and attributes. Experimental results with different ontologies indicate that the model gives good results when ontologies have complete and detailed representations of entity classes. While the combination of word matching and semantic neighborhood matching is adequate for detecting equivalent entity classes, feature matching allows us to discriminate among similar, but not necessarily equivalent, entity classes. We have presented a model for semantic similarity across different ontologies. The similarity model provides a systematic way to detect similar entity classes across ontologies based on the matching process of each of the specification components in the entity class representations (i.e., synonym sets, distinguishing features, and semantic neighborhoods). The similarity model is useful as a first step in an ontology integration, since it may detect most similar entity classes across ontologies. These similar entity classes could be then analyzed with user input to derive semantic relations, such as is-a relation or synonym relations, to create an integrated of ontology. Experiments using the similarity model with different ontologies indicated that different components of entity class representations have different effects on the similarity evaluations. Synonym sets and semantic neighborhoods are good components to use for detecting equivalent or most similar entity classes across ontologies. Distinguishing features are suitable for detecting entity classes that are somewhat similar, that is, entity classes that are not synonyms and that are located far apart in the hierarchical structure (e.g., stadium and athletic field in the WordNet ontology).. This work has concentrated on entity classes and has compared distinguishing features in terms of a strict string matching between synonym sets that refer to those features. The semantic similarity among features, however, has been left for future work. For example, parts are also

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