Efficient and Deterministic Parallel Placement for FPGAs We describe a parallel simulated annealing algorithm for FPGA placement. The algorithm proposes and evaluates multiple moves in parallel, and has been incorporated into Altera's Quartus II CAD system. Across a set of 18 industrial benchmark circuits, we achieve geometric average speedups during the quench of 2.7x and 4.0x on four and eight processors, respectively, with individual circuits achieving speedups of up to 3.6x and 5.9x. Over the course of the entire anneal, we achieve speedups of up to 2.8x and 3.7x, with geometric average speedups of 2.1x and 2.4x.Our algorithm is the first parallel placer to optimize for criteria other than wirelength, such as critical path length, and is one of the few deterministic parallel placement algorithms. We discuss the challenges involved in combining these two features and the new techniques we used to overcome them. We also quantify the impact of maintaining determinism on eight cores, and find that while it reduces performance by approximately 15% relative to an ideal speedup of 8.0x, hardware limitations are a larger factor and reduce performance by 30-40%. We then suggest possible enhancements to allow our approach to scale to 16 cores and beyond. The Quartus II design software is a commercial CAD tool used to implement designs on Altera FPGA devices. This article describes the parallel simulated annealing algorithm used by Quartus II and improves on the approaches described in Ludwin et al. [2008] . As described in the preceding section, the Quartus II placer algorithm (Q2P) is a variant of simulated annealing that uses highly directed moves and many cost components, both of which significantly reduce the spatial locality that many prior works exploit to introduce parallelism. Consequently, parallelization strategies such as partitioning (which directly exploit spatial locality) or precomputing noncolliding moves (which exploit the simplicity of random moves) are not appropriate for our algorithm. Instead, we use a novel variant of independent set finding (Section 2.2.1) that identifies colliding moves on-the-fly, instead of in advance. We also include features that allow us to "repair" colliding moves to ensure determinism and serial equivalency. These two features allow us to use the existing directed moves and costs that are essential for our algorithm's high quality.. At a high level, our parallelized annealer can loosely be thought of as a masterworker configuration, where the worker cores propose moves and evaluate their costs in parallel, and a single master core resolves collisions between moves in serial. We call the parallel portion of a move's lifetime processing, and the resolution phase finalization. The finalization phase includes the decision as to whether the move should be accepted or rejected, based on the results of the processing phase. To be deterministic, a move must have all of its collisions resolved before it can be finalized. Threads use message passing for most of their communication.. Processing comprises about 99% of a move's runtime in a serial compilation, as finalization is usually extremely fast. For this reason, we found that a true masterworker-style algorithm was impractical. Devoting an entire core to finalization was wasteful, as it would be idle for the majority of the time. Even using a thread turned out to be inefficient, due to the time it took to "wake" a thread that had been sleeping. Instead, we use two methods to control the flow of moves through our algorithm, which are described in Sections 4.4 and 4.5.. When a move is accepted, a database containing the location of each cell must be updated. If this database were shared among all of the cores, any change made by one core would be immediately seen by all other cores, which may be partway through proposing or evaluating a move. This could lead to us proposing absurd moves, such as exchanging a cell with itself in another location. Even if this move were never evaluated, it would likely violate an assertion and crash the program as it was being proposed. Therefore, each core receives its own copy of the database, and a core that accepts a move must send a message to the other cores, who update their own databases in between processing moves. This is similar to Sun and Sechen [1997] , who were forced to duplicate their placement database because it was parallelized across completely different machines. We have described a complex parallel simulated annealing algorithm that achieves good performance on multiple objectives, while still maintaining determinism and serial equivalency. We used two methods to maintain serial equivalency, and showed that the more decentralized algorithm achieved significantly higher performance, scaling well to four cores and moderately well to eight cores. The Quartus II placement algorithm has had many tens of person years invested in it to achieve high QoR in a reasonable CPU time. Despite its complexity, we were able to parallelize the algorithm without simplifying it. Interestingly, while we have not made any changes to try to minimize the interaction between moves, we have found large amounts of parallelism to exploit, even at eight cores.. In addition, we have quantified the overhead required to maintain serial equivalency, communicate state updates between cores, and maintain thread safety. At eight cores, we found that maintaining determinism added an overhead of at most 15-20% relative to the unmodified serial algorithm. The cost of recovering from collisions was somewhat larger with at least 15-25% overhead, and the limitations of our computers' memory subsystems cost between 30-60%, with modern computers showing lower overhead.. It is likely that hardware vendors will continue to improve their multicore memory bandwidth. But it is also clear that unequal memory access will become increasingly prominent as we progress to sixteen and more cores per system, due to both shared caches and NUMA effects. To take advantage of emerging platforms, developers will therefore need to pay increasing attention to the memory access patterns of their algorithms.. These results point towards several potential improvements. For example, one could create a more sophisticated dependency checker that required less intercore communication, perhaps by maintaining per-core copies of the checker and only transmitting updates between cores. This would reduce the cost of maintaining determinism, but would not improve collisions or other memory limitations.. A far more productive approach will likely be create new directed moves that can take advantage of spatial locality. Most previous work that used strictly partitioned placements found some degradation in results from this approach, even after allowing for occasional cross-partition optimizations. The only exception [Sun and Sechen 1997] required that the partitions be frequently moved to allow cells sufficient mobility. As we described in Section 2.2.2, their exact approach is not appropriate for our algorithm, but we believe the general concept of creating additional spatial locality may be adapted. By biasing different cores to work on different parts of the placement, instead of strictly enforcing a partitioning, we expect we can greatly reduce the number of collisions while still allowing optimizations that span the entire chip. This would also lead to better cache and NUMA memory locality, and so would allow us to simultaneously tackle all three major sources of overhead.. The precise method by which we bias the directed moves will likely depend on the number of cores in use by the algorithm. We may therefore choose to give up serial equivalency so as to optimize performance on any given number of cores. Alternatively, we could optimize the algorithm for the specific number of cores that are most commonly available. The trade-off between serial equivalency and performance will likely change over time as the number of cores increases.. Better directed moves may also open new opportunities to improve other areas of the algorithm. For example, a much simpler dependency checker might suffice to rule out collisions between a majority of moves, reducing not only the work involved with reprocessing moves, but the overhead associated with tracking their interactions. This would further reduce intercore memory traffic. Many such interrelated improvements will likely be needed to ensure that high-quality parallel placers continue to scale to sixteen cores and beyond. Since 1998, FPGA device size has increased at nearly four times the rate of per-core processor performance (Figure 1 ). In addition, there is now broad agreement that growth in per-core performance is slowing, and that future processors will have more cores to compensate for this reduction in per-core progress [Sutter 2005] . There are three possible approaches to keeping the runtime of FPGA CAD reasonable.. (1) Discourage flat compilation of the entire design, and instead force users to compile partitions of their designs incrementally and assemble the partitions to form the entire design [Altera 2010 ]. This approach, taken by many ASIC flows, can mitigate runtime but at the cost of increased design complexity and disallowed optimizations between partitions. (2) Find faster single-threaded algorithms, while sacrificing little or no quality. This approach has been very productive but it is risky to depend entirely on this approach to offset the exponential growth in FPGA cell counts. (3) Create parallel algorithms, possibly by modifying existing ones, to take advantage of the multicore processors which are now becoming common. Commodity PC processors now contain four to eight cores. Since the number of cores is expected to increase exponentially for the foreseeable future, parallel algorithms may be well suited to handle the increasing size of FPGAs. This is the approach we explore here.. There are several computationally complex steps in converting an HDL description of a design into the set of bit settings needed to program an FPGA to implement the design [Hutton and Betz 2006] . Usually placement, which involves choosing a good location for every circuit element in the design, is the largest single consumer of CPU time in the FPGA CAD flow. For the largest 28 nm FPGAs, placement involves choosing the location of about a million circuit elements (cells), and can require one or more CPU hours. Consequently this work focuses on accelerating the placement problem.

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


