VMNet: Realistic Emulation of Wireless Sensor Networks Abstract-Many research activities on Wireless Sensor Networks (WSNs) need detailed performance statistics about protocols, systems, and applications; however, current simulation tools and testbeds lack mechanisms to report these statistics realistically and conveniently. To address this need, we have developed a WSN emulator, VMNet. VMNet emulates networked sensor nodes at the level of CPU clock cycles and executes the binary code of real applications directly. It emulates the radio channel with loss and noise as well as emulates the peripherals in sufficient detail. Moreover, VMNet takes parameter values from the real world and logs detailed runtime information of emulated nodes. Consequently, the application performance, both in response time and in power consumption, is reported realistically in VMNet, as demonstrated by our comparison studies with real sensor networks. I N-DEPTH studies on wireless sensor networks (WSNs) require realistic simulation and emulation environments. Even though field studies on real WSNs are of great impact [8] , [17] and recent real WSN testbeds such as MoteLab [31] are also useful for controllable experiments, the deployment, maintenance, and data collection tasks of these real WSNs are labor-intensive and error-prone. Moreover, studying the performance of WSN protocols and applications needs results in various settings, on various aspects of the system, and at various levels of details. Therefore, it is desirable that the experiments are conducted in a realistic but conveniently controllable environment. As evidence, recent work (e.g., EmStar [11] , TOSSIM [15] , and Power-TOSSIM [24] ) has provided such software environments for the initial development and deployment of WSN applications. In this paper, we follow up with VMNet [30] , a WSN emulator focusing on enabling realistic performance evaluation of WSNs.. We choose emulation over simulation in VMNet for fidelity and user convenience. As the performance of WSNs involves various factors, we start from detailed emulation and gradually raise the level of abstraction rather than abstracting a few performance factors in the very beginning. Furthermore, emulation is convenient to users since the binary code of a target system can be executed directly in an emulator. This feature also eliminates possible interference from implementation and compilation. Additionally, emulation of an entire system allows the evaluation of cross-layer techniques for OSs, protocols, and applications of WSNs.. In VMNet, a target WSN is emulated as a VMN (Virtual Mote Network). Each sensor node (mote) is emulated as a VM (Virtual Mote). The CPU of a mote is emulated at the clock cycle level, and the sensing units and other hardware peripherals are emulated in sufficient detail. The radio signal transmission is emulated by the communication between VMs with the effects of path loss and noise. Finally, the binary code of a target WSN application can be run directly on the VMN for debugging, testing, and, most importantly, performance evaluation.. We select two performance metrics for evaluation: One is response time and the other power consumption. Response time is critical to some WSN applications, such as chemical detection, whereas power consumption is the major concern for applications in which replacing batteries is inconvenient or infeasible. In order to evaluate the response time and power consumption, VMNet logs detailed running status of the application code under evaluation. The running status is categorized by the operations of the CPU, the flash memory, the sensor board, and the radio module. The virtual running time (i.e., the time in the emulated world) of each operation is also logged. Using these logged statistics from emulation and the parameter values (e.g., electric current) from realworld measurement, VMNet is able to calculate the two performance metrics.. We have evaluated VMNet in comparison with real WSNs, TOSSIM, and PowerTOSSIM. Our results demonstrate that, with the basic measurement statistics of real WSNs and the running status logged in VMNet, the estimated running time and power consumption in VMNet are close to those in the target WSNs. In addition, VMNet facilitates detailed studies on data delivery schemes and network protocols. Due to its high fidelity, VMNet has an emulation speed of 1/10 of that of TOSSIM on average.. The remainder of this paper is organized as follows: Section 2 describes the VMNet architecture and the VM organization. Section 3 presents the design and implementation of VMNet in detail. We describe our experimental results in Section 4, and discuss related work in Section 5.. Finally, we draw conclusions and outline future research directions in Section 6. There have been a number of simulators for network systems. ns-2 [21] is a commonly used discrete simulator that models a network as multiple layers. J-sim [13] is also a widely used simulator that employs layered network models. Unlike ns-2, J-sim has a Java interface. However, these simulators with layered network models are unsuitable for performance evaluation of WSNs because the performance of WSNs is affected by the hardware, the OS, the networking protocols, the application code, as well as cross-layer optimization techniques.. There has also been work on detailed CPU emulation. For instance, Embra [32] was developed to emulate the MIPS R3000/R4000 processor. Studies on Embra demonstrate that this kind of CPU emulation is crucial for high fidelity emulation, safe abstraction, and modeling. Another example is the instruction-level power analysis in Myrmigki by Stanley-Marbell and Hsiao, which shows that an instruction-level power consumption model can be accurate [20] . Both systems show that the level of detail in modeling or emulating the CPU has a significant impact on performance analysis. Along this line, we used a modified VCPU module for Crossbow MICA2 motes in VMNet. This VCPU module is modified from Atemu [1] , [23] , a detailed CPU emulator for Atmel CPUs [2] . It emulates the registers and executes the CPU instructions. We modified the Atemu CPU emulator to emulate the CPU halt and the UART communication and to log the operations of the CPU. Moreover, we added our UART and radio channel emulation modules as well as running status logging for performance evaluation.. TOSSIM [15] and EmStar [11] are two WSN simulation tools that are most related to our work. TOSSIM is a TinyOS simulator with a network model, whereas EmStar is a software environment for developing and deploying microserver grade sensor nodes. Both of them provide researchers powerful tools to test and to debug the application programs. However, neither of them performs CPU emulation nor focuses on realistic performance evaluation as VMNet does. The TinyOS and application code is compiled for PC in both TOSSIM and EmStar, not compiled for motes directly as in VMNet. Finally, both TOSSIM and EmStar allow trade-offs between fidelity and simulation speed by simulating at different levels (e.g., bit or packet level). We currently trade emulation speed for fidelity in VMNet and are investigating the alternative of utilizing networked PCs to improve the emulation speed.. Adding the feature of power estimation to TOSSIM, PowerTOSSIM [24] estimates power consumption of target nodes through logging the operations both in TOSSIM modules and in the application code. In comparison, VMNet does not instrument the application code. In PowerTOSSIM, the electric current of each type of hardware peripheral, such as the CPU, radio, sensor, EEPROM, and LEDs, is measured separately. Subsequently, PowerTOS-SIM uses the measured electric currents as its experiential power model. In contrast, VMNet categorizes the running states of a mote with respect to the operations of its major components and measures the electric currents of the running states for parameter values.. Most recently, Motelab [31] , a WSN testbed consisting of about 30 MICAZ nodes [6] , has been developed and deployed in the Maxwell Dworkin Laboratory at Harvard. It allows public access for developing and testing TinyOS applications. Users can program the nodes, run TinyOS application programs, and get the logs of the WSN packets. While this testbed is valuable for small-scale experiments on real WSNs in a lab environment, simulators and emulators, including our VMNet, are still irreplaceable for larger experiments in various settings on various performance aspects.. Additionally, VMNet can be seen as an outgrowth of our previous work on a distributed wired and wireless network emulation framework EMPOWER [36] . Our previous work on wireless network evaluation [37] taught us some lessons in evaluating wireless networks. In this paper, we have presented VMNet, a WSN emulator for realistic performance evaluation. It emulates and logs the operations of each component in a sensor mote at the level of CPU clock cycles. It also emulates the radio transmission channel with signal loss and noise. We categorize the running states of sensor motes and study their power consumption characteristics in the real-world. Subsequently, we use these real-world statistics for the performance estimation of VMNs.. We have conducted extensive experiments to evaluate VMNet in comparison with real WSNs, TOSSIM and PowerTOSSIM. We find that VMNet estimates the response time and power consumption of VMNs reasonably well. Moreover, VMNet enables quantitative studies on VMNs such as the power consumption of the running states and that of different data aggregation schemes. Finally, we have evaluated the emulation speed of VMNet in comparison with the simulation speed of TOSSIM and PowerTOSSIM and have investigated the performance bottleneck of single-PC VMNet.. We conclude that detailed emulation in VMNet is useful for researchers in many areas such as architecture, OS, and sensor network query processing. It also provides insights for parameter value setting and validation of WSN simulation and modeling. The documentation and the code base of VMNet are online at http://www.cs.ust.hk/vmnet for public use.. The immediate focus of our ongoing work is to improve the emulation speed for large VMNs. We are investigating multiple abstraction levels to trade fidelity for speed and extending VMNet to run on networked PCs. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib. With the electric current and voltage of a sensor mote measured, its power consumption can be computed using (6), which is similar to (5) in Section 3.4 except the intervals are between two measurements. U i and I i are the voltage and the electric current in a measurement, N the total number of measurements, and t i the interval between two measurements.. To choose a suitable path loss model for simulating the radio channel in the electronic lab, we measured the path loss in the lab using the MICA2 sensor motes and compared with those computed from the two path loss models that we implemented in VMNet.. To measure the path loss in the lab, we ran two TinyOS application programs, each on one sensor mote. One mote kept sending packets and the other kept receiving. Since the transmitted power P T was 0.1 mW [5] under the default configuration in TinyOS, we only measured the received power P R via the Radio Signal Strength Indicator (RSSI) [5] of the receiving mote. Then, we computed the path loss as P R =P T .. To estimate the path loss in the lab using the models, we set the parameter values for both models. The parameter values we used in Bullington's model [3] were as follows:. The antenna height of a MICA2 sensor mote was 0.12 meters, the antenna gains G R and G T were both 1, and the minimal effective height h 0 of an antenna was 0 for the 915 MHz radio in a building [3] , [5] . In Seidel and Rapport's model [26] , we set the parameters n as 4.01 and as 4.3 according to our lab environment.. The path loss with respect to distance in our environment is shown in Fig. 5 . As the results from Bullington's model were closer to the measurements than those from Seidel and Rapport's were, we used Bullington's model in VMNet for all experiments in our lab. Note that, even though Bullington's model was chosen for simulating the environment of our lab, there are environments in which Seidel's model is more suitable [16] , [35] .. Throughout the experiments, the transmitted power P T of the RFM on a node was set to 0.1 mW [5] by default and did not change dynamically. With this configuration, we measured the average transmission range to be seven meters in the real WSNs in our lab. Note that VMNet can emulate and log the operations when the P T of a VM is dynamically configured. However, the oscilloscope may not be able to capture the change because its minimum sampling period, four milliseconds, is too large to capture the microsecond-level operations such as setting configuration registers of the RFM.. Since VMNet emulates radio transmission at the radio signal level, for a fairer comparison, we configured TOSSIM and PowerTOSSIM to simulate at the bit level even though they can simulate either at the bit level or at the packet level. Other configurations such as BER and transmission range in TOSSIM and PowerTOSSM were the same as in VMNet.. To evaluate the performance of query processing application programs, we used four queries, Queries 1-4, to run on TinyDB in the experiments. The only difference between Queries 1-3 is the length of the sampling period, which is useful to reveal the performance effects of various factors such as running state transitions and data volume. Query 4 was used to evaluate data aggregation schemes since it involves the computation of the average function.

O O B O B I I O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 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 B 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 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 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 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 B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O 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 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


On computing the minimum feedback vertex set of a directed graph by contraction operations Abstract-Finding the minimum feedback vertex set (MFVS) in a graph is an important problem for a variety of computer-aided design (CAD) applications and graph reduction plays an important role in solving this intractable problem. This paper is largely concerned with three new and powerful reduction operations. Each of these operations defines a new class of graphs, strictly larger than the class of contractible graphs [Levy and Low (1988)], in which the MFVS can be found in polynomial-time complexity. Based on these operations, an exact algorithm run on branch and bound manner is developed. This exact algorithm uses a good heuristic to find out an initial solution and a good bounding strategy to prune the solution space. To demonstrate the efficiency of our algorithms, we have implemented our algorithms and applied them to solving the partial scan problem in ISCAS'89 benchmarks. The experimental results show that if our three new contraction operations are applied, 27 out of 31 circuits in ISCAS'89 benchmarks can be fully reduced. Otherwise, only 12 out of 31 can be fully reduced. Furthermore, for all ISCAS'89 benchmarks our exact algorithm can find the exact cutsets in less than 3 s (CPU time) on SUN-UltraII workstation. Therefore, the new contraction operations and our algorithms are demonstrated to be very effective in the partial scan application.Index Terms-Algorithm, branch and bound, design for testability, graph theory, minimum feedback vertex set, partial scan. The contributions of this paper are summarized as follows. 1) Three new and powerful contraction operations that can further reduce a graph are developed for computing the MFVS of a graph. These contraction operations define a new class of graphs called reducible graphs whose MFVS can be found in polynomial-time complexity. Furthermore, the contraction operations can be incorporated with the existent exact algorithms and the approximation algorithms to improve the speed of the exact algorithms and to reduce the value of approximation factors of the approximation algorithms. 2) An algorithm based on branch and bound strategy is developed for solving the MFVS problem exactly. This algorithm employs a heuristic that produces a good initial solution and a good bounding strategy to prune the solution space. We have implemented our algorithms and applied them to solving the partial scan problem in ISCAS'89 benchmarks. In these experiments, our new contraction operations can significantly enhance not only the quality of the FVS produced by our heuristic algorithms but also the speed of our exact algorithm. The experimental results further show that our exact algorithm can find out the exact cutsets for all ISCAS'89 benchmarks in less than 3 s (CPU time) on SUN-UltraII workstation. Therefore, the new contraction operations and our algorithms are demonstrated to be very effective in the partial scan application.

O O O B I I I 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 B O O B I 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 O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O 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 I I B I I B I B I I I 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 B O O B I 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 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 O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O


Parallel implementation of the TRANSIMS micro-simulation This paper describes the parallel implementation of the TRANSIMS traffic micro-simulation. The parallelization method is domain decomposition, which means that each CPU of the parallel computer is responsible for a different geographical area of the simulated region. We describe how information between domains is exchanged, and how the transportation network graph is partitioned. An adaptive scheme is used to optimize load balancing.We then demonstrate how computing speeds of our parallel micro-simulations can be systematically predicted once the scenario and the computer architecture are known. This makes it possible, for example, to decide if a certain study is feasible with a certain computing budget, and how to invest that budget. The main ingredients of the prediction are knowledge about the parallel implementation of the micro-simulation, knowledge about the characteristics of the partitioning of the transportation network graph, and knowledge about the interaction of these quantities with the computer system. In particular, we investigate the differences between switched and non-switched topologies, and the effects of 10 Mbit, 100 Mbit, and Gbit Ethernet.As one example, we show that with a common technology -100 Mbit switched Ethernet -one can run the 20 000-link EMME/2-network for Portland (Oregon) more than 20 times faster than real time on 16 coupled Pentium CPUs. It is by now widely accepted that it is worth investigating if the microscopic simulation of large transportation systems [6, 42] is a useful addition to the existing 1 nagel@inf.ethz.ch. Postal: ETH Zentrum IFW B27.1, 8092 Zürich, Switzerland 2 marcus.rickert@topmail.de set of tools. By "microscopic" we mean that all entities of the system -travelers, vehicles, traffic lights, intersections, etc. -are represented as individual objects in the simulation [14, 32, 15, 31, 12, 20, 44] .. The conceptual advantage of a micro-simulation is that in principle it can be made arbitrarily realistic. Indeed, microscopic simulations have been used for many decades for problems of relatively small scale, such as intersection design or signal phasing. What is new is that it is now possible to use microscopic simulations also for really large systems, such as whole regions with several millions of travelers. At the heart of this are several converging developments:. (1) The advent of fast desktop workstations. ( 2) The possibility to connect many of these workstations to parallel supercomputers, thus multiplying the available computing power. This is particularly attractive for agent-based transportation simulations since they do not benefit from traditional vector supercomputers. (3) In our view, there is a third observation that is paramount to make these approaches work: many aspects of a "correct" macroscopic behavior can be obtained with rather simple microscopic rules.. The third point can actually be rigorously proven for some cases. For example, in physics the ideal gas equation, pV = mRT , can be derived from particles without any interaction, i.e. they move through each other. For traffic, one can show that rather simple microscopic models generate certain fluid-dynamical equations for traffic flow [25] .. In consequence, for situations where one expects that the fluid-dynamical representation of traffic is realistic enough for the dynamics but one wants access to individual vehicles/drivers/..., a simple microscopic simulation may be the solution.. In addition to this, with the microscopic approach it is always possible to make it more realistic at some later point. This is much harder and sometimes impossible with macroscopic models.. The TRANSIMS (TRansportation ANalysis and SIMulation System) project at Los Alamos National Laboratory [42] is such a micro-simulation project, with the goal to use micro-simulation for transportation planning. Transportation planning is typically done for large regional areas with several millions of travelers, and it is done with 20 year time horizons. The first means that, if we want to do a micro-simulation approach, we need to be able to simulate large enough areas fast enough. The second means that the methodology needs to be able to pick up aspects like induced travel, where people change their activities and maybe their home locations because of changed impedances of the transportation system. As an answer, TRANSIMS consists of the following modules:. • Population generation. Demographic data is disaggregated so that we obtain individual households and individual household members, with certain charac-teristics, such as a street address, car ownership, or household income [3] .. • Activities generation. For each individual, a set of activities and activity locations for a day is generated [43, 5] .. • Modal and route choice. For each individual, modes and routes are generated that connect activities at different locations [18] .. • Traffic micro-simulation. Up to here, all individuals have made plans about their behavior. The traffic micro-simulation executes all those plans simultaneously. In particular, we now obtain the result of interactions between the plansfor example congestion. As mentioned above, micro-simulation of traffic, that is, the individual simulation of each vehicle, has been done for quite some time (e.g. [16] ). A prominent example is NETSIM [14, 32] , which was developed in the 70s. Newer models are, e.g., the Wiedemann-model [45] , AIMSUN [15] , INTEGRATION [31] , MITSIM [12] , HUTSIM [20] , or VISSIM [44] .. NETSIM was even tried on a vector supercomputer [22] , without a real breakthrough in computing speeds. But, as pointed out earlier, ultimately the inherent structure of agent-based micro-simulation is at odds with the computer architecture of vector supercomputers, and so not much progress was made on the supercomputing end of micro-simulations until the parallel supercomputers became available. One should note that the programming model behind so-called Single Instruction Multiple Data (SIMD) parallel computers is very similar to the one of vector supercomputers and thus also problematic for agent-based simulations. In this paper, when we talk about parallel computers, we mean in all cases Multiple Instruction Multiple Data (MIMD) machines.. Early use of parallel computing in the transportation community includes parallelization of fluid-dynamical models for traffic [9] and parallelization of assignment models [17] . Early implementations of parallel micro-simulations can be found in [8, 28, 1] .. It is usually easier to make an efficient parallel implementation from scratch than to port existing codes to a parallel computer. Maybe for that reason, early traffic agent-based traffic micro-simulations which used parallel computers were completely new designs and implementations [6, 42, 1, 28] . All of these use domain decomposition as their parallelization strategy, which means that the partition the network graph into domains of approximately equal size, and then each CPU of the parallel computer is responsible for one of these domains. It is maybe no surprise that the first three use, at least in their initial implementation, some cellular structure of their road representation, since this simplifies domain decomposition, as will be seen later. Besides the large body of work in the physics community (e.g. [46] ), such "cellular" models also have some tradition in the transportation community [16, 10] .. Note that domain decomposition is rather different from a functional parallel decomposition, as for example done by DYNAMIT/MITSIM [12] . A functional decomposition means that different modules can run on different computers. For example, the micro-simulation could run on one computer, while an on-line routing module could run on another computer. While the functional decomposition is somewhat easier to implement and also is less demanding on the hardware to be efficient, it also poses a severe limitation on the achievable speed-up. With functional decomposition, the maximally achievable speed-up is the number of functional modules one can compute simultaneously -for example micro-simulation, router, demand generation, ITS logic computation, etc. Under normal circumstances, one probably does not have more than a handful of these functional modules that can truly benefit from parallel execution, restricting the speed-up to five or less. In contrast, as we will see the domain decomposition can, on certain hardware, achieve a more than 100-fold increase in computational speed.. In the meantime, some of the "pre-existing" micro-simulations are ported to parallel computers. For example, this has recently been done for AIMSUN2 [2] and for DYNEMO [38, 29] , 4 and a parallelization is planned for VISSIM [44] (M. Fellendorf, personal communication).

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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 I 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 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 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


Monochromatic and Bichromatic Reverse Top-k Queries Abstract-Nowadays, most applications return to the user a limited set of ranked results based on the individual user's preferences, which are commonly expressed through top-k queries. From the perspective of a manufacturer, it is imperative that her products appear in the highest ranked positions for many different user preferences, otherwise the product is not visible to potential customers. In this paper, we define a novel query type, namely the reverse top-k query, that covers this requirement: "Given a potential product, which are the user preferences that make this product belong to the top-k query result set?." Reverse top-k queries are essential for manufacturers to assess the impact of their products in the market based on the competition. We formally define reverse top-k queries and introduce two versions of the query, monochromatic and bichromatic. First, we provide a geometric interpretation of the monochromatic reverse top-k query to acquire an intuition of the solution space. Then, we study in detail the case of bichromatic reverse top-k query, and we propose two techniques for query processing, namely an efficient threshold-based algorithm and an algorithm based on materialized reverse top-k views. Our experimental evaluation demonstrates the efficiency of our techniques. R ECENTLY, the support for rank-aware query processing has attracted much attention in the database research community. Top-k queries retrieve only a ranked set of k objects that best match the user preferences, thus avoiding overwhelming result sets. Since most applications return to the user only a limited set of ranked results based on the individual user's preferences, it is imperative for a manufacturer that her products appear in the highest ranked positions for many different user preferences, otherwise the product is not visible to potential customers. In this paper, we assume that users express their preferences through linear top-k queries, which are defined by assigning a weight to each of the scoring attributes, indicating the importance of each attribute to the user. This model is in agreement with the notion of preference [1] , [2] and is widely adopted in related work.. In this paper, we define a novel query type, namely the reverse top-k query, which can be expressed as follows: "Given a potential product, which are the user preferences for which this product is in the top-k query result set?" We formally define reverse top-k queries and study two versions of the query: monochromatic and bichromatic reverse top-k queries. In the former, there is no knowledge of user preferences and the aim is to estimate the impact of a potential product in the market. In the latter, a data set with user preferences is given and a reverse top-k query returns those preferences that rank a potential product highly. To the best of our knowledge, this is the first work that addresses this problem.. Contributions. First, we introduce and formally define a novel query type called reverse top-k query (Section 3) and present two versions, namely monochromatic and bichromatic. We analyze the geometrical properties for the 2-dimensional case of the monochromatic reverse top-k query and provide an algorithmic solution (Section 4). Furthermore, we discuss the geometric interpretation of the solution space for higher dimensionality. Then, we study in detail the case of bichromatic reverse top-k query. Such a query, if computed in a straightforward manner, requires evaluating a top-k query for each user preference in the database, which is prohibitively expensive even for moderate data sets. Instead, we propose an efficient and progressive thresholdbased algorithm, called Reverse top-k Threshold Algorithm (RTA), for processing bichromatic reverse top-k queries for arbitrary data dimensionality (Section 5). RTA eagerly discards candidate user preferences, without processing the respective top-k queries. In addition, we present an indexing structure based on space partitioning, which materializes reverse top-k views, in order to further improve reverse top-k query processing (Section 6). We discuss the construction, usage, and maintenance of the index based on materialized reverse top-k views. We conduct a thorough experimental evaluation that demonstrates the efficiency of our algorithms (Section 7). It is noteworthy that our algorithms consistently outperform a brute force algorithm by 1 to 3 orders of magnitude in terms of required number of top-k evaluations. Finally, Section 8 reviews the related work and we conclude in Section 9.. This paper extends our preliminary work [3] and provides a more thorough study of the problem. Furthermore, we present new experimental results that lead to interesting findings and conclusions. In this paper, we introduce the reverse top-k query which retrieves all weighting vectors for which the query point belongs to the top-k result set. The proposed query type is important for market analysis and for estimating the impact of a product based on the user preferences and the competitors products. We study two versions of reverse top-k queries, namely monochromatic and bichromatic. For the monochromatic reverse top-k query only a data set of products is given, while for the bichromatic reverse top-k a set of weighting vectors is also available. The experimental evaluation demonstrates the efficiency of the proposed algorithms. As reverse top-k queries are inherently related to top-k query processing, we summarize some representative work here. One family of algorithms are those based on preprocessing techniques. Onion [7] precomputes and stores the convex hulls of data points in layers. Then, the evaluation of a linear top-k query is accomplished by processing the layers inwards, starting from the outmost hull. Prefer [1] uses materialized views of top-k result sets, according to arbitrary scoring functions. Onion and Prefer are mostly appropriate for static data, due to the high cost of preprocessing. Efficient maintenance of materialized views for top-k queries is discussed in [10] . The robust index [2] is a sequential indexing approach that improves the performance of Onion [7] and Prefer [1] . The main idea is that a tuple should be placed at the deepest layer possible, to reduce the probability of accessing it at query processing time, without compromising the correctness of the result. Later, in [11] , the dominant graph is proposed as a structure that captures dominance relationships between points. Another family of algorithms focuses on computing the top-k queries over multiple sources, where each source provides a ranking of a subset of attributes only. Fagin et al. [12] introduce TA and NRA algorithms. Variations of them have been proposed leading to various threshold-based algorithms [13] , [14] , [15] , [16] .. Reverse nearest neighbor queries were originally proposed in [4] . An RNN query finds the set of points that have the query point as their nearest neighbor. Recently, reverse furthest neighbor queries [17] are introduced, that are similar to RNN queries. The reverse skyline query [5] , [6] identifies customers that would be interested in a product based on the dominance of the competitors products. DADA [18] aims to help manufactures position their products in the market, based on three types of dominance relationship analysis queries. Creating competitive products has been recently studied in [19] . Nevertheless in these approaches, user preferences are expressed as data points that represent preferable products, whereas reverse top-k queries examine user preferences in terms of weighting vectors. Miah et al. [20] study a different problem, again from the perspective of manufacturers. The authors propose an algorithm that selects the subset of attributes that increases the visibility of a new product. Finding the most influential products with reverse top-k queries has been studied in [21] .

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 I I O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I 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 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 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 B I I O O O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I 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 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 I I 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 B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I 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 B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O 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 B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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


Practical DHT-based location service for wireless mesh networks Mobility management in Wireless Mesh Networks (WMN) is a hot topic still lacking a final, widely accepted, and deployed solution. The major drawbacks of existing proposals is the fact that they rely on some sort of flooding-based technique and very often they need support from end-users' devices. Flooding in wireless environments leads to increased latency and broadcast storm problems, thus providing low performances. In this paper, we argue that a DHT-based approach can overcome such limitations and provide an effective solution to the mobility management problem. A preliminary evaluation of our DHT-based scheme on a real WMN test-bed shows encouraging results when compared to previous solutions. Through a number of practical experiments, we showed that a DHT-based location service is a potential candidate to solve the problem of locating mobile nodes in wireless mesh networks. Next steps of the present work include performing a more thorough and rigorous analysis, using a larger number of nodes and several different metrics. Furthermore, we plan to explore the sensitivity of our proposal to the underlying routing protocol and link variations. Wireless Mesh Networks (WMNs) are an emerging class of wireless networks, able to organize and configure themselves in a dynamic way [2] . WMNs define two types of nodes: Wireless Mesh Routers (WMRs) and Wireless Mesh Clients (WMCs), where WMRs form a backbone and offer network access to WMCs. Such a two-tier architecture enables new protocol design that leaves out WMCs from the routing, forwarding, and mobility management infrastructure.. Mobility management of WMCs is a very important issue, since users are more and more mobile due to the widespread of wireless technology. As shown in Fig. 1 Despite a number of advantages, the performance of mesh networks in terms of mobility management is still poor. This is due to the architectural differences outlined above, making mobility management approaches designed for WLANs and MANETs not suitable for WMNs.. Several mobility management proposals can be found in the literature. They are in general adaptations of existing solutions introduced either for WLANs or for MANETs. This turns out to introduce severe limitations in the design process. Indeed, solutions from the MANET world require that WMCs participate in the mobility management process. In contrast, the main requirement in WMNs is to efficiently detect WMCs' mobility without disrupting existing connections, and with no modifications or additional software at the WMC side. Solutions adapted from the WLAN domain rely on flooding and, while performing reasonably well in the wired part of WLANs, they raise several issues, like the broadcast storm problem [4] , in a wireless multi-hop context. Works like ROAM [5] and EMIPv6 [3] show how Distributed Hash tables (DHT) can be of great help when solving the above mentioned problems. ROAM is based on an overlay Internet infrastructure. It uses rendezvous points on a DHT overlay for indirect data packet delivery, which leads to significant packet-delivery latency. EMIPv6 involves the end users by introducing an end-to-end approach, where nodes exchange directly mobility messages between them. A DHT overlay is used if messages cannot be directly delivered. EMIPv6 requires modifications to the existing IPv6 stack. Moreover, it does not support micro-mobility (i.e., inside the same subnetwork).. We propose a distributed micro-mobility management service for WMNs based on DHT. The use of DHT allows avoiding flooding and retrieving a WMC's position by a simple unicast query.

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 O O O O O O O O O O O O O O O O O O O O O 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 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 B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B O O O B O O O O O O O O O O O O O


Deadline-based scheduling in support of real-time data delivery The use of deadline-based scheduling in support of real-time delivery of application data units (ADUs) in a packet-switched network is investigated. Of interest is priority scheduling where a packet with a smaller ratio of T/H (time until delivery deadline over number of hops remaining) is given a higher priority. We refer to this scheduling algorithm as the T/H algorithm. T/H has time complexity of O(logN) for a backlog of N packets and was shown to achieve good performance in terms of the percentage of ADUs that are delivered on time. We develop a new and efficient algorithm, called T/H-p, that has O(1) time complexity. Many applications running on the Internet require timely delivery of real-time data. Examples of real-time data include stock quote updates and stock trades in on-line trading, bids in an on-line auction, state updates in a distributed multi-player on-line game, time-sensitive business documents in electronic commerce applications, video and audio data in a video conference, and voice data in IP telephony. To ensure timely delivery of real-time data, quality of service (QoS) support at the transport network is required.. Techniques for QoS support include fair queueing and buffer management at routers [1, 2] , integrated services and resource reservation [3, 4] , and differentiated services [5] . These strategies are based on the notion of a flow; each flow specifies its bandwidth and performance requirements, and QoS support is provided on a per flow basis. For certain types of real-time data transfer, such as the delivery of a small document (e.g., a stock quote update), it might be difficult to specify a flow with given bandwidth requirements because data will not be presented to the network for a significant period of time.. In [6] , a deadline-based network resource management framework in support of real-time document delivery was developed. In that framework, a document is viewed as an application data unit (ADU); it may correspond to a file or to a frame in audio or video transport. Each ADU is associated with a delivery deadline, which is a time-of-day measure that represents the absolute time at which this ADU should be delivered at the receiver. This applicationlayer deadline is mapped onto a network-layer deadline, which is carried by packets and used by routers for channel scheduling purpose. Deadline-based channel scheduling is employed at the network layer; the objective is to maximize the percentage of ADUs that are delivered on time.. Deadline-based scheduling algorithms have been studied in the context of job scheduling [7, 8] . In [7] , a network of servers is considered and an algorithm that selects the job with the smallest ratio T/H at each server, where T is time until deadline and H is number of hops remaining, was shown to perform well in terms of the percentage of jobs that are completed on-time. We will refer to this algorithm as T/H. T/H has also been studied in the context of packet-switched networks [9, 10, 11] .. The T/H algorithm has time complexity O(logN) for a backlog of N packets. Its efficient implementation in high-speed routers requires hardware designs [12, 13, 14] where the resources required increases with the number of priority levels, or in the context of T/H, the number of dissimilar T/H values associated with packets to be processed.. In [6] , the authors proposed a variant of the T/H algorithm called T/H-L. It is based on the use of a threshold L. Packets with T/H ≤ L have higher priority than those with T/H > L. T/H-L is implemented by two head-of-the-line priority queues. For a given L, the time complexity of T/H-L is O(1). In [6] , simulation results were presented to compare the performance of T/H, T/H-L, and FCFS which is typically used in routers that provide a best-effort service. These results showed that (i) T/H has the best performance in terms of the percentage of ADUs that are delivered on-time, (ii) T/H-L is superior to FCFS if the threshold L is chosen properly, and (iii) there is a wide range of values of L for which the performance of T/H-L is close to that of FCFS. The effectiveness of T/H-L therefore relies on the ability to determine a good value of L efficiently. A procedure to determine the best value of L was presented in [15] . However, that procedure is based on an empirically derived relationship; it is rather complicated and is not practical in terms of implementation in high-speed routers.. In this paper, a new variant of T/H, called T/H-p, is developed. This algorithm also has time complexity O(1). In its simplest form, two head-of-the-line priority queues are defined; packets in the higher priority queue have smaller T/H values. Incoming packets are forwarded to the two queues such that the fraction of packets joining the higher priority queue is p. Our investigation shows that (i) it is possible to determine a value of p such that T/H-p is superior to FCFS over a range of operating conditions and (ii) efficient implementation in high speed routers is possible and less costly than that for T/H. The remark about efficient implementation is supported by the following two observations. First, the low time complexity of T/H-p allows for hardware implementations that are not affected by the number of dissimilar T/H values of packets to be processed. Secondly, an efficient procedure can be developed to realize the fraction p of packets that should enter the high priority queue.. This procedure is based on adjusting a threshold L (similar to that in T/H-L) dynamically using parameters that can be obtained easily. Our work on T/H-p therefore represents a significant advancement to the work on T/H-L reported in [15] .. Our investigation also shows that T/H has better performance than T/H-p. However, in view of the difference in time complexity, T/H-p is an attractive algorithm for high-speed routers when both performance and complexity are taken into consideration. This paper is organized as follows. Section 2 reviews literature on deadline-based scheduling. Section 3 presents the design and implementation of our new deadline-based scheduling algorithm T/H-p. The performance of T/H, T/H-p, and FCFS is evaluated by simulation in Section 4. Practicality of the T/H and T/H-p algorithms is discussed in Section 5. Extension of the T/H-p algorithm to more than two queues is described in Section 6. Finally, Section 7 contains a summary of our findings. A new deadline-based channel scheduling algorithm within our deadline-based network resource management framework, called T/H-p, has been developed. In this algorithm, a fraction p of packets that have smaller ratios of time until delivery deadline over number of hops left are given higher priority. The performance of T/H-p in terms of the percentage of ADUs that are delivered on-time has been evaluated by simulation. It was found that T/H-p is superior to FCFS, but is not as good as T/H. In terms of implementation in high-speed routers, T/H-p is less costly than T/H. Our conclusion is that T/H-p is an attractive candidate for high-speed routers when both performance and implementation cost are taken into. consideration.. An extended version of T/H-p to m > 2 priority queues, called T/H-p(m), has also been investigated. Efficient implementation of this extended algorithm is possible. Using simulation, we found that the performance of T/H-p(m) improves with m and that a small value of m (e.g., m = 4) would result in on-time performance close to that of T/H. These observations further support the merit of using T/H-p (or its extension) in high-speed routers. Deadline-based scheduling has been used to schedule tasks or processes in real-time operating systems on a single processor. In [16] , a preemptive earliest due-date first (EDF) algorithm was proved to be optimal in the sense that if a set of periodic hard real-time tasks can be scheduled by any algorithm, it can be scheduled by EDF. EDF and its variants have also been used to provide network-layer QoS guarantees [17, 18] . Within the context of providing deterministic QoS guarantees, a multiple FIFO queue based constant time algorithm approximating the EDF scheduler was presented in [19] .. The idea of specifying a lifetime for voice packets and performing channel scheduling based on packet lifetime has been investigated. In [9] , a simulation study was conducted to compare the performance of FCFS and the following two channel scheduling algorithms:. (1) Delay-dependent voice (DDV): this is a head-of-the-line discipline [20] with voice data having the highest priority. Voice packets are serviced using a deadline-based algorithm. At any time instant, packets with smaller values of (LT − A)/H have higher priority, where LT is an end-to-end packet lifetime, A is the elapsed time until start service since the packet has entered the network, and H represents the number of hops remaining.. (2) Head-of-line voice (HOLV): this is also a head-of-the-line discipline. There are three queues. When a voice packet arrives at a channel, a recommended maximum delay given by Rm = (LT − A(r))/H is calculated, where A(r) is the elapsed time until arrival at the channel since the packet has entered the network. Voice packets enter the highest or medium priority queue depending on whether their Rm values are smaller than a threshold or not. Small data packets enter the medium priority queue, while large data packets enter the queue with the lowest priority.. It was found that DDV yields the best performance in terms of the percentage of voice packets that are delivered on-time, and HOLV has comparable performance [9] .. In [10, 11] , the performance of the following four channel scheduling algorithms were investigated:. (1) Transit priority (TP): transit traffic has higher priority than originating traffic.. (2) FIFO+ [21] : for a packet arriving at a node, the delay at this node (denoted by D) and the average delay experienced by packets in the same class at this node (denoted by D c ) are measured. The excess delay, given by D − D c is accumulated and carried by the packet. The packet with the largest excess delay is serviced first. Simulation results showed that HL had the best performance in terms of the fraction of packets that are delivered on-time. These results were confirmed with an implementation of HL in a BSD-based kernel and its experimentation on the DARTnet network [11] .. Due-date based scheduling was also studied in the context of job-shop scheduling. A simulation study of a randomly routed job-shop process was reported in [7] . Besides FCFS, EDF, and shortest processing first (SPT), three other algorithms were investigated:. (1) Smallest operation due-date first: the operation due-date is given by (due-date -job arrival time at the shop) / number of operations.. (2) Smallest slack first: slack is given by (time until deadline -remaining processing time).. (3) Slack over number of operations (S/OPN): the job with the smallest ratio of slack over number of operations remaining has the highest priority.. It was found that S/OPN and SPT yield the best performance in terms of the percentage of jobs that are completed on-time. Between the two, S/OPN has better performance when the offered load is less than 90%; SPT becomes superior when the load is beyond 90%.

B I O O O B I I 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 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 B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O 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 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


Non-Gaussianity and purity in finite dimension We address truncated states of continuous variable systems and analyze their statistical properties numerically by generating random states in finite-dimensional Hilbert spaces. In particular, we focus to the distribution of purity and non-Gaussianity for dimension up to d = 21. We found that both quantities are distributed around typical values with variances that decrease for increasing dimension. Approximate formulas for typical purity and non-Gaussianity as a function of the dimension are derived. Quantum states of continuous variable (CV) systems with bounded occupation number N correspond to finite superpositions, or mixture, of Fock states ̺ N = N nk=0 ̺ nk |n k| and are usually referred to as truncated states. Truncated states may be obtained by heralding techniques from entangled sources 1,2 or by quantum state engineering in cavity QED 3 and nonlinear interferometry 4 . Random quantum states in finite-dimensional Hilbert spaces have been widely investigated, mostly to find typical values of nonlinear functions of the density matrix which are relevant for quantum information processing. In particular, the distribution of entanglement for bipartite states and the volume of separable states 5,6,7 have been examined. Here we address states in Hilbert spaces with finite dimension d as truncated continuous variables states with maximum occupation number N = d − 1. Our goal is to characterize their statistical properties with focus to state purity and non-Gaussianity (nonG) and, in particular, to find their typical values by random generation of states in finite dimensional Hilbert spaces.. Gaussian states play a relevant role in CV quantum information processing 8 . In particular, teleportation, cloning and dense coding have been implemented by using Gaussian states and Gaussian operations. On the other hand, it has been demonstrated that the Gaussian sector of the Hilbert space is not enough to perform long distance quantum communication: protocols as entanglement distillation and entanglement swapping need nonG maps, thus yielding nonG states. Moreover, by using nonG states and operations, teleportation 9,10,11 and cloning 12 of quantum states may be improved. De-Gaussification protocols for single-mode and two-mode states have been indeed proposed 9,10,11,13,14 and realized 15 .. In this sense, the nonG character of states and operations represents a resource for CV quantum information and a question arises on whether the nonG character is a general feature of truncated states. In order to gain information about nonG properties of finite-dimensional states we exploit a recently proposed nonG measure 16 . We then generate uniformly random quantum states for different dimension of the truncated Hilbert space 5 and analyze the distribution of nonG and purity of these states and their average values. We focus on the dependence on the dimension of the Hilbert space and use our results to draw some conjectures about the behaviour in higher dimensions.. The paper is structured as follows. In the next section we briefly review the generation of uniformly distributed quantum states in a finite dimensional Hilbert space. In Section 3 we review the basic properties of Gaussian states and of the measure of the nonG character. Then, in Section 4 we evaluate the typical values and the distributions of nonG and purity for random quantum states in finite dimensional Hilbert spaces. Section 5 closes the paper with some concluding remarks. In conclusion, we have analyzed the properties of random quantum states generated in finite dimensional Hilbert spaces in terms of their nonG character and purity. We have found that both quantities distribute according to a Gaussian-like distribution with variance that decreases by increasing the dimension, i.e. they concentrate around typical values. We also found that the typical nonG and the typical purity are monotone functions of the dimension d. In particular, the average purity decreases to zero whereas the average nonG increases to an asymptotic value. Besides, we have found that, at fixed dimension, the points corresponding to the random states in the plane (µ, δ) are confined in well-defined regions whose area decreases with the dimension. For increasing dimension higher nonG correspond to higher purities.

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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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


An Automated Process for Compiling Dataflow Graphs into Reconfigurable Hardware Abstract| W e describe a system, developed as part of the Cameron project, which compiles programs written in a single-assignment subset of C called SA-C into data ow graphs, and then into VHDL. The primary application domain is image processing. The system consists of an optimizing compiler which produces data ow graphs, and a data ow graph to VHDL translator. The method used for the translation is described here, along with some results on an application. The objective is not to produce yet another design entry tool, but rather to shift the programming paradigm from HDLs to an algorithmic level, thereby extending the realm of hardware design to the application programmer. Recon gurable computing is an active area of research both hardware and software projects, and combinations of both, are ongoing. Hardware projects fall into two categories those that use o -the-shelf components in particular, FPGAs, and those which use custom designs.. The Splash-2 2 is an early circa 1991 implementation of an RCS, built from 17 Xilinx 3 4010 FPGAs, and connected to a Sun host as a co-processor. Several di erent t ypes of applications have been implemented on the Splash-2, including searching 4 , 5 , pattern matching 6 , convolution 7 and image processing 8 .. A commercial system which is loosely patterned after the Splash-2, but which utilizes larger but fewer FPGA's, is the Annapolis Microsystems Wildforce TM board 9 , introduced in 1995 this system was used in the implementation described in this paper, and is covered in some detail later.. Representing the current state of the art in FPGA-based RCS systems are the AMS WildStar 10 and the SLAAC project 11 . Both utilize Xilinx Virtex 12 FPGA's, which o er over an order of magnitude more programmable logic, and provide a several-fold improvement in clock speed, compared to the earlier chips.. Several projects are developing custom hardware. The Morphosis project 13 marries an on-board RISC processor with an array of recon gurable cells RC's. Each R C contains an ALU, shifter, and a small register le. The RAW Project 14 also consists of an array of computing cells, called tiles; it di ers in that each tile is itself a complete processor, coupled with an intelligent network controller, and a section of FPGA-like con gurable logic that is part of the processor data path, more like an on-chip network of workstations; there is no host" processor. These designs represent a more coarse-grained, or chunky architecture 15 , compared to FPGA-based logic cells; such architectures promise to be more manageable as complexity increases.. PipeRench 16 consists of a series of stripes, each o f which is a pipeline stage an input interconnection network, a lookup-table based PE, a results register, and an output network. During execution, a context loader places pipeline stages to be executed into the next available stripes in most cases, the context switching can be completely hidden. the application appears to execute in an in nitely deep pipeline.. On the software front, several of the above hardware projects also involve software development. The RAW project includes a signi cant compiler e ort 17 whose goal is to create a C compiler which treats the network of tiles as a single system, rather than as individual processor nodes as in conventional network programming. For PipeRench, a l o w-level language called DIL 18 has been developed for expressing an application as a series of pipeline stages, which can easily be mapped to stripes.. Several projects including Cameron focus on hardwareindependent software for recon gurable computing; the goal still quite distant i s t o m a k e development o f R CS applications as easy as for conventional processors, using commonly known languages or application environments. Several projects use C as a starting point for RCS development. Handel-C 19 both extends the C language to express important hardware functionality, such as bitwidths, explicit timing parameters, and parallelism, and limits the language to exclude C features that do not lend themselves to hardware translation, such as random pointers. Streams-C 20 does a similar thing, with particular emphasis on extensions to facilitate the expression of communication between parallel processes. SystemC 21 and Ocapi 22 provide C++ class libraries to add the functionality required of RCS programmingto an existing language.. Finally, a couple of projects use higher-level application environments as input. The MATCH project 23 , 24 uses MATLAB as its input language applications that have already been written for MATLAB can be compiled and committed to hardware, eliminating the need for re-coding them in another language. Similarly, CHAMPION 25 is using Khoros 26 for its input common glyphs have been written in VHDL, so GUI-based applications can be created in Khoros and mapped to hardware.

O O O O O O O O O O O O O O O O O O O O O O O O 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 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


Capacity of Interference Channels With Partial Transmitter Cooperation Abstract-Capacity regions are established for several twosender, two-receiver channels with partial transmitter cooperation. First, the capacity regions are determined for compound multipleaccess channels (MACs) with common information and compound MACs with conferencing. Next, two interference channel models are considered: an interference channel with common information (ICCI) and an interference channel with unidirectional cooperation (ICUC) in which the message sent by one of the encoders is known to the other encoder. The capacity regions of both of these channels are determined when there is strong interference, i.e., the interference is such that both receivers can decode all messages with no rate penalty. The resulting capacity regions coincide with the capacity region of the compound MAC with common information. We presented three channel models that incorporate partial transmitter cooperation. For two interference channels presented in Sections IV and V, we determined the capacity region under strong interference where the decoders can decode all messages with no rate penalty. For the channel with unidirectional cooperation, it is possible that weaker conditions exist for which the capacity region can be found. Determining the strong interference conditions for more general channel models such as interference channels with correlated sources is an open problem. Observe that is the capacity region of the two-sender, two-receiver channel with noncooperating encoders established by Ahlswede [16] . The rates (30) quantify the improvement due to transmitter cooperation over the conference links. We can further apply Theorem 2 to a Gaussian channel in the standard form [2] , [21] (34) (35) where the are independent, zero-mean, unit-variance Gaussian random variables and and are real numbers. We further add the power constraints (36). The power expended for the conference is not considered. We have the following result. Due to the symmetry, we can choose . Fig. 4 shows that cooperation gives substantial gains over no cooperation . Note that the bounds (37)-(39) are loosest for . As increases, these bounds become more restrictive, but the bound (40) becomes looser. The sum rate is maximized when is chosen such that (39) and (40) are the same. The capacity region is the union of all the pentagons obtained for different values of .

O O O 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 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 B I 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 I O B I 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 B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O 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


Objective comparison of quantitative imaging modalities without the use of a gold standard Abstract-Imaging is often used for the purpose of estimating the value of some parameter of interest. For example, a cardiologist may measure the ejection fraction (EF) of the heart in order to know how much blood is being pumped out of the heart on each stroke. In clinical practice, however, it is difficult to evaluate an estimation method because the gold standard is not known, e.g., a cardiologist does not know the true EF of a patient. Thus, researchers have often evaluated an estimation method by plotting its results against the results of another (more accepted) estimation method, which amounts to using one set of estimates as the pseudogold standard. In this paper, we present a maximum-likelihood approach for evaluating and comparing different estimation methods without the use of a gold standard with specific emphasis on the problem of evaluating EF estimation methods. Results of numerous simulation studies will be presented and indicate that the method can precisely and accurately estimate the parameters of a regression line without a gold standard, i.e., without the axis. T HERE are many approaches in the literature to assessing image quality, but there is an emerging consensus in medical imaging that any rigorous approach must specify the information desired from the image (the task) and how that information will be extracted (the observer). Broadly, tasks may be divided into classification and estimation and the observer can be either a human or a computer algorithm [1] - [3] .. In medical applications, a classification task is to make a diagnosis, perhaps to determine the presence of a tumor or other lesion. This task is usually performed by a human observer and task performance can be assessed by psychophysical studies and receiver operating characteristic (ROC) analysis. Scalar figures of merit such as a detectability index or area under the ROC curve can then be used to compare imaging systems. Often, however, the task is not directly a diagnosis but rather an estimation of some quantitative parameter from which a diagnosis can later be derived. An example is the estimation of cardiac parameters such as blood flow, ventricular volume, or ejection fraction (EF). For such tasks, the observer is usually a computer algorithm, though often one with human intervention, for example defining regions of interest [4] , [5] . Task performance can be expressed in terms of the bias and variance of the estimate, perhaps combined into a mean-square error as a scalar figure of merit.. For both classification and estimation tasks, a major difficulty in objective assessment is lack of a believable standard for the true state of the patient. In ROC analysis for a tumor-detection task, we need to know if the tumor is really present and for estimation of ejection fraction we need to know the actual value for each patient. In common parlance, we need a gold standard, but it is rare that we have one with real clinical images.. For classification tasks, biopsy and histological analysis are usually accepted as gold standards, but even when a pathology report is available, it is subject to error; the biopsy can give information on false-positive fraction but if a lesion is not detected on a particular study and, hence, not biopsied, its contribution to the false-negative fraction will remain unknown [6] .. Similarly, for cardiac studies, ventriculography, or ultrasound might be taken as the gold standard for estimation of EF and nuclear medicine or dynamic magnetic resonance imaging might then be compared with the supposed standard [7] . A very common graphical device is to plot a regression line of EFs derived from the system under study to ones derived from the standard and to report the slope, intercept, and correlation coefficient ( ) for this regression [8] - [12] . Another comparison approach is the use of a Bland-Altman plot, a measure of agreement between two different modalities [8] , [10] - [13] . Neither of these approaches allows for objective performance rankings of the imaging systems, a point we expand upon in the next section. Even a cursory inspection of papers in this genre reveals major inconsistencies. In reality, no present modality can lay claim to the status of gold standard for quantitative cardiac studies. Indeed, if there were such a modality, there would be little point in trying to develop new modalities for this task.. Because of the lack of a convincing gold standard for either classification or estimation tasks, simulation studies are often substituted for clinical studies, but there is always a concern with how realistic the simulations are. Researchers who seek to improve the performance of medical imaging systems must ultimately demonstrate success on real patients. [14] . They showed, quite surprisingly, that ROC parameters could be estimated by using two or more diagnostic tests, neither of which was accepted as the gold standard, on the same patients. Recent work by Beiden et al. has clarified the statistical basis for this approach and studied its errors as a function of number of patients and modalities as well as the true ROC parameters [15] .. The goal of this paper is to examine the corresponding problem for estimation tasks. For definiteness, we cast the problem in terms of estimation of cardiac ejection fraction and we pose the following question: If a group of patients of unknown state of cardiac health is imaged by two or more modalities and an estimate of EF is extracted for each patient for each modality, can we estimate the bias and variance of the estimates from each modality without regarding any modality as intrinsically better than any other? Stated differently, can we plot a regression line of estimated EF versus true EF without knowing the truth?

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B 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 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 B 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 O O O O O O 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 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 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 B O O O O O O O O O O B 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