Estimating network proximity and latency Network proximity and latency estimation is an important component in discovering and locating services and applications. With the growing number of services and service providers in the large-scale Internet, accurately estimating network proximity/latency with minimal probing overhead becomes essential for scalable deployment. Although there exist a number of network distance estimation schemes, they either rely on extensive infrastructure support, require the IP address of the potential targets, falsely cluster distant nodes, or perform poorly with even few measurement errors. We propose Netvigator, a scalable network proximity and latency estimation tool that uses information obtained from probing a small number of landmark nodes and intermediate routers (termed milestones) that are discovered en route to the landmarks, to identify the closest nodes. With very little additional probing overhead, Netvigator uses distance information to the milestones to accurately locate the closest nodes. We developed a Netvigator prototype and report our performance evaluation on PlanetLab and in the intranet of a large enterprise. Netvigator is a running service on PlanetLab as a part of HP Labs' S 3 (Scalable Sensing Service). Proliferation of Internet access has not only whetted consumers' appetite for context-sensitive personalized delivery of services, but has also put the tools for service creation in their own hands. We believe that the distinction between service consumer and provider will blur further. Our vision differs from current hosting of services by large providers because we believe there will be a vast number of small providers in the new Internet economy. Such an environment will cause tremendous growth in service composition and distribution on the Internet. Building a scalable and adaptive Internet service infrastructure is a key enabler for our vision. An important challenge facing future network infrastructure is to balance the tradeoffs between providing individualized service to each client * This work was supported in part by DARPA Contract N66001-05-9-8904. and making efficient use of the networked resources. Efficient resource utilization enables the same infrastructure to accommodate more services and clients and respond better to flash crowds.. A key issue in effectively utilizing network resources and services is efficiently and quickly locating the desired resources or services in specific network locations. These kinds of location services allow a service provider to construct efficient service overlay networks, which for example could be used to distribute rich media content, enable a client to identify the closest cache/proxy that has the desired data or service, enable a client to quickly locate a well provisioned nearby server for participating in a massive multiple-user online game, or to quickly construct a proximityaware peer-to-peer (P2P) overlay for applications such as content sharing. Hence, techniques that accurately and efficiently estimate locality of resources/services and compute network distances have become important.. Currently proximity estimation is based on pairwise distance estimate between any two given nodes. Such schemes find the node closest to a client from a given set of potential targets by estimating the distance to each candidate and picking the minimum. This process requires a priori knowledge about the set of all the candidates. Furthermore in some systems, such as P2P systems, the set of service providing nodes changes dynamically, necessitating fast recomputation of proximity. In practice, when finding a service/resource, knowledge about the distance to the complete set of potential servers is usually not of interest, and ideally, the proximity estimation tool should be able to answer client queries such as "Which is the closest node that can provide a media transcoding service?" without requiring information about all potential nodes. Most of the distance estimation techniques build a globally consistent network model designed to optimize the estimation error averaged globally. For proximity estimation it is more important to lower the distance estimation error between closeby nodes. The global optimization schemes perform poorly for proximity estimation. Their proximity accuracy can be greatly improved by relaxing the global consistency requirement.. Landmark clustering [11, 15] is a popular scheme used for network distance estimation that uses a node's distances to a set of landmark nodes to estimate the node position in a Cartesian space. However, current landmark clustering techniques are prone to false clustering where distant nodes are positioned near each other. Further, the estimation quality of current landmark clustering schemes depends on the quality of measurement data and can be significantly inferior to the optimal when there is bad measurement data.. In this paper, we describe Netvigator (Network Navigator), a new network proximity and latency estimation tool that is more efficient and accurate than the existing schemes.. 1 Netvigator pri- 1 In this paper we use the terms latency and distance interchangeably. marily focuses on proximity estimation (i.e. to rank nodes according to proximity to any given node) as well as distance estimation. In Netvigator, each node measures distances to a given set of landmarks, similar to other landmark clustering techniques. Netvigator additionally leverages topology information by recording the distances to the milestones that are encountered while probing the landmarks. It must be noted that our scheme does not require deployment of milestones, instead they are discovered during the probing process, e.g., the intermediate routers encountered during a traceroute. The milestones have the capability to intercept measurement packets and respond to the client nodes. Instead of attempting to embed all the nodes in a global Cartesian-space based on measurements, Netvigator performs local clustering for proximity estimation. This paper makes the following contributions:. • We propose three clustering algorithms that utilize the distance information from the landmarks as well as the milestones to obtain higher accuracy in finding the closest node, with relatively small additional measurement overhead. Utilizing distance information from both the landmarks and milestones not only improves the accuracy but also makes our technique robust to bad measurements. In addition to proximity, our scheme also produces a highly accurate distance estimate.. • We developed a prototype of our scheme and evaluated it on PlanetLab [14] and the intranet of a large enterprise (HewlettPackard). Our experiments show that with 90% confidence, the real closest node falls in the top two nodes our algorithm identifies. Further, Netvigator's distance estimation outperforms that of GNP and Vivaldi. Netvigator is a running service on PlanetLab as a part of HP Labs' S 3 (Scalable Sensing Service) [16] . S 3 has been up and running from January 23, 2006 , and it provides latency, bandwidth capacity, and available bandwidth estimates between all node-pairs on PlanetLab.. The remainder of the paper is organized as follows. Section 2 describes the details of Netvigator, followed by experimental results in Section 3. We discuss deployment experiences and efficiency issues in Section 4. Section 5 surveys the related work. Concluding remarks are presented in Section 6. We presented Netvigator, a network proximity estimation tool that uses an enhanced landmark clustering technique to accurately locate the closest node to a given node. Our clustering algorithms for finding the closest nodes utilize distance information from the landmarks as well as milestones encountered en route. This approach provides high accuracy as well as robustness to bad measurements. We developed a prototype of our scheme and evaluated it in the real world including on planet-lab as well as HP intranet. Our experiments show that with 90% confidence, our algorithm identifies the actual closest node. In this section, we first discuss issues relating to the crucial issue of scalability. We have done a limited scalability study in [27] using simulations with synthetic topologies. Preliminary results indicate that Netvigator technique scales with the number of end hosts without the loss of accuracy and without increasing the number of landmarks. We are currently experimenting with our PlanetLab prototype to further understand the issues and are considering the reducing the measurement overhead and a distributed querying mechanism as described in the next two subsections. The remaining three subsections deal with deployment issues and refinements to the original scheme. Several schemes have been proposed to estimate Internet distances. Internet Distance Maps (IDMaps) [7] places tracers at key locations in the Internet. These tracers measure the latency among themselves and advertise the measured information to the clients. The distance between two clients A and B is estimated as the sum of the distance between A and its closest tracer A , the distance between B and its closest tracer B , and the distance between the tracers A and B . An algebraic approach can be used complementary to IDMaps to compute distances between intermediate hops without extra probing [18] . The accuracy of IDMaps improves as the number of tracers increases. One problem with IDMaps is that a client node has to measure distances to all tracers to identify the closest tracer. Dynamic Distance Maps (DDM) [23] is similar to IDMaps. DDM organizes the tracers into a hierarchy, and a client node traverses the hierarchy top-down to locate the closest tracer.. M-coop [20] utilizes a network of nodes linked in a way that mimics the autonomous system (AS) graph extracted from BGP reports. Each node measures distances to a small set of peers. When an estimate between two IP addresses is required, several measurements are composed recursively to provide an estimate. King [8] is similar in spirit to IDMaps and M-coop. It takes advantage of the existing DNS architecture and uses the DNS servers as the measurement nodes. King, M-coop, IDMaps, and DDM all require that the IP addresses of both the source and the destination are known at the time of measurement. Therefore, they cannot be used when the IP address of the target node is unknown. In scenarios where a client attempts to locate close-by Internet services, the target IP addresses of these local service nodes are usually not known in advance, and must be discovered. Furthermore, storing and retrieving the measurement information is a non-trivial task.. There are schemes that use landmark techniques for network distance estimation. Landmark clustering [11, 15] uses a node's distances to a common set of landmark nodes to estimate the node's physical position. The intuition behind this technique is that if two nodes have similar latencies to the landmark nodes, they are likely to be close to each other. There are several variations of landmark clustering. In landmark ordering [15] , a node measures its roundtrip time to a set of landmarks and sorts the landmark nodes in the order of increasing round-trip time (RTT). Therefore, each node has an associated order of landmarks. Nodes with the same (sim-ilar) landmark order(s) are considered to be close to each other. This technique however, cannot differentiate between nodes with the same landmark orders.. Another variation is GNP (Global Network Positioning) [11] and its sequel NPS (Network Positioning Systems) [12] . In this scheme, landmark nodes measure RTTs among themselves and use this information to compute the coordinates in a Cartesian space for each landmark node. These coordinates are then distributed to the clients. The client nodes measure RTTs to the landmark nodes and compute the coordinates for itself, based on the RTT measurements and the coordinates of the landmark nodes it receives. The Euclidean distance between nodes in the Cartesian space is directly used as an estimation of the network distance. Internet Iso-bar [3] also requires each node to measure distance to landmarks. It uses the distance information to form clusters. For each cluster, it assigns a monitoring agent for the center node. Each monitor measures the distance to all other cluster-heads and this latency is used to estimate distances between two hosts in different clusters.. GNP and Internet-Iso-bar require all client nodes contact the same set of landmarks nodes, and the scheme may fail when some landmark nodes are not available at a given instant of time. To address this problem, Lighthouse [13] allows a new node joining the network to use any subset of nodes that is already in the system (i.e., lighthouses) as landmarks to compute a global network coordinate based on measurements to these lighthouses. Mithos [25] and PCoord [24] are similar to lighthouse in that they do not require each node to measure distances to all the predetermined landmarks. PIC (Practical Internet Coordinates) [4] has been proposed to use a security test based on triangular inequality to filter out wrong coordinates/measurements from the malicious landmarks.. Virtual landmarks [22] and ICS (Internet Coordinate System) [10] are also landmark-based schemes. They however, use the PCA (Principal Component Analysis) of Lipschitz embedding, instead of Euclidean embedding, to obtain network positions. Compared with GNP, these schemes are computationally more efficient and require less dimensionality. BBS (Big-Bang Simulation) [19] on the other hand reduces Euclidean embedding error by iteratively simulating the error as potential force fields.. Despite the variations, current landmark clustering techniques share one major problem. It causes false clustering where nodes that have similar landmark vectors but are far away in network distance are clustered near each other.. Vivaldi [5] is another scheme that assigns coordinate space for each host, but it does not require any landmarks. Instead of using probing packets to measure latencies, it relies on piggybacking when two hosts communicate with each other. With the information obtained from passively monitoring packets (e.g., RPC packets), each node adjusts its coordinates to minimize the difference between estimates and actual delay. Although Vivaldi is fully distributed, it takes time to converge, requires applications to sample all nodes at relatively same rate to ensure accuracy, and packets need to add Vivaldi-specific fields.. Meridian [26] network location service is similar in intent to Netvigator and is also focused on proximity estimation. Meridian forms a loosely-structured overlay network of concentric rings based on direct measurements. A gossip protocol is used for exchanging information amongst the nodes. The query matching is performed by forwarding it towards the most appropriate node.

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


Redundant trees for preplanned recovery in arbitrary vertex-redundant or edge-redundant graphs Abstract-We present a new algorithm which creates redundant trees on arbitrary node-redundant or link-redundant networks. These trees are such that any node is connected to the common root of the trees by at least one of the trees in case of node or link failure. Our scheme provides rapid preplanned recovery of communications with great flexibility in the topology design. Unlike previous algorithms, our algorithm can establish two redundant trees in the case of a node failing in the network. In the case of failure of a communications link, our algorithm provides a superset of the previously known trees. T HE STUDY of self-healing networks, which automatically restore their functionality in the event of a failure, is prompted by the increasing reliance on high-speed communications and the requirement that these communications be robust in the case of certain failures. A failure may arise because a communications link is disconnected or a network node becomes incapacitated. Failures may occur in military networks under attack [26] , as well as in public networks where failures, albeit rare, can be extremely disruptive [61] . For high-speed networks, rapid recovery from failure is important, as even a short down time may entail the loss of much data. Survivability may be considered to be a component of quality of service (QoS) [44] , [47] . We present a tree-based algorithm applicable to optical wavelength-division multiplexed (WDM) systems [42] , SONET, asynchronous transfer mode (ATM), or any protocol which allows the use of tree routings and redundancy for recovery from failures.. In this section, we present an overview of the criteria for our algorithm and briefly illustrate how these criteria relate to ATM and SONET. The study of self-healing networks is often classified according to the following three criteria (e.g., [8] , [16] ): the use of link (line) rerouting versus path (or end- to-end) rerouting, the use of centralized computation versus distributed computation, and the use of precomputed versus dynamically computed routes. A succint comparison of the different options can be found in [75, pp. 291-294] and in [30] . Our algorithm considers path rerouting which is preplanned and centrally computed. Other important criteria are the logical connections built by our algorithm and the network topologies on which our algorithm can operate. We have established an algorithm which, on any vertex (edge)-redundant network, can build two directed multi-trees which together make connections immune to failure of a single vertex (edge). Our algorithm expands the set of known solutions and, for certain criteria and example networks, yield better performance than the previously known method. Our algorithm can be modified to take into account cost functions and it can be implemented in a distributed fashion for edge redundancy under certain conditions. Any cost function can be applied to select our cycles and paths. Thus, the cost functions, such as delay minimization, which are often associated with Steiner trees for multicasting, can be taken into account when we select our cycles and paths.. There are several possibilities for further investigation. Four such areas of interesting future work are the areas of multiple failures, spare capacity planning, cost minimization, and link rerouting. One approach to several failures is to constuct two trees, if possible, to guard against one failure, then construct two more trees on the network remaining after a failure. If failures are sufficiently rare, where no two failures are expected to occur simultaneously, then such an approach may be acceptable, although it may require rerouting traffic after a failure from the first secondary-tree built to the second primary-tree built. If failures occur not because of benign conditions, such as hardware-component fatigue, but, e.g., because of incorrect messages which may disrupt several vertices, then the approach of having only of two multi-trees at any time may not be sufficient. The issue of three-trees for edge failure in a three-connected network has been addressed in [81] . The issue of whether a similar extension may be achieved using our algorithms is of interest.. The issues of spare capacity planning and cost minimization are related, since they concern the application of our algorithm in a fashion which is cost effective. The fact that we provide more solutions than the previously known multi-tree algorithm for edge failures entails that there are certain networks and associated cost metrics for which our algorithm performs better, as illustrated in Section IV-B. Spare capacity is an important issue because having two live streams or having capacity reserved for recovery may be costly. Moreover, under certain conditions, there may not be enough capacity to accommodate certain multi-trees. Therefore, the link-bylink capacity, which we have not explicitly considered here, may need to be incorporated in the criteria for tree selections. Note that the problem of finding minimum cost trees for a certain source and a set of destinations is the Steiner tree problem, which is NP-hard. Good surveys of the problem and heuristics can be found in [63] , [70] , [68] , [74] and applications to networks can be found in [6] , [48] , [10] . Because the Steiner tree problem is NP-hard, the issue of cost minimization and capacity utilization may be difficult.. Finally, we may comment on extending our algorithm to loopback so as to achieve link or node rerouting rather than path rerouting. The placing of traffic onto the backup path in BLSR is called loopback, because in a ring, the traffic backhauls through the vertices it already traversed. The multitree approach we have presented is mostly a path rerouting approach. A drawback to path rerouting is that it requires each path to have a dedicated backup path. The maximum spare capacity may be of the order of the sum of the capacities of all the routes in the network. Link rerouting does not reroute paths but rather the traffic carried by a certain link or vertex. The spare capacity need never be greater than the maximum capacity of any link or vertex. Since link (or vertex) rerouting is not based on routes, the tree-based approach we have given is not appropriate. We have extended our approach to allow for link rerouting for vertex (edge) failures in arbitrary vertex (edge)-redundant networks ( [23]

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


On the Optimality of Binning for Distributed Hypothesis Testing Abstract-We study a hypothesis testing problem in which data are compressed distributively and sent to a detector that seeks to decide between two possible distributions for the data. The aim is to characterize all achievable encoding rates and exponents of the type 2 error probability when the type 1 error probability is at most a fixed value. For related problems in distributed source coding, schemes based on random binning perform well and are often optimal. For distributed hypothesis testing, however, the use of binning is hindered by the fact that the overall error probability may be dominated by errors in the binning process. We show that despite this complication, binning is optimal for a class of problems in which the goal is to "test against conditional independence." We then use this optimality result to give an outer bound for a more general class of instances of the problem.Index Terms-Binning, distributed hypothesis testing, Gaussian many-help-one hypothesis testing against independence, Gel'fand and Pinsker hypothesis testing against independence, outer bound, Quantize-Bin-Test scheme, rate-exponent region, test against conditional independence.

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


On Second Order Homogeneous Linear Differential Equations with Liouvillian Solutions We determine all minimal polynomials for second order homogeneous linear di erential equations with algebraic solutions decomposed into invariants and we show how easily one can recover the known conditions on di erential Galois groups 12,19,25] using invariant theory. Applying these conditions and the di erential invariants of a di erential equation we deduce an alternative method to the algorithms given in 12,20,25] for computing Liouvillian solutions. For irreducible second order equations our method determines solutions by formulas in all but three cases. Algorithms computing algebraic solutions of second order di erential equations are well-known since last century. Already in 1839, J. Liouville published such a procedure. However, the degree of the minimal polynomial of a solution must be known. Among other renowned mathematicians, L. Fuchs 5, 6] developed from 1875 to 1877 a method for computing algebraic solutions, which is based only on binary forms. He wanted to clear up the question of when a second order linear di erential equation has algebraic solutions and he solved it by determining the possible orders of symmetric powers associated with the given di erential equation for which at least one needs to have a root of a rational function as a solution (see e.g. 5, No. 22, Satz]). Thereby, he gave a method { presumably without taking note of it { that remains valid for determining Liouvillian solutions of irreducible linear di erential equations of second order.. Modern algorithms for computing Liouvillian solutions are based on di erential Galois theory. These algorithms determine a minimal polynomial of the logarithmic derivative of a Liouvillian solution since one knows that these derivatives are algebraic of bounded degree (see Singer 16 ] Theorem 2.4). This approach for second order equations stems from Kovacic 12] and has been implemented in Maple and some other computer algebra systems. A more accessible version of this algorithm was given by Ulmer and Weil 25] and is implemented in Maple, too. Even when the solutions are algebraic, one can determine the minimal polynomial of a solution. In Singer and Ulmer 20] this is used to solve equations with a nite primitive unimodular Galois group by extending the Fuchsian method to arbitrary order. For this, one rst has to compute a minimal polynomial decomposed into invariants for every possible Galois group.. In this paper we take up the ideas from Fuchs once again. Applying invariant theory we reformulate these ideas and state them more precisely. From that we obtain an alternative method for computing Liouvillian solutions. Unlike the known algorithms 12, 20, 25] we compute for irreducible second order equations { except for three cases { all Liouvillian solutions directly by formulas and not via their minimal polynomials (Theorem 11). In the three exceptional cases we get a minimal polynomial of a solution using exclusively absolute invariants and their syzygies by computing { depending on the case { one rational solution of the 6 th , 8 th or 12 th symmetric power of the di erential equation and determining its corresponding constant (Theorem 16). There is no need for a Gr obner basis computation in these cases. In Fuchs 5, p . 100] and Singer and Ulmer 20, p. 67] one needs in these cases to substitute a minimal polynomial decomposed into invariants in the di erential equation. But this is very expensive. We note, that it is possible to extend the algorithm presented here at least to all linear di erential equations of prime power order.. The paper is organized as follows. In the rest of this section we brie y introduce di erential Galois theory and the concept of invariants. In section 2 we summarize important properties of linear di erential equations with algebraic solutions, which we use in section 3 to compute minimal polynomials decomposed into invariants. In section 4 we show, how easily one can obtain the known criteria for di erential Galois groups 12,19,25] using invariant theory. These criteria result in an algorithm for computing Liouvillian solutions of a second order linear di erential equation which is presented in section 5. Finally we give for every (irreducible) case an example.. The rest of this section and the following one contains nothing new, but are included to complete the picture.

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


Modeling user submission strategies on production grids Production-grid users experience many system faults as well as high and variable latencies due to the scale, complexity and sharing of such infrastructures. To improve performance, they adopt different submission strategies, that are potentially aggressive for the infrastructure.This work studies the impact of three different strategies. It is based on a probabilistic modeling of these strategies which are evaluated according to their performance, measured as the reduction of the latency expectation, and the infrastructure overhead, measured as the additional number of submitted jobs. A strategy cost criterion is then derived.Experiments are performed using real workload traces collected from the EGEE production infrastructure. Under these conditions, a good balance between high performance and low overhead can be found. Production grids are world-wide distributed systems, covering various network domains connected by WANs. They are highly variable environments federating sites with heterogeneous resources, configuration rules and access policies and servicing many users concurrently. Consequently, grids are characterized by high and non-stationary workloads. From a user point of view, the grid appears as a plethora of queues operated through different batch management systems, with different prioritization policies, that are difficult to exploit efficiently.. Unlike supercomputers no single grid scheduler can obtain a global view of the complete grid infrastructure. Instead, meta-schedulers coordinate the action of site schedulers, using heuristic that try to cope with (i) partial information and (ii) local independent scheduling policies that may interfere with the meta-scheduling objective. Moreover, job lifecycles include much more steps than scheduling and queuing (among others: credentials delegation, match-making, job submission language formats translation, logical-to-physical file names resolution, file replica selection, job monitoring system, grid information system). In the order of 10 machines, that all have to be reachable, may be involved in the job submission process.. The job submission system is subject to failures that can originate from network/connectivity problems, local configuration issues (authorization issues, differences in middleware versions, local environment, etc), workload variations (impacting all the components, not only the job queuing time), data access (data catalog querying, data transfer queuing, and the transfer itself), and scheduling issues. Nobody currently has a proven classification of all possible issues. Such a list is far from being trivial given the heterogeneity of the grid and the interoperation of complex stack of services.. As a consequence, grid jobs latency, measured as the duration between the beginning of a job submission and the time it starts executing, can be very high and prone to large variations. High fault ratios are often reported, as for example in [2] . High latency and faults impact the performance of applications, sometimes making grids unworthily for their tasks. Assuming that a single entity could achieve flawless scheduling on a world-wide scale production grid seems quite hazardous and we claim that a client-side error control is required as part of the scheduling, similarly to transport protocols implementing fault-tolerance mechanisms to deal with routing errors on the Internet.. As a matter of fact, it has been commonly observed on production systems that despite the middleware best efforts to address these problems internally, users do adopt different submission strategies controlled on the client side such as canceling jobs with too long latencies before resubmission or submitting several copies of the same job. These strategies are often empirical and not objectively evaluated. The motivation for this work is to provide an objective insight on these strategies. Strategies with a proven impact on applica-tion performance and causing no critical overload of the job management system could then be integrated in the client side of the middleware to release the users of this burden.. The more variable the job latency, the more efficient multiple submission strategies. Although multiple submission strategies are effective from the user point of view, they are usually not appreciated from administrators since they are increasing the workload endured by the grid resource brokers and schedulers. Yet, little can be done to regulate their usage, especially on a wide scale distributed grid. Quantifying the impact of submission strategies on real-size grids is a difficult problem due to the complexity of such systems. In this paper, we adopt a probabilistic approach to model the grid responsiveness. Execution statistics are collected on the real-scale EGEE production grid over long periods of time to estimate probability laws of the job latencies. Several submission strategies are studied using these grid workload models: the single resubmission (section 4), the multiple submission (section 5) and a novel strategy that we call delayed resubmission (section 6).. These strategies are assessed considering two criteria: the performance improvement from users point of view (reduction in latency time) and the infrastructure load (number of tasks to manage). The delayed resubmission strategy demonstrates a very good balance between high performance and low load. In this paper we have studied 3 different job submission strategies that users can adopt in order to reduce the latency they experience on production grids. For each of those strategies, we have established a model of the expectation of the total latency (including resubmission) and its standard deviation. We have shown that all these strategies reduce the latency. Moreover, the delayed resubmission strategy reduces the latency requiring less than 2 jobs in parallel while the multiple submission strategy gives the higher latency reduction but at a higher cost.. We have then proposed a cost criterion which characterizes the conditions under which it is possible to obtain both a latency smaller than in the case of single resubmission and fewer parallel jobs.. Future work will concern the validation of this approach with real applications. The impact of each strategy on gridapplications makespan can be measured and averaged to take into account evolutive experimental conditions. In a second step, the impact of all grid users exploiting the same strategy can be simulated in a controlled environment. week opt. opt. opt. EJ max max t0 t∞ ∆cost ∆cost ∆% Many works study the scheduling of jobs on distributed systems at different levels. The algorithms are directly implemented in schedulers. For example, Subramani et al [16] compare two different scheduling schemes with respect to the slowdown computed as the ratio of (latency + runtime) over runtime. One is the "K-distributed scheme" which consists in submitting each job to the K least loaded sites. When the first job starts running, the other (K-1) jobs are canceled. The second one is the "K-Dual Model" which is an improvement of the K-distributed one, giving priority to locally submitted jobs, using two different queues. The performance analysis shows that the slowdown is better reduced by the K-Distributed than the K-Dual Queue. However, when considering lightly loaded sites and heavily loaded sites separately, there is an inversion with the K-Distributed scheme which does not occur with the K-Dual Queue one. Different values of K have been studied from 1 to 4, showing a decrease in the average slowdown. Authors also demonstrate that the impact of inaccuracies in user estimates of runtime is in favor of the proposed schemes and that they also perform better than the other schemes when considering the communication overheads.. Sabin et al [14] study the scheduling in a heterogeneous multi-sites environment. They evaluate different strategies including multiple submissions (k=4), conservative versus aggressive backfilling and the relative job efficacy for queuing priority. Different experimentations based on job traces showed that in the case of heterogeneous multi-sites (which is the case in a production grid), conservative backfilling is better than aggressive and that using the relative job efficacy for queuing priority improves performances.. Casanova [3] studies the multi-submission of jobs, considering that when the first job starts running, all other jobs waiting in queue are canceled. He observes that submitting all jobs several times increases their average performance; the users that are penalized are those that do not use multiple submission. The load on batch schedulers or network will not be critical if the number of multiple jobs is less than 30, assuming that submissions are uniformly distributed among sites and that the job inter-arrival is always 5 seconds. However, the author observes that the 2006 version of GRAM conducts to a bottleneck when using more than 3 multiple submissions during peak job submission.. In this paper we focus on large scale infrastructure characterized by highly variable latencies, such as the EGEE production grid 1 on which experiments were conducted [7, 11] . Due to its unique scale, it enables challengingly large applications but it is known to be prone to faults and variable queuing times [9, 2, 1] . Yet, variability has also been acknowledged as a critical factor on other types of platforms, such as the knowARC grid 2 : for instance, the experiment reported in [13] shows variations up to 40 minutes in the grid time of an embarrassingly parallel applications and the work presented in [12] shows overheads ranging from 0 to 45 min. Earlier works conducted before the emergence of large-scale grids in the 2000s already pointed out the importance of variability, such as [15] : authors were then dealing with seconds-to-minutes variability values and the importance of this issue has dramatically increased in current grid infrastructures.. To address the complexity of modeling an heterogeneous grid infrastructure, we adopt a probabilistic approach. Statistical studies carried out in [4] and [6] and earlier works such as [10] or [5] are important contributions to workload modeling. However, those works mostly consider latencies from the perspective of a specific grid scheduler (if not a local site queue) and the actual match with the latency observed by an application still has to be validated. As explained above, several additional steps such as data transfers and proxy delegations are likely to disturb measures carried-out at the grid or local batch scheduler levels. Consequently, the monitoring approach adopted in this work relies on roundtrip times of probes submitted to the grid from the user client, thus getting much closer to real application job submission conditions.

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


AADL modeling and analysis of hierarchical schedulers A system based on a hierarchical scheduler is a system in which the processor is shared between several collaborative schedulers. Such schedulers exist since 1960 and they are becoming more and more investigated and proposed in reallife applications. For example, the ARINC 653 international standard which defines an Ada interface for avionic real time operating systems provides such a kind of collaborative schedulers. This article focuses on the modeling and the performance analysis of hierarchical schedulers. We investigate the modeling of hierarchical schedulers with AADL. Hierarchical scheduler timing and synchronization relationships are expressed with a domain specific language based on timed automata: the Cheddar language. With the meta CASE tool Platypus, we generate Ada packages implementing the Cheddar language. These Ada packages are part of Cheddar, a real time scheduling simulator. With these Ada packages, Cheddar is able to perform analysis by scheduling simulation of AADL systems composed of hierarchical schedulers. An AADL model of the ARINC 653 hierarchical scheduling is described as an illustration. In [32] , we presented Cheddar, a set of Ada packages which aims at performing analysis of real time applications. This 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. set of packages includes analytical scheduling tools and most of classical scheduling simulation algorithms. It also provides a domain specific language called the Cheddar language. The Cheddar language allows the designer to define new schedulers which are not already implemented into the Cheddar framework. The Cheddar framework offers a set of tools (eg. interpreters) for such user-defined schedulers.. Cheddar is able to perform analysis on AADL specifications. The SAE Architecture Analysis and Design Language (AADL) is a textual and graphical language support for model-based engineering of embedded real time systems that has been approved and published as SAE Standard AS-5506 [14] . AADL is used to design and analyze the software and the hardware architecture of embedded real-time systems.. In [33] , we explained how performance analysis can be performed with Cheddar on AADL specifications when threads are scheduled with usual schedulers such as Rate Monotonic or Earliest Deadline First. This article presents the support of hierarchical schedulers with AADL and Cheddar. A system based on a hierarchical scheduler is a system in which the processor is shared between several collaborative schedulers. With the current AADL standard and with the current Cheddar implementation, such a scheduler is difficult to model and analyze.. Hierarchical scheduling has been initially proposed in the context of time sharing systems. In time sharing systems, hierarchical schedulers were proposed in order to define userlevel scheduling policies (eg. fair process scheduling [20] or user-level and kernel-level threads scheduling into Solaris [36] ). If user-level scheduling capability stays a motivation for the use of hierarchical schedulers, system designers mostly focus on hierarchical scheduling in order to reduce system design cost and to increase the sharing resource efficiency. Today, it is usual to share a processor by several applications. This allows old applications to run efficiently on newer processors without beeing re-designed (eg. re-design of the scheduling). Applications sharing a processor can have different resource requirements. For example, in a real time multimedia application, a given scheduler may support critical tasks for audio and video presentation while uncritical tasks can be managed by a different scheduler which does not provide deterministic task response time. The queueing based hierarchical scheduling features proposed by POSIX 1003 or Ada 2005 allow such a differentiated class resource allocation [28, 26, 29, 7, 16] Unfortunately, real time hierarchical schedulers also raise two difficult challenges.. 1) The first challenge is related to the large number of hier-archical schedulers which were proposed. These hierarchical schedulers have complex and different ways to perform communication and synchronization relationships between the schedulers and the tasks [4] . It is also difficult to express scheduler requirements and behaviors in order to combine themself for example [21, 27] . In contrary to the usual schedulers such as Earliest Deadline First or Rate Monotonic, it is difficult to implement into the Cheddar framework a set of hierarchical schedulers satisfying most of system designer needs. In the context of hierarchical schedulers, the approach proposed by Cheddar is to provide a programming language which eases the design and the implementation of hierarchical schedulers.. 2) The second challenge is related to the availability of analytical methods for hierarchical schedulers: there is currently few feasibility tests in the context of real time hierarchical scheduling [1, 12, 30, 10] . A feasibility test is an analytical method which is able to predict before task execution if a given system will meet its task timing requirements. Building feasibility tests is usually a difficult work and it is more complex for hierarchical schedulers. When no feasibility test exists for a given hierarchical scheduler, Cheddar can be used to perform scheduling simulation. In this case, the scheduling simulation tool has to be efficient (low memory footprint and high response time) in order to run large simulations.. The Cheddar language was formerly introduced in [32] . This language made it possible the design of user-defined schedulers with fixed timing and synchronization relationships between tasks and schedulers. A program written with the Cheddar language is organized in sections. A section is a kind of Ada sub-program. The former Cheddar scheduling simulation engine assumed a fixed order for the execution of such sections: this fixed order was modeling the fixed timing/synchronization relationships between tasks and schedulers.. In this article, we propose to extend the Cheddar language and its tools (editor, interpreter and compiler) in order to design hierarchical schedulers with AADL. This new Cheddar language allows the designer to model any synchronization and timing relationships between the tasks and the schedulers. Tasks and schedulers relationships are modeled with timed automata [13, 3] . The abstract semantic of the Cheddar language is modeled with the meta CASE tool Platypus. From this Cheddar language model, Platypus is able to generate Ada packages which implement tools such as Cheddar program compiler or interpreter.. Timed automata are frequently used to express timing and synchronization requirements of real time systems. There is some experiments to model and verify real time schedulers with timed automata [2, 35, 19] . Numerous tools exist (editors, simulators and model-checkers such as UPPAAL [5] or Esterel Studio [6] ) and some standards are also based on such a formal model (eg. UML Statecharts [11] ).. Timed automaton is also the formal model chosen by the SAE AADL standard committee to express AADL behavioral properties in the next release of the AADL standard [15] and first experiments on the verification of AADL specifications with timed automata were presented recently [8] . By extending the Cheddar language with a timed automaton model similar to the one investigated by the SAE AADL committee, the work presented in this article is then a first

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


Framework for research on detection classifiers Detection of patterns in images with classifiers is currently one of the most important research topics in computer vision. Many practical applications such as face detection exist and recent work even suggests that any specialized detectors (e.g. corner-point detectors) can be approximated by very fast detection classifiers.In this paper, we analyze the requirements on tools which are needed when experimenting with detection classifiers and we present a general framework which was created to fulfill these requirements. This framework offers high performance for training, high variability, elegant handling of configuration and it is able to meet all the requirements which arise when experimenting with almost all possible kinds of detection classifiers. The framework offers good testing support, full supporting infrastructure and some useful training algorithms and features. We offer this framework for research and educational purposes and we hope it will allow lower initial investments when experimenting with detection classifiers. Detection of 2D patterns in images has many real-world applications ranging from camera orientation to computer-human interaction. In past years, many purpose specific and application specific detectors were proposed. Many of those classifiers were carefully designed by experienced scientist and engineers to achieve high detection rates and at the same time low computational cost. Examples of such detectors are various corner detectors or other interest point detectors [Mikolajczyk and Schmid 2004, Kadir and Brady 2001] , road sign detectors [Escalera et al. 1997] , and the frontal face detector based on a cascade of boosted classifiers by Viola and Jones [2001] . Some of the detectors (mostly the face detectors) use structure of classifiers which employs a mechanism of attention of focus. Such detectors use simple and fast classifiers to reject the most common negative samples and then they use gradually more complex classifiers to deal with the more difficult and rare negative samples.. When designing detectors of 2D patterns for real-time applications, the demands for high precision and low computational cost and the effort to optimize both of them at the same time, consumes most of the development time. Recently Šochman and Matas [2007] have proposed a unified approach how to emulate behavior of any existing detector by sequential classifier which is optimal in terms of computational complexity for desired detection precision. They argue that, when using their approach, it is possible to skip the process of optimization and finding a fast and still precise enough approximation to the original detector, which can be sometimes very difficult for humans. Instead, the main effort is put into finding a suitable set of features which are then automatically combined into a WaldBoost ensemble. In their work, they report that they managed to automatically create classifiers emulating two interest point detectors, Hessian-Laplace [Mikolajczyk and Schmid 2004] and Kadir-Brady [2001] saliency detector, while achieving 70x faster detection times over the original Kadir-Brady detector. Considering the wide area of application of classifier-based 2D pattern detectors and the amount of research effort invested into this area in recent years, it is surprising that only minimal publicly available support for researchers in this field is available. This fact is in high contrast to classification and pattern recognition in general, where research tools and libraries like LIBSVM, Matlab toolkits, Yet Another Learning Environment and many others are generally known and used.. The lack of specialized tools is most restraining at the beginning of the research, as training and testing of detection classifiers has some special characteristics which result in the fact that it is necessary to invest a lot of effort before any experiments can be conducted. Usually, some set of tools or a framework providing annotation and extraction of samples from images, bootstrapping, handling of special representations of samples (e.g. integral image, frequency image), feature extraction, non-maxima suppression, testing, etc. has to be created in advance. Some care has to be also given to memory and computational efficiency. Otherwise the experiments may be constrained by available time or equipment.. To our knowledge, the only publicly available and useful tool for training of detection classifiers is the implementation of cascade of boosted classifiers with extended set of Haar-like features [Lienhart, and Maydt 2002] which is similar to the original algorithm used by Viola and Jones [2001] in their frontal face detector. This implementation is available as a part of the OpenCV library. Unfortunately its use as a base for research efforts is relatively limited, as it is not well documented, it is not modular enough and it does not provide good support for evaluation of results.. Due to all the facts mentioned before, we have created a general framework which can be used as a base for research in the field of detection classifiers.. The rest of this paper is structured as follows. First, some of the current approaches to training of detection classifiers are described in Section 2. In Section 3, demands for an experimental framework are formulated and analyzed. General design ideas of the created framework are presented and some of its interesting parts are described in more detail in Section 4. In Section 5, some results achieved with current algorithms implemented in the framework are presented together with discussion of learning efficiency. Finally, the paper is concluded and ideas for future work are presented in Section 6.. by Viola and Jones [2001] . This detector combines a cascade of boosted classifiers with Haar-like features and a novel image representation called the integral image to reach low false positive rates and very low average computational cost.. Each stage of the cascade in the Viola and Jones detector (see Figure 1 ) is a single classifier trained by AdaBoost algorithm [Freund and Schapire 1997] which is tuned to reject fair portion of background samples (e.g. true negative rate (TNR) = 0.5) while keeping almost all face samples (e.g. false negative rate (FNR) = 0.001). All the samples which are not rejected are further processed by following stages of the cascade. During training, background samples are bootstrapped after each stage from a large pool of images to keep the size of negative training set constant. This cascade reaches very low average classification time thanks to the fact that the majority of samples classified during scanning of images correspond to background. Also very low false positive rate (FPR) is reached this way. The cascade structure of the detector provides good trade-off between precision of classification and average decision time; however, it still is not enough for real-time applications. Viola and Jones achieved further significant speed-up by using simple weak classifiers which use Haar-like features (see fig 2) . These features can be computed very fast and in constant time for every scale when integral image is used. Figure 2 . The basic Haar-like features which were used by Viola and Jones [2001] in their frontal face detector.. The original approach by Viola and Jones was subsequently extended by many researches who mostly focused either on modifying the cascade structure to make better use of gained information Matas 2004a, Xiao et al. 2003] or on extending the set of Haar-like features [Lienhart and Maydt 2002, Mita et al. 2005] , optimizing the precision-speed trade-off [Šochman and Matas 2005] , on better search in the feature space [Li et al. 2002, Šochman and Matas 2004b] , or on using more discriminative features (e.g. PCA) in the later stages [Zhang et al. 2004] where Haar-like features may not bring much benefit anymore due to the very difficult decision problem.. Approaches to face detection which differ significantly more from the Viola and Jones detector were also proposed. Some of them reach high detection rates, but they usually do not provide realtime performance. Some of such approaches use neural networks [Rowley et al. 1998 ] or support vector machines (SVM) [Rätsch et al. 2004 ].. The area of face detectors based on classification of 2D patterns has been already very well explored and the possible needs of future research can be very well extrapolated from the previous research. On the other hand, the use of detection classifiers for other tasks, such as interest point detection, is a relatively new topic. Fortunately, the ideas from face detectors are in most cases general enough to apply also to detection of other patterns. Evidence for this conclusion can be found in the work of Šochman and Matas [2007] where they use WaldBoost algorithm with Haar-like features to emulate the Hessian-Laplace detector. This approach is the same as they use for face detection [Šochman and Matas 2005] . The only difference when they emulate the Kadir-Brady [2001] detector is that they extend the set of features by energy features. This paper presents a framework which was designed to be used as a base for research on detection classifiers of 2D patterns. This framework offers high-performance in training, high variability, good configurability and it is able to meet all the requirements which arise when experimenting with almost all possible kinds of detection classifiers. At this point, the framework offers good testing support, full supporting infrastructure and some useful training algorithms and features which allow training of classifiers with high precision of detection and low computational cost.. Anyone who plans to participate in research of detection classifiers can find in this paper a basic analysis of the requirements for tools that are needed for conducting experiments in this field. This information should be useful to decide if it is effective to create new tools or it is more effective to search for tools which have been already created. If the later is found to be true, we encourage you to contact us, as the framework which we described in this paper is freely available for research and educational purposes.. At this point, the framework itself is finished and further work will be mostly focused on increasing precision of the trained classifiers. This may be achieved by implementing new algorithms and new features or by integrating libraries like libsmv into the framework.. Currently, data which is suitable for frontal face detection is prepared and ready to use. In the future, we want to extend the experiments to other detection problems such as detection of outof-plane rotated faces or emulation of existing corner point detectors. Currently, the whole basic infrastructure of the framework is implemented as well as many of the variable parts. The available boosting algorithms are AdaBoost and GentleBoost. From the detection classifiers, the framework contains classifier cascade and the WaldBoost algorithm [Šochman and Matas 2005] . Also some weak learners were implemented -e.g. decision trees and histogram weak learners. Haar-like features, LRD and LBP are also available. The framework further provides support for loading of samples from multiple sources and support for testing by scanning images.. The testing procedure which is currently implemented in the framework is able to scan images and use non-maxima suppression which was suggested by Šochman and Matas [2007] . The testing procedure creates receiver operating characteristic (ROC), detection error trade-off curve (DET) and precision-recall curve for multiple stages of the tested classifier. It is also able to plot the dependency of average speed of the classifier on the length of the classifier.. To demonstrate the capabilities of the framework, we have trained a WaldBoost classifier for frontal face detection task. The classifier was trained on 5000 hand-annotated faces which were divided into training and validation sets. Additionally, random affine transformations were applied to the original samples until the sizes of both sets reached 20000 samples. In each iteration of the training algorithm, non-face samples were bootstrapped from a large pool of images without any faces to keep the number of non-face samples in training and validation set at 20000. The final size of the classifier was set to be 1000 and the alpha value which defines the False Negative Rate of the resulting classifier was set to 0.1.. The progress of fraction of area under precision-recall curve on the training and validation set can be seen in Figure 6 . Figure 7 shows the amount of negative samples which reach the individual stages of the classifier.. The classifier was tested on MIT+CMU frontal face dataset. The classifier needed to evaluate on average 5.4 weak hypotheses per window to make a decision. The graph describing speed of the classifier can be seen in Figure 8 . The ROC and the precisionrecall curve which describe the performance of the classifier on the test dataset can be seen in Figure 9 and in Figure 10 . Finally, graphical representation of the detections can be seen in Figure 11 . Figure 10 . The precision-recall curve on the MIT+CMU frontal face dataset.. One of the objectives of the framework was to reach high performance for training of detection classifiers. This objective was reached by optimal use of cache memory during training of weak classifiers, by optimized evaluation of features and by parallelization. We measure the speed of training of weak classifiers as number of features which are evaluated per second during the training (features per second). All the measurements were performed on a blade server with two Intel Xeon E5245 quad core processors running at 2.33GHz. Figure 11 . Visual output of the implemented testing procedure When using Haar-like features with simple weak learners, the framework was able to reach speed 60M features per second while running in a single thread. With LRD, the framework reached speed of 45M features per second. Speeds when running in multiple threads were also measured. For this test, Haar-like features were used with more complex weak classifiers. The results can be found in Figure 11 . It can be seen that the speedup is almost linear and reaches 640 % of the speed of single thread when all 8 threads are used. The speed of bootstrapping was measured to be 3,5M samples per minute for the trained classifier when using single thread.

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