Toward high-quality modal contact sound : A Rube-Goldberg contraption that demonstrates many challenging multibody contact sounds. A noisy block feeder (Left) with flexible tubes ejects marbles into a double helix of plastic chutes (Middle), which causes a cup to fill up, lifting a lever that drops a bunny into a runaway shopping cart (Right) producing familiar clattering and clanging sounds due to deformable micro-collisions. Our approach can accurately resolve modal vibrations and contact sounds using an asynchronous, adaptive, frictional contact solver.Contact sound models based on linear modal analysis are commonly used with rigid body dynamics. Unfortunately, treating vibrating objects as "rigid" during collision and contact processing fundamentally limits the range of sounds that can be computed, and contact solvers for rigid body animation can be ill-suited for modal contact sound synthesis, producing various sound artifacts. In this paper, we resolve modal vibrations in both collision and frictional contact processing stages, thereby enabling non-rigid sound phenomena such as micro-collisions, vibrational energy exchange, and chattering. We propose a frictional multibody contact formulation and modified Staggered Projections solver which is well-suited to sound rendering and avoids noise artifacts associated with spatial and temporal contact-force fluctuations which plague prior methods. To enable practical animation and sound synthesis of numerous bodies with many coupled modes, we propose a novel asynchronous integrator with model-level adaptivity built into the frictional contact solver. Vibrational contact damping is modeled to approximate contact-dependent sound dissipation. Results are provided that demonstrate high-quality contact resolution with sound. Sound models based on linear modal vibrations are widely used to efficiently synthesize plausible contact sounds for so-called rigid bodies in computer animation and interactive virtual environments. Unfortunately, there still remain a number of significant contactrelated deficiencies that limit the realism of modal contact sounds in practice. To begin with, for speed and simplicity, modal sound models are usually just excited by using contact force impulses from rigid body contact solvers. In reality, there is no such thing as a "rigid" object, and the same small vibrations that produce sound also play an important role in producing rich contact events: microcollisions, chattering, squeaking, coupled vibrations, contact damping, etc. Ignoring contact-level vibrations is the source of many sound-related deficiencies, as these small vibrations can be visually inconsequential but aurally significant. For example, pounding on a seemingly "rigid" dinner table can shake dishes-and may also upset your friends (see Figure 2) . Frictional contact and deformation coupling is also important for sound; for example, slip-stick phenomena is responsible for many familiar squeaking and scraping sounds, e.g., fingernails scraping on a chalkboard. Resolving these vibrational contact effects is challenging due to the need to resolve deformable collisions and contact at high temporal rates.. Even in seemingly rigid scenarios, such as an object resting on a plane, current contact solver implementations can generate temporally incoherent contact impulses which lead to sound artifacts, such as resting objects that strangely humm or buzz when integrated at near-audio rates. These artifacts are a consequence of the fundamental non-uniqueness of rigid body contact forces (e.g., static indeterminacy) which can lead to point-like and nonphysical contact force (traction) distributions. Additionally, rigid-body contact impulses can exhibit nonphysical temporal fluctuations, which lead to noise-related sound artifacts (especially with iterative contact solution techniques) that must be dissipated artificially.. Moreover, the sound of a resting object should also depend on its contact state, and how contacts oppose surface vibrations. For example, a coffee mug exhibits distinctive vibrational damping when placed in different orientations on surfaces (see Figure 4 ). This contact damping phenomena involves complex vibrational and contact coupling effects, and is ignored in current sound models or handled in ad hoc ways, e.g., "increase damping when in contact.". In this paper, we propose the first approach to address all of these concerns and enable richer contact sounds (see Figure 3 ). We adopt a flexible multibody dynamics formulation, wherein each seemingly rigid object is allowed to deform with linear modal vibrations. table causes the table to deform rapidly, which in turn causes the resting dishes to receive contact impulses and go flying-with noticeable sound. In contrast, a traditional rigid body simulation (not shown) bounces the bunny off the perfectly rigid table without disturbing any dishes or causing much sound.. Deformable collision processing at near audio rates is used to generate frictional contact problems to resolve perceptually important coupling and micro-collisions (see Figures 1 & 2) . We use a modified Staggered Projections algorithm to solve the frictional contact problems [Kaufman et al. 2008] , with modifications to avoid solver noise due to spatial and temporal incoherence in both the generation of contact points and the computation of contact forces. Vibrational contact damping phenomena are approximated using a time-varying lumped contact damping matrix to attenuate vibrations during sound synthesis.. Since multibody frictional contact solves with thousands of coupled modes at near-audio rates are computationally intractable for sound synthesis, we propose a novel mode-adaptive asynchronous integrator which is capable of identifying and integrating low-frequency vibration modes in the contact solver (see Figure 8 ). Methods for adding and removing modes from the contact-level simulation are described, as well as noise-free methods for simulating all audible modes during subsequent sound synthesis. Our implementation is able to handle dozens of bodies with thousands of audible modes in a practical manner for high-quality offline sound synthesis. We list all material related parameters used in our examples in Table 1. Simulation statistics are given in Table 2 . All reported timings are based on our implementation on a Linux system with an 8-core Intel Xeon X5570 CPU. Please see our video for all sound and animation results, and related comparisons. Ruler Twang: We simulated a comedic ruler "twang" sound. We fixed one end of a ruler near the edge of a table (see Figure 13) . When excited by a single impulse, the ruler starts chattering against the table, producing a distinctive "twang" sound. Next we move the ruler as it vibrates, changing its contact positions against the table.. The changing contact configuration and movement cause varying contact coupling between the modes which leads to a characteristic (and funny) rising-pitch ruler twang. This example highlights the strength of our simulation, since these sound effects could not be synthesized without resolving micro-collision events accurately. The stack of plates and other objects generate a large number of contacts at each timestep. Our contact filtering method ( §3.3) can effectively cull most contacts, producing fewer and more temporally coherent contacts. Despite the short timescale and rapid collisions, the method is still able to make use of mode adaptation (see Figure 8 ). Contact Sound Synthesis: Rendering sounds synchronized with animation has a long history in graphics [Takala and Hahn 1992; Gaver 1993] . Modal sound synthesis methods generate plausible rigid body contact sounds efficiently, and were popularized by van den Doel and Pai [1996] who proposed using analytical models of linear modal vibration to produce point-contact sounds in interactive virtual environments. Modal sound models can be conveniently estimated from recorded sounds and measurements , or estimated using numerical techniques for linear modal analysis [Shabana 1990; O'Brien et al. 2002] . For animation, simply running dynamics simulations at graphics rates can greatly limit the range of sounds achievable. Van den Doel et al. [2001] realized the perceptual importance of resolving micro-collision forces sampled at (near) audio rates, and explicitly distinguished them from the so-called "dynamics force" sampled at graphics rate, but the range of resolvable contact phenomena was limited by a pointlike contact model. O'Brien et al. [2002] used tetrahedral finite element simulations to synthesize modal sounds for rigid bodies excited by contact forces from graphics simulations; however the rigid model cannot capture deformable contact events.. Other developments in modal contact sound synthesis include Multibody simulation is performed using an asynchronous adaptive contact solver (Top). This simulation yields animation data as well as impulses and object motion data which are fed to the sound synthesis algorithm running in a separated pass (Bottom). When synthesizing modal sound, input impulses are redistributed to enhance temporal coherence and eliminate noise, and contact-dependent damping is applied.. speed-accuracy trade-offs for interactive sound [Doel et al. 2004; Raghuvanshi and Lin 2006; Bonneel et al. 2008; Ren et al. 2010] , acoustic transfer models to improve realism of spatialized sounds [James et al. 2006; Chadwick et al. 2009] , and techniques for synthesizing brittle fracture sounds [Zheng and James 2010] . Chadwick et al. [2009] considered subspace integration techniques to resolve nonlinear mode-coupling effects in thin shells, but treated objects as rigid for collision processing. In contrast, we address fundamental deficiencies in contact resolution methods which currently limit our ability to animate multibody systems with sounds.. Non-modal sound synthesis for computer animation was explored in [O'Brien et al. 2001 ] using an explicitly time-stepped largedeformation finite element model to simulate the surface response of an object due to external forces, potentially being able to resolve more detailed contact events. However, explicitly time-stepped detailed FEM models at audio rates is expensive, and the stiff materials, e.g., steel, can result in onerous timestep restrictions. In contrast, we resolve small modal deformations in multibody contact, but only simulate a subset of vibration modes by using an efficient adaptive, asynchronous contact algorithm.. Contact-dependent damping for sound synthesis is not well addressed. Previous works often used a static parametric model for vibration damping [O'Brien et al. 2002; Zheng and James 2010] , or apply some additional ad hoc damping when objects are in contact, e.g., with the ground [Chadwick et al. 2009 ]. Zheng and James [2010] introduced additional contact damping for objects at rest to mask noise introduced by the iterative contact solver. In contrast, we resolve frictional contact, and propose a viscous model to approximate spatially and temporally dependent contact damping.

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


Policy-driven Workflows for Mobile Network Management Automation Future wireless networks will experience a continuous growth regarding the number of network elements with increasingly complex interrelations between the configuration of multiple network elements. Another trend is the seamless integration of multiple radio technologies into a single wireless network. Both developments increase network management complexity and require new management concepts with a very high degree of automation. For this purpose, a novel management approach based on a combination of workflow and policy technologies is presented. The goal is to simplify and automate management tasks in mobile networks in order to raise the state of self-organization while the network still remains under control of the operator. The approach provides the means for a dynamic system to automatically adapt to context changes. Moreover, an experimental system is presented for the purposes of concept validation and evaluation along with a real world use case. Managing radio networks is a complex task especially in cellular mobile communication systems. The complexity is even increased if several radio networks should be seamlessly integrated. Complexity arises from the number of network elements (NEs) that have to be deployed and managed, but also from interdependencies between their configurations. In a heterogeneous network the variety of deployed technologies and their proprietary operational 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. IWCMC '10, June 28 -July 2, 2010, Caen, France. Copyright 2010 ACM 978-1-4503-0062-9/10/06 ...$10.00. paradigms are difficult to handle. Configuration, optimization, performance, and fault management require high expertise. Management tasks are typically performed by human operators and manual control is time-consuming, expensive, and error-prone.. Network management is usually based on a centralized operation, administration, and maintenance (OAM) architecture. Configuration and optimization of NEs is performed centrally from an operations and maintenance center (OMC) with support of a set of planning and optimization tools. However, this still requires a lot of human interaction. The staff uses their operational experience to find optimized configurations and they know when they have to diverge from standard procedures. Fault management procedures are also highly based on operational experience. Introducing new features through a software update or new NEs from different vendors requires changes in operational procedures.. Evolved Packet System (EPS) is the standard for next generation 3GPP mobile network evolution. Mobile network operators expressed a strong request for the introduction of self-organization features especially for this technology. Requests for operational expenditures (OPEX) reduction and for assuring high service quality call for changes in the way these networks are deployed and managed [1] . In order to provide high-quality services in the future, task automation is indispensable. Automation must go far beyond the possibilities used today such as scripting techniques. Although lots of tasks are executed identically, automation is difficult as fulfilling the same task in a heterogeneous network can require different actions on different NEs. Especially situations when only parts of NEs are updated increase the complexity.. To meet those challenges a new management approach is presented that reduces complexity for the operator by increasing automation. An efficient combination of workflows and policies enables the network with self-organizing capabilities while keeping a centralized management architecture. Although the basic architecture is centralized, parts of the functionality can be split and distributed over the NEs. However, some management functions such as alarm correlation will always require a central control entity. A major building block of the approach is the ability to execute workflows, another one is a policy framework to manage execution control. The presented approach is independent of the underlying radio technology but sufficiently generic to be applied to various network technologies and management domains.. The paper is structured as follows. A description of the basic technologies and concepts is given in Section 2. Section 3 presents the approach of policy-driven workflows. An experimental system is presented in Section 4 to demonstrate the results by means of a real-world use case, which is described in Section 5. The paper concludes with a summary and future work in Section 6. A novel management approach was presented which combines workflow and policy technology into a management middleware layer to raise the state of self-organization. OAM staff is freed from time-consuming standard tasks, which allows them to focus on important tasks. In the best case a bare monitoring of the automatic functions and optimization of the operational concepts is sufficient.. To reach a state of operator-controlled autonomy, operational constraints and objectives are specified as policies and fixed task sequences are encoded into workflows. Policies control workflow execution and the adaptation of the control flow to the context. The usage of policies also allows to cope with workflow priorization. Partitioning into workflows and subworkflows provides the means to cope with heterogeneity and network evolution without degradation in service quality.. The middleware layer decouples network management from the necessity of direct operator intervention and offers a modular way of organizing and reusing management functions. It also enables the autonomic functions to directly trigger management tasks, which closes the management loop. The approach is generic enough to be used within different management domains and parts can be used across multiple management domains.. However, it still raises a couple of challenges that need to be addressed in the future. Contradicting goals might occur between concurrent workflows. Appropriate algorithms are needed to handle or at least detect such conflicts that cannot be handled by the policy framework. Additional use cases from different domains need to be implemented to evaluate the approach with quantitative measurements. Examples are alignment of radio parameters such as physical cell identifiers in the configuration management domain and cell outage compensation in the fault management domain. Furthermore, it is desired to use model-based techniques for the specification of workflows and policies which will offer more possibilities to analyze and verify the system behavior at designtime. This will even allow automated or at least semi-automated separation of tasks into basic workflows and subworkflows. In network management information models are already used today [10] , but they are designed for specific management domains and cannot be used across different domains. The definition of policies and workflows should be taken to a more abstract level with a high-level language and a subsequent automated refinement into a machineexecutable representation.

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


Studying (non-planar) road networks through an algorithmic lens This paper studies real-world road networks from an algorithmic perspective, focusing on empirical studies that yield useful properties of road networks that can be exploited in the design of fast algorithms that deal with geographic data. Unlike previous approaches, our study is not based on the assumption that road networks are planar graphs. Indeed, based on the a number of experiments we have performed on the road networks of the 50 United States and District of Columbia, we provide strong empirical evidence that road networks are quite non-planar. Our approach therefore instead is directed at finding algorithmically-motivated properties of road networks as non-planar geometric graphs, focusing on alternative properties of road networks that can still lead to efficient algorithms for such problems as shortest paths and Voronoi diagrams. In particular, we study road networks as multiscale-dispersed graphs, which is a concept we formalize in terms of disk neighborhood systems. This approach allows us to develop fast algorithms for road networks without making any additional assumptions about the distribution of edge weights. In fact, our algorithms can allow for non-metric weights. With the advent of online mapping systems, including proprietary systems like Google Maps and Mapquest, and opensource projects like http://wiki.openstreetmap.org/, there is an increased interest in studying road networks as natural artifacts. Indeed, the Ninth DIMACS Implementation Challenge 1 , from 2006, was dedicated to the algorithmic study of road networks from the perspective of methods for solving shortest path problems on road networks. (See Figure 1 for an example extracted from this data.) Figure 1 : A portion of the road network from the U.S. Census 2000 TIGER/Line files. This example illustrates the road network for Anchorage, Alaska, which consists of over 9,000 vertices and 23,000 edges.. Road networks provide an interesting domain of study, from an algorithmic perspective, as they combine geographic and graph-theoretic information in one structure. In particular, road networks express the graph-theoretic information defined from real-world roads and highways by creating a vertex for every road intersection or major jog and creating an edge for every road segment that joins two such points. In addition, road networks typically contain geographic information, in that vertices are usually labeled with their (GPS) longitude and latitude coordinates and edges are labeled with their length. These basic data attributes of road networks, together with the fundamental anthropological nature of the way these networks encapsulate the way that societies organize themselves, make road networks unique data objects. Therefore, following similar studies of natural artifacts through the algorithmic lens (e.g., see [1, 4, 10, 11, 13, 34, 41] ), we are interested in this paper in the study of algorithmically motivated properties of real-world road networks. We have given a new theoretical characterization of road networks as multiscale-dispersed graphs and we have shown how this characterization leads to algorithms that provably run in linear time for a number of interesting problems. Our main techniques involve the construction of recursive O( √ n)-separator decompositions and the applications of such decompositions to Voronoi diagrams, shortest paths, and other geographic problems. In addition, in the appendix of this paper, we provide an algorithm for constructing the arrangement of the natural disk neighborhood system of a road network, utilization some additional properties of road networks, which are justified empirically.. There are a number of interesting open problems and future research directions raised by this paper, including:. • Can one construct a recursive circle O( √ n)-separator decomposition of a multiscale-dispersed graph deterministically in O(n) time?. • Can one construct a trapezoidal decomposition of an nvertex multiscale-dispersed graph in O(n) time? (This is related to the well-known open problem of computing a trapezoidal decomposition of an n-vertex nonsimple polygon in O(n+k) time, where k is the number of its edge crossings.). • Are there a set of road network complexity measures, possibly based on our definitions, that can replace the Alpha and Gamma indices [12] , which are used in the transportation network literature and are based on the flawed notion that road networks are plane graphs?

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


An efficient quantum search engine on unsorted database We consider the problem of finding one or more desired items out of an unsorted database. Patel has shown that if the database permits quantum queries, then mere digitization is sufficient for efficient search for one desired item. The algorithm, called factorized quantum search algorithm, presented by him can locate the desired item in an unsorted database using O(log4N ) queries to factorized oracles. But the algorithm requires that all the property values must be distinct from each other. In this paper, we discuss how to make a database satisfy the requirements, and present a quantum search engine based on the algorithm. Our goal is achieved by introducing auxiliary files for the property values that are not distinct, and converting every complex query request into a sequence of calls to factorized quantum search algorithm. The query complexity of our algorithm is O(P * Q * M * log4N ), where P is the number of the potential simple query requests in the complex query request, Q is the maximum number of calls to the factorized quantum search algorithm of the simple queries, M is the number of the auxiliary files for the property on which our algorithm are searching for desired items. This implies that to manage an unsorted database on an actual quantum computer is possible and efficient. Consider a collection of items in a database, characterized by some property with values on the real line. Sorting these items means arranging them in an ordered sequence according to their property values. The purpose of sorting is to facilitate subsequent searches of that database for items with known values of the property [1] .. The best classical algorithm uses log 2 N queries to find a desired item out of an ordered list of N items, while a quantum computer can solve the problem using a constant factor fewer queries. The best known lower bound shows that any quantum algorithm for the problem requires at least (lnN − 1)/π ≈ 0.221log 2 N queries [2] . The algorithm obtained by Farhi, Goldstone, Gutmann, and Sipser, uses 3⌈log 52 N ⌉ queries, showing that a constant factor speedup is indeed possible [3] . The best published exact quantum algorithm for the problem uses 4log 605 N ≈ 0.433log 2 N queries [4] .. In this paper, we consider the problem of finding one or more desired items out an unsorted database. Patel has shown that if the database quantum queries, then mere digitization is sufficient for efficient search for one desired item. The algorithm, called factorized quantum search algorithm, presented by him can locate the desired item in an unsorted database using O(log 4 N ) queries to facorized oracles [1] . Unfortunately, the algorithm would not work if it is used to search more than one desired items out of an unsorted database, or the property values among which it is searching for the desired item are not distinct. From the point of view of unsorted database manipulation, we consider the problem with more than one desired items in an unsorted database and with the property values that are not distinct from each other. * e-mail: newpine2002@yahoo.com.cn And we present a quantum search engine, based on the factorized quantum search algorithm, that can solve the problems. Our goal is achieved by introducing auxiliary files for the property values that are not distinct, and converting the searching request into a sequence of calls to factorized quantum search algorithm.. The paper is organized as follows: In section II, we review quantum random access memory, Structured Query Language, and factorized quantum search algorithm. In section III, we present our quantum search engine, discuss how to digitize the property values of an unsorted database, which might be distinct from each other or not, and discuss how to convert a complex query request into a sequence of calls to the factorized quantum search algorithm. We also discuss how the factorized quantum search algorithm works on an actual quantum computer with the unsorted database existing in the quantum random access memory. In section IV, We give several examples to show how the quantum search engine works. We conclude the paper in section V. We have considered the problem of finding one or more desired items out of an unsorted database. The factorized quantum search algorithm presented by Patel can locate one desired item in an unsorted database using O(log4N) queries to factorized oracles. But the algorithm can only solve the problem finding the desired item out of an unsorted database with only one target item. We extend the algorithm to solve the problem with more than one target items in an unsorted database. The goal is achieved by introducing auxiliary file, and converting a complex query request into a sequence of simple queries, and finally into a sequence of calls to the factorized quantum search algorithm.. The query complexity of our algorithm is O(P * Q * M * log 4 N ), where P is the number of the potential simple query requests in the complex query request, Q is the maximum number of calls to the factorized quantum search algorithm of the simple queries, M is the number of the auxiliary files for the property on which our algorithm are searching for desired items. We know that the query complexity of the best classical algorithm to select P*Q items from a sorted database is P * Q * log 2 N . When compared with the classical algorithm on either sorted or unsorted database, if M is small, the quantum search engine on unsorted database presented in the paper is more efficient.. The most important thing implied in this paper is that to manage an unsorted database on a quantum computer is possible and efficient. Though a query algorithm on a sorted database can be more efficient than a query algorithm on an unsorted database, the sorting price might be very high. So the quantum search algorithm presented in this paper offers another way to database management on an actual quantum computer. [2] P. Hoyer and J. Neerbek, arXiv:quant-ph/0009032 A. Quantum random access memory A quantum random access memory (qRAM) uses nqubits to address any quantum superposition of N memory cells. It means the qRAM can perform memory accesses in coherent quantum superposition [5] : if the quantum computer needs to access a superposition of memory cells, the address register A must contain a superposition of addresses j a j |j A , and the qRAM will return a superposition of data in a data register D, correlated with the address register:. where d j is the content of the jth memory cell [6] . Giovannetti, Lloyd and Maccone have presented an architecture that exponentially reduces the requirements for a memory call: O(log 2 N ) switches need be thrown instead of the N used in classical RAM designs, which yields a more robust qRAM algorithm than conventional (classical and quantum) designs. See [6] for more details.

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


Parallelization of a Dynamic Monte Carlo Algorithm: a Partially Rejection-Free Conservative Approach We experiment with a massively parallel implementation of an algorithm for simulating the dynamics of metastable decay in kinetic Ising models. The parallel scheme is directly applicable to a wide range of stochastic cellular automata where the discrete events (updates) are Poisson arrivals. For high performance, we utilize a continuous-time, asynchronous parallel version of the n-fold way rejection-free algorithm. Each processing element carries an l×l block of spins, and we employ the fast SHMEM-library routines on the Cray T3E distributed-memory parallel architecture. Different processing elements have different local simulated times. To ensure causality, the algorithm handles the asynchrony in a conservative fashion. Despite relatively low utilization and an intricate relationship between the average time increment and the size of the spin blocks, we find that for sufficiently large l the algorithm outperforms its corresponding parallel Metropolis (non-rejectionfree) counterpart. As an example application, we present results for metastable decay in a model ferromagnetic or ferroelectric film, observed with a probe of area smaller than the total system. Fast and efficient algorithms are invaluable ingredients for large-scale simulations in physical sciences and engineering. The implementation of efficient, massively parallel algorithms for Monte Carlo simulations is not only an interesting and challenging problem, but also one of the most complex ones in parallel computing. It belongs to the class of parallel discrete-event simulation (sometimes referred to as distributed simulation) which has numerous applications in engineering, computer science, and economics, as well as in physics [1] . For example, in lattice Ising models the discrete events are spin updates, while in queueing networks they are job arrivals. The dynamics of these systems, which obviously contain a substantial amount of parallelism, were traditionally simulated on serial computers. Paradoxically, it is fairly difficult in practice to implement an efficient parallel algorithm to simulate these dynamics, mainly due to the fact that the discrete events (updates) are not synchronized by a global clock. Here we present and analyze the performance of a variation [2] of the n-fold way algorithm [3, 4] to simulate magnetization switching in a kinetic Ising model on a distributed-memory parallel computer.. Metastability and hysteresis are widespread phenomena in nature. Ferromagnets are common systems that exhibit these behaviors [5] , but there are also numerous other examples ranging from ferroelectrics [6] and electrochemical adsorbate layers [7] to liquid-crystals [8] . An important potential technological application of nanoscale ferromagnetic particles and ultrathin films is high-density magnetic recording media, and computational experiments and modeling of these materials are integral parts of current research and engineering.. Simulating metastable decay often involves long characteristic time scales (the lifetime of the metastable phase), and several sophisticated algorithms have been developed for serial computers [3, 4, 9] to tackle this problem. Common testbeds for these algorithms are kinetic Ising ferromagnets below their critical temperature T c , which exhibit slow metastable decay after reversal of the external magnetic field [10] . These models are appropriate for the study of highly anisotropic single-domain nanoparticles and thin films [11] .. There are powerful techniques, such as multi-spin coding [12] and cluster algorithms [13, 14] , to simulate the equilibrium properties of the Ising model, but these methods completely change the original microscopic dynamics. Kinetic Ising models, either with integer-time updates or with Glauber's continuous-time interpretation [15] , were believed to be inherently serial, i.e., the corresponding algorithm could attempt to update only one spin at a time. Providing a counter example to that belief, Lubachevsky presented an efficient conservative approach for parallel simulation of these systems [2] without changing the dynamics of the underlying model. Applications of his scheme also include modeling of wireless cellular communication networks [16] and ballistic particle deposition [17] . Also, he proposed a way to incorporate the n-fold way algorithm, possibly further contributing to speedup. Here, we implement this algorithm on the isotropic, two-dimensional Ising model, and we systematically compare its performance to the parallel Metropolis algorithm. To our knowledge, this is the first actual implementation of the parallel n-fold way scheme. More importantly, detailed comparison between the two parallel schemes has not been given before. As we show in this paper, there is an interesting competition between their performances, and detailed analysis is essential to decide which one to apply in different parameter regimes. This paper is organized as follows. In Section II we define the model and summarize the standard Metropolis and rejection-free serial algorithms. In Section III we outline the basic conservative approach for parallel discrete-event simulation, applied to Ising spins, and describe the parallel Metropolis and n-fold way algorithms. In Section IV we give some details of the implementation and analyze its performance. In particular, we compare it to that of the parallel Metropolis update scheme. In Section V we give some examples of ongoing and future applications to model magnetic and ferroelectric systems, and in Section VI we conclude with a brief summary. We have studied the performance of the parallel n-fold way dynamic Monte Carlo algorithm proposed by Lubachevsky [2] , in which each PE carries an l×l block of random variables. The algorithm was implemented for a two-dimensional kinetic Ising ferromagnet undergoing metastable decay, but the parallel scheme is generically applicable to a wide range of stochastic cellular automata where discrete events (updates) are Poisson arrivals. To obtain reasonable performance on the T3E distributed-memory parallel architecture and to be faithful to the original dynamics, one must utilize an asynchronous update scheme with continuous time. Then the expensive global barrier synchronizations are avoided and spin-flip attempts are modeled as independent Poisson arrivals. We analyzed the performance of our implementation, which sensitively depends on the block size and the number of PEs, as well as on the characteristic length and time scales of the simulated system. We found that for large enough block size, the routine outperforms the standard parallel Metropolis algorithm. For moderately low temperatures it yields high speedups with respect to the already fast serial n-fold way algorithm. For example, at T =0.7T c and |H|/J=0.2857, employing l=256 we obtained a speedup of 260 with 400 PEs, and for l=1024 a speedup of 58 with 64 PEs. Often the system size (possibly large) is specified, and for fixed L, although significantly worse than linear, the speedup is still a monotonically increasing function of the number of PEs, up to the maximum 256 PEs that we studied. At the same time, the efficiency is monotonically decreasing, which results in larger total CPU time usage to execute the same task with a larger number of PEs. If one has unlimited resources (i.e., no allocation limits) this aspect is not relevant. For most, like us, who have limited CPU resources on a certain parallel architecture, "optimization" between speedup and efficiency can be important. Our implementation is obviously best suited to simulating large systems.. On the other hand, for very low temperatures, the algorithm does not provide an efficient way to simulate metastable decay. The reason for the relatively narrow regime of efficient implementation lies in the introduction of a special class in the n-fold way algorithm which "shields" the blocks from each other, but significantly decreases the typical time increments. The algorithm avoids rollbacks, but pays a large price: it looses the arbitrarily large time increments that is the most important feature of the serial n-fold way algorithm, at arbitrarily low temperature and field. To obtain reasonable efficiency compared to the serial n-fold way algorithm, one needs to employ large blocks such that l/4 > ∼ ∆t ser , and clearly it is impossible to keep up with very large serial time increments by increasing l. One way to preserve the advantage of the original n-fold way algorithm in principle would be to apply it directly on each block (optimistic approach). This would require a complex protocol to correct erroneous computations. Such a rollback procedure would ensure the correct time ordering of simulated events. This mechanism is not unknown in distributed event simulation [24] and certainly has potential in our model. The complexity of such an implementation, however, might carry a tremendous overhead with respect to the very simple and fast serial algorithm for the Ising model. Another possible way to improve efficiency, while avoiding a general rollback procedure, is to consider relaxation [25] which might use local speculative computations before scheduling an event [26] . The probability that the block magnetization, observed through a b×b window, has not changed sign by time t after a sudden magnetic field reversal in a 1024×1024 Ising system. The solid curves for b=1024, 256, and 128 are scaled error functions, given by theory [10] for large b. The dotted curve for b=8 represents the theoretical coarse-grained b/Ro → 0 limit, i.e., the metastable volume fraction, φms(t) [Eq. (12)], given by Avrami's law. As expected, it fits the data very well for t< τ , where droplet coalescence is unimportant.

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


Real-time one-dimensional motion estimation and its application in computer vision Abstract Traditional optical flow methods are designed to generate two-dimensional (2D) motion fields. However in some applications, only the motion field along a predefined line is needed, while the rest of the redundant 2D region (Cong et al., CVPR, 2009) can be ignored. In this paper, we propose a general framework for estimating one-dimensional (1D) motion field using the L 1 norm metric, which can be flexible for adding any constraints depending on the specific intention. Compared with 2D methods in model calculation, which often obtain a local optimal solution, our 1D version has the advantage of real-time global optimization and sub-pixel accuracy with a large displacement capacity. The synthesized experiments have justified the effectiveness of our 1D model. Two vision applications are investigated: (i) for crowd counting, we design a novel unified framework for both line of interest and region of interest counting using our 1D motion model to mosaic the dynamic blobs. Such a framework can adapt to new site without scene-specific learning and overcome overfitting. (ii) For visual odometry, we apply our 1D model to estimate the linear velocity of the robot in real time and obtain a comparable result with the benchmark Encoder. Experiments verified that our proposed model can produce satisfactory results in real time. Optical flow or motion field estimation is one of the major research areas in computer vision and also the basis for many vision problems. Since Horn Shunck model [37] and Lucas Kanade model [44] were proposed in 1981, optical flow has been broadly applied to various fields, such as visual tracking [33] , structure from motion (SFM) [22] , motion segmentation [58, 66] , object recognition [26] , video surveillance [1, 3, 30, 49] , visual odometry (VO) [16, 55] , and even video compression [20] . In this paper, a 1D optical flow model has been proposed. In comparison with the traditional 2D optical flow methods, it has several advantages. First, our 1D model has a computational complexity of only O(N K 2 ) and can run in real time and deal with large displacement with subpixel accuracy. Second, for model definition, in addition to multi-frame brightness assumption, two additional constraints (slow motion constraint and temporal smoothness constraint) have been adopted for robustness. Finally, a global optimization method has been utilized for model calculation, while most of the existing 2D algorithms use local optimization. In fact, depending on the circumstances, further constraints or smoothness terms can be integrated into our 1D flow model.. Our model has been utilized in two practical problems. First, in a unified crowd counting algorithm for video surveillance, which uses tilt angle-specific learning to ensure easy deployment and avoid overfitting, while the commonly used scene-specific learning schemes need on-site annotation and often suffer from overfitting. The other is in VO to estimate the linear velocity for robot navigation, where our algorithm can robustly estimate the linear velocity in real time. Moreover, we believe that our 1D optical flow model can be use in other practical applications that involve estimating the motion field along a straight line. Most of the state-of-the-art methods are designed to estimate two-dimensional (2D) optical flow. However, in some practical applications, only the motion field along a predefined line needs to be estimated, as illustrated in Fig. 1 . For example, in crowd counting (Sect. 5), we are interested in the number of pedestrians crossing a detection line in a certain time duration [line of interest (LOI) counting]. If the one-dimensional (1D) motion field on the detection line is available, we can mosaic them in spatial-temporal space. We refer to this procedure as dynamic mosaicing and is illustrated in Fig. 2 . The core technique is how to estimate the 1D motion field robustly and quickly. A naive idea is to generate 2D motion field using some traditional optical flow algorithms and then retain the interesting 1D motion vector and discard the rest. However, it takes more computation time and higher computer resources than that are absolutely necessary. Therefore, our intention is to design an 1D optical flow for these types of practical problems [24] . Our 1D motion model is not a general one for motion estimation like most 2D optical flow methods. Our intention is to estimate the motion field along the predefined line when the objects mainly cross the LOI approximately perpendicularly, and under these assumptions we wish that our model is more effective and efficient than traditional 2D models. Our main contributions are as follows:. (i) We introduce a novel 1D optical flow model. In comparison with the state-of-the-art 2D optical flow methods, it has the following advantages: (a) for the model itself, our 1D method only needs to process pixels on both sides of the predefined line and estimate the 1D motion field along the line; (b) for the model definition, our method adopts multi-frame brightness constancy assumption and additional two constraints (slow and temporal smoothness constraint) measured by L 1 norm to make it more robust. Depending on the circumstances, we can further add any constraint or smoothness terms into our 1D framework to improve its performance; (c) for the model inference, our method is based on global optimization with a complexity cost of O(N K 2 ) and can provide sub-pixel accuracy by multiscale inference.. (ii) Our model is successfully used to solve two practical vision applications. First, we design a unified crowd counting algorithm for both LOI and region of interest (ROI) counting, without scene-specific learning for new sites. Second, we design a visual feedback linear velocity estimation system for robots in indoor environments. Our model can be easily adapted to other applications, such as traffic monitoring and intrusion detection. Our method is unique in that it is focused on 1D motion estimation. We have not found direct references, as the stateof-the art optical flow models are all 2D. However, both 1D and 2D models deal with two common issues, model definition and model inference, and we recommend [9] for a general review and [12, 13, 34, 56, [61] [62] [63] 65] for more recent works.. For the model definition, most optical flow models are based on the brightness constancy assumption and spatial smoothness constraints [37] . Given a pair of images I (x, y, t) and I (x, y, t + 1), the motion field (u, v) is computed by minimizing an energy of the form. where (x, y) is the image coordinate in region , and ∇u and ∇v are the gradient in two directions respectively. D(·) is the energy function based on the brightness constancy assumption, and S(·) denotes the spatial smoothness term including spatial regularity. There are also some other assumptions or constraint terms, such as multi-frame brightness constancy assumption [24, 38] , small and slow smoothness constraint [67, 69] edge constraint. For the distance metrics, in addition to L 2 norm, there is also L 1 norm [40] . For the model inference, the specific techniques include:. (i) Differential techniques: differential techniques compute velocity from spatiotemporal partial derivatives or higher-order derivatives of image intensity or filtered versions of the image (using low-pass or band-pass filters), such as [37, 50] . From a Taylor expansion or more generally from an assumption, the intensity constant is conserved. (ii) Block-based matching: for images with heavy noise, this type of method is a suitable choice [5, 14, 59] by maximizing a similarity measurement, such as the sumof-squared difference (SSD). Moreover, the Laplacian pyramid and a coarse-to-fine strategy are adopted for effective computation. (iii) Global optimization methods: most approaches using local optimization may be slump into local minima; to overcome this [12] suggest a complex continuous optimization scheme for flow estimation, the dynamic programming is applied [4, 31] and Graphical Cuts is used to estimate the motion field [42] . (iv) Learning-based methods: for general optical flow methods, there are many tuning parameters defined by experience or prior knowledge. It is difficult for a fresh user to operate and impact practical applications. By learning proper parameters from training image sequences with ground truth, learning-based methods [56, 61] partially handle this problem. (v) Real-time techniques: real time is crucial in practice; however, few of them can run in real time or in high frame rates, such as Lucas-Kanade method [7, 45] , parallel optical flow [10] , and some hardware-based ones [28, 53] . (vi) Energy-based methods [35] and phase-based techniques [32] . . A color-monocular camera is employed for visual serving and navigation, with a resolution of 640 × 480 and the frame rate at 30 frames per second (FPS) and field of view (FOV) at 100 • . We test our algorithm in both indoor and outdoor constructed environments. The Encoder, which is a commercial system, is used as the benchmark for comparison as shown in Fig. 12 . The corresponding statistical results are given in Table 6 , in which the mean distance error is 2.31 % and the mean velocity error is about 2.7 %, all in acceptable ranges. Thus, the performance of our system is comparable with the Encoder. Figure 13 shows the mosaicing image. Intuitively, if the 1D motion estimation is correct, we can obtain a good mosaicing scene; thus Fig. 13 justifies the effectiveness of our 1D model.. Our algorithm is implemented in C and tested on a machine with P4 2.8 GHz CPU and 2G RAM, and the average speed is about 20FPS for the resolution 640 × 480. 13 The result of dynamic mosaicing by our 1D motion model to reconstruct a textured 2D scene. When the robot is moving directly across the color poster on the ground, the 1D motion field is estimated frame by frame. Therefore, the 2D scene can be mosaiced by the average motion vector consecutively

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