Design and implementation of a framework for creating portable and efficient packet-processing applications It is a common belief that using a virtual machine for portable executions of data-plane packet-processing applications would introduce too many penalties in terms of performance, because of the assumed overhead caused by the presence of a hardware abstraction layer. Even if common sense proves true in the case of general purpose virtual machines, such as the JVM and the CLR, it may be wrong in case of a special-purpose network-oriented virtual machine. This paper describes the architecture of a runtime environment and a compiler infrastructure for the Network Virtual Machine (NetVM), showing that the portability of packetprocessing programs can be achieved without additional penalties even over heterogeneous platforms. Our implementation supports three different target architectures: one with a general purpose processor (Intel x86), one with a multi-core network processor (Cavium Octeon) and one with a systolic-array network processor (Xelerated X11), and shows that the NetVM model (i) is able to abstract such heterogeneous platforms and (ii) enables the exploitation of hardware functionalities provided by the specific architecture; finally, it demonstrates that the performances of NetVM programs compiled into native code are comparable to those obtained using commercial general purpose compilers. In order to manage the ever increasing speeds of today's networks, the deployment of efficient packet-processing applications requires the use of ad-hoc hardware, such as ASICs and Network Processors (NPs). While the formers are based on extremely rigid designs, the latter have the great advantage of being software programmable. Nevertheless the lack of a common standard for both architectures and programming interfaces makes it difficult to deploy portable and efficient applications on different platforms.. With respect to the field of general purpose computers, a solution to a similar problem was the introduction of virtual machines, i.e. an abstraction layer between the user code and the hardware which enables the paradigm "Write once, run everywhere." The Network Virtual Machine (NetVM) [1] [2] aims at applying such an approach in the field of network processors, where performance is a key factor. One of the main objections to this approach was that the introduction of such an additional layer, while enabling portability, would result in a substantial overhead, wasting the benefits of using special purpose and optimized hardware architectures.. In this paper we demonstrate that this claim is not necessarily true in the case of a virtual machine specifically designed for packetprocessing applications, like the NetVM. In fact, NetVM programs can be executed quite efficiently, without any modifications, on three different platforms such as the Intel x86 general purpose architecture, the Cavium Octeon [3] multi-core processor and systolic-based Xelerated X11 [4] network processor.. In order to obtain good performance, we implemented a multitarget optimizing compiler infrastructure which is able to generate native or assembly code depending on the target platform. Optimizations work on two different levels: the higher level is architecture-independent and operates on the code removing redundancies and useless computations, whereas the lower is target-specific and performs the actual mapping between the NetVM model and the target machine. It is also in charge of exploiting the special hardware units available on modern NPs.. Experimental results show that the proposed approach is quite efficient: our compiler often generates code whose performance are better than the ones obtained from hand-written code and compiled with commercial general-purpose compilers. This paper is structured as it follows. Section 2 summarizes the related work, Section 3 gives an overview of the NetVM model and Section 4 outlines its implementation. Section 5 describes the optimizer module, whilst the structure of the Intel x86 and Cavium Octeon back-ends is presented in Section 6. Experimental results are reported in Section 7 and conclusions are drawn in Section 8.. 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, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. EMSOFT'08, October 19-24, 2008 , Atlanta, Georgia, USA. Copyright 2008 ACM 978-1-60558-468-3/08/10...$5.00. This paper presents the design and implementation of an optimizing multi-target compiler and run-time system for the NetVM model.. The aim of this work is to demonstrate that the virtual machine paradigm is applicable to packet-processing applications without affecting their performance, and greatly improves their portability. Our compiler allows the execution of NetIL code on different architectures, without performance penalties compared to handwritten code. We also show that the NetVM model is effective in exploiting the hardware features available on real network processors.. Although we have obtained excellent results, the implementation can still be further improved. A direction for future work is the study of specific medium-level optimizations for packet-processing applications. Another topic that we currently do not take into account is exploiting multiprocessor capabilities of NPs. In fact we can easily map each NetPE on a different core, but in the future we aim to find an automatic mechanism for splitting a generic application on multiple cores. The programmability of network processor architectures is a topic that has been widely discussed in studies. In [5] a C compiler for an industrial network processor was proposed showing that exposing low level details in the language through intrinsics and compiler known functions allows an efficient exploitation of the available hardware features without relying on assembly language. On the other hand [6] [7] [8] [9] present novel domainspecific languages, programming models and compilers to address the difficult task of automatically partitioning packet-processing applications on multi-core based network processors. The proposed solutions are very target-specific because they tend to expose the features available on the target hardware to the programmer.. The solution proposed in [8] is based on a new packet-processing language and a compilation framework for optimizing programs by using profiling information gathered at runtime. The compiler also implements some optimizations that are specific to packetprocessing applications, yet still aims at exploiting the characteristics of a single platform (i.e. Intel IXP 2400).. The Network Virtual Machine (NetVM) [1] [2] instead aims at enabling the portability of packet-processing applications without sacrificing performance. Hence it differs from previous solutions because it provides an abstraction layer based on a dataflow programming model in which hardware is virtualized, with the result of completely hiding the target architecture from the programmer, while still allowing an efficient mapping. In addition, our model, although not directly addressing the problem of automatically partitioning programs on multi-core architectures, is designed to support a variety of heterogeneous platforms and at the same time to enable target specific low-level optimizations. Moreover our work is quite novel in taking into account the massive presence of specific hardware modules in modern NPs, allowing their exploitation but hiding their details from the programmer.

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


Strong reductions in effective randomness We study generalizations of Demuth's Theorem, which states that the image of a Martin-Löf random real under a tt-reduction is either computable or Turing equivalent to a Martin-Löf random real. We show that Demuth's Theorem holds for Schnorr randomness and computable randomness (answering a question of Franklin), but that it cannot be strengthened by replacing the Turing equivalence in the statement of the theorem with wtt-equivalence. We also provide some additional results about the Turing and tt-degrees of reals that are random with respect to some computable measure. The main topic of this paper is a theorem of Oswald Demuth's concerning effective randomness. Demuth's Theorem is often stated as follows. Given a Martin-Löf random real x, every non-computable real y that x tt-computes is in turn Turing equivalent to a Martin-Löf random real z. Demuth's original result (in the paper [Dem88] ) is written using slightly outdated terminology (Martin-Löf random reals are for example called "non-approximable"), and has sometimes been mistranslated in modern parlance. For example, a stronger version has repeatedly appeared in circulated drafts, talks, and even in some published papers, which asserts that one can even require that y is wtt-equivalent to z. This is for example the version given in [Fra08] , where the author further asks:. (a) whether z can further be required to be tt-equivalent to y; and (b) whether Demuth's Theorem also holds for Schnorr randomness.. In attempting to answer question (a), we realized that even the "wtt-version" of Demuth's Theorem was in fact false, as we will show below. We will also answer question (b) positively.. The rest of the paper is organized as follows. In the first half of the paper, we study the generalization of Demuth's Theorem to different notions of effective randomness. First, in Section 2 we provide the necessary background on computable probability measures and their connections to strong reductions, leading to a proof of Demuth's Theorem in Section 3. Then, we show in Section 4 that the analogue of Demuth's Theorem holds for other notions of randomness, namely computable randomness and Schnorr randomness, even though the proof requires some additional effort. In Section 5, we study the "wtt-analogue" of Demuth's Theorem and show that it fails for all notions of randomness considered in the paper. The last section, Section 6, is a general study of Turing degrees of reals that are random with respect to some computable probability measure. For completeness, the proofs of previously known results as well as technical lemmas needed in our discussion are given in a separate appendix.. We assume that the reader is familiar with the basics of computability theory: computable functions, partial computable functions, computably enumerable sets, Turing functionals, Turing degrees, the Turing jump, and so on (see, for instance, [Soa87] ), as well as the basics of effective randomness (otherwise, we refer the reader to [DH10] or [Nie09] ). Let us fix some notation and terminology. We denote by 2 ω the set of infinite binary sequences, also known as Cantor space. We denote the set of finite strings by 2 <ω and the empty string by ∅. Q 2 is the set of dyadic rationals, i.e., multiples of a negative power of 2. Given x ∈ 2 ω and an integer n, x n is the string that consists of the first n bits of x, and x(n) is the (n + 1)st of x (so that x(0) is the first bit of x). If σ is a string, and x is either a string or an infinite sequence, then σ x means that σ is a prefix of x. Given a string σ, the cylinder σ is the set of elements of 2 ω having σ as a prefix. Moreover, given S ⊆ 2 <ω , S is defined to be the set σ∈S σ . An element x ∈ 2 ω will commonly be identified with the real n 2 −x(n)−1 , which belongs to [0, 1], and elements of 2 ω will sometimes be referred to as reals. Note that this correspondence is not one-to-one, but it becomes one-to-one if we remove dyadic rationals. We can define an ordering ≤ on 2 ω in terms of the standard ordering ≤ on [0,1], so that given x, y ∈ 2 ω , x ≤ y if and only if n 2 −x(n)−1 ≤ n 2 −y(n)−1 (where ≤ should not be confused with ). Although Demuth's Theorem at first glance does not appear to involve probability measures on 2 ω (and, in fact, Demuth did not explicitly make use of computable probability measures in the original proof of his theorem), the approach we take here will concern the probability measures induced by strong Turing reductions. The main two types of reductions we will consider are those induced by total Turing functionals (which are also known as tt-functionals) and Turing functionals that are almost total, in a sense we will specify shortly. To this end, in this section we will review the relevant material on (computable) measures and Turing functionals, as well as the various notions of effective randomness considered in this paper.

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


Power domination in block graphs The problem of monitoring an electric power system by placing as few measurement devices in the system as possible is closely related to the well-known domination problem in graphs. In 2002, Haynes et al. considered the graph theoretical representation of this problem as a variation of the domination problem. They defined a set S to be a power dominating set of a graph if every vertex and every edge in the system is monitored by the set S (following a set of rules for power system monitoring). The power domination number p (G) of a graph G is the minimum cardinality of a power dominating set of G. This problem was proved NP-complete even when restricted to bipartite graphs and chordal graphs. In this paper, we present a linear time algorithm for solving the power domination problem in block graphs. As an application of the algorithm, we establish a sharp upper bound for power domination number in block graphs and characterize the extremal graphs. All graphs considered here are simple, i.e., finite, undirected, and loopless. For standard graph theory terminology not given here we refer to [3] . Let Electric power companies need to continually monitor their system's state as defined by a set of variables, for example, the voltage magnitude at loads and the machine phase angle at generators [8] . One method of monitoring these variables is to place phase measurement units (PMUs) at selected locations in the system. For economical considerations, companies seek to minimize the number of PMUs needed to be placed and maintain the ability of monitoring the entire system. Recently, it has been shown that this problem can be viewed theoretically as power domination problem in graphs [7] .. Let G = (V , E) be a graph representing an electric power system, where a vertex represents an electrical node (a substation bus where transmission lines, loads and generators are connected) and an edge represents a transmission line joining two electrical nodes. A PMU measures the state variables of the vertex at which it is placed and its incident edges and their endvertices. These vertices and edges are said to be observed. The other observation rules are as follows [7] : 1. Any vertex that is incident to an observed edge is observed. 2. Any edge joining two observed vertices is observed. 3. If a vertex is incident to a total of k > 1 edges and if k − 1 of these edges are observed, then all k of these edges are observed.. A set S ⊆ V is a dominating set in a graph G = (V , E) if every vertex in V \ S has at least one neighbor in S. The domination number of G, denoted by (G), is the minimum cardinality of a dominating set of G. Considering the power system monitoring problem as a variation of the dominating set problem, we define a set S to be a power dominating set (PDS) if every vertex and every edge in G is observed by S. The power domination number of G, denoted by p (G), is the minimum cardinality of a PDS of G. A dominating set (respectively, PDS) of G with minimum cardinality is called. The concept of power domination was introduced by Haynes et al. [7] . They showed that the power domination problem is NP-complete even when restricted to bipartite graphs and chordal graphs, and provided a linear time algorithm on the power domination problem for trees. The power domination problem is also studied in [2, 4, 6] and elsewhere. Some efficient algorithms for solving domination-related problems on block graphs were given in [5, 10] .. In this paper, we study power domination in block graphs, which is a superclass of trees, and present a linear algorithm for finding a minimum PDS of a block graph. In this paper, we investigate power domination in block graphs, and present a linear color-marking-based algorithm for finding a minimum power dominating set of a block graph. By using this algorithm we obtain a sharp upper bound on the power domination number of the class of block graphs. It would be interesting to study whether our algorithm could be adapted to solve the power domination problem on other class of graphs with tree-like decomposition structure.

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


Performance evaluation of a framework to support path changes in IP-based access networks The increasing use of wireless networks and the popularity of multimedia applications, leads to the need of Quality of Service support in a mobile IP-based environment. In [1], we investigated the reasons for path changes in the access network and we presented a framework to support these path changes regardless their cause and to avoid router inconsistencies. In this paper, the performance of this framework is thoroughly evaluated. To this end, we added the functionality of the framework to our Q-MEHROM handoff scheme [2] . However, the ideas and results presented in this paper are not restricted to this micromobility protocol. The performance with and without the defined functionalities is compared and tested under different network topologies, in terms of received service, packet loss and end-to-end delay. Today, wireless networks evolve towards IP-based infrastructures to allow a seamless integration between wired and wireless technologies. Mobile IP [3] is the best known routing protocol that supports host mobility. Mobile IP is used to support macromobility, as the use of Mobile IP in combination with frequent handoffs suffers from high handoff latency, packet loss and control overhead in the core network. Micromobility protocols, such as Cellular IP, HAWAII and MIPv4 Regional Registration [4] , try to solve these weaknesses. Low latency handoff protocols [5] , are developed to reduce the amount of configuration time in a new subnet * L. Peters is a Research Assistant of the Fund for Scientific. Research -Flanders (F.W.O.-V., Belgium).. 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. by using link layer triggers. Most research in the area of micromobility assumes that the access network has a tree or hierarchical structure.. In a mobile IP-based environment, users want to receive real-time applications with the same QoS (Quality of Service) as in a fixed environment. Current work within the IETF NSIS (Next Steps in Signaling) working group includes the standardizing of an IP signaling protocol with QoS as the first use case [6] . Other research to support QoS in the micromobility environment, resulted in several extensions to RSVP (Resource ReSerVation Protocol) [7] . All these extensions also assume that the structure of the access network is hierarchical and forms a tree topology.. An access network that has to deliver QoS, should be robust against link failures and able to balance the load on its links. Therefore, a meshed topology, instead of the assumed tree topology, is preferred. In our previous work, we developed the MEHROM (Micromobility support with Efficient Handoff and Route Optimization Mechanisms [8] ) per-host handoff scheme. It shows a good performance, irrespective of the topology. This handoff mechanism was also extended to support resource reservations. In case of handoff, Q-MEHROM [2] updates the routing information and allocates the resources for the mobile host simultaneously. Resource reservations along the common part of the old and new path are reused.. In this paper, we consider the reservation of resources for data flows towards mobile hosts in a more general scenario. Not only handoffs, but also link failures or load changes, can be reasons why the setup of a new path is required. We shortly describe the framework, presented in [1] , to support path changes regardless their reason. The performance of the different framework mechanisms is compared and tested under different network topologies. The rest of this paper is structured as follows. Section 2 investigates the causes of path changes in the access network. Section 3 describes the functionality that is required in the access network elements to support these path changes. The evaluation of this framework is presented in Section 4. The final Section 5 contains our concluding remarks. This paper evaluated our framework [1] , developed to support path changes in an IP-based access network regardless the reason of the path change. The operation of our framework was clarified by simulations and the performance was evaluated in terms of received service, packet loss and endto-end delay, for different network topologies.. The simulations showed that the tree topology is the topology that takes most advantage of the switching mechanism to increase the received QoS service and to lower the packet loss and end-to-end delay. However, the tree topology is not able to take advantage of the link failure support mechanism as only a single path exists between the GW and each AR. By the meshed and random topology, a new path can be set up, which lowers the packet loss. The major difference between the latter topologies can be found in the end-to-end delay. In general, the random topology shows a lower endto-end delay as more than one path with minimum number of hops may exist between the GW and a given AR.

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


Scan-Cell Reordering for Minimizing Scan-Shift Power Based on Nonspecified Test Cubes This article presents several scan-cell reordering techniques to reduce the signal transitions during the test mode while preserving the don't-care bits in the test patterns for a later optimization. Combined with a pattern-filling technique, the proposed scan-cell reordering techniques can utilize both high response correlations and pattern correlations to simultaneously minimize scan-out and scan-in transitions. Those scan-shift transitions can be further reduced by selectively using the inverse connections between scan cells. In addition, the trade-off between routing overhead and power consumption can also be controlled by the proposed scan-cell reordering techniques. A series of experiments are conducted to demonstrate the effectiveness of each of the proposed techniques individually. By enhancing circuit's controllability and observability, scan design has been a widely used DFT technique to achieve high fault coverage for a complex circuit [Bushnell et al. 2000] . However, with the scan design, the CircuitUnder-Test (CUT) consumes much more power in its test mode than that in its functional mode Zorian [1993] due to the following reasons. First, when Authors' address: Y.-Z. Wu and M. C.-T. Chao (corresponding author), Department of Electronics Engineering, National Chiao Tung University, Hsinchu, Taiwan; email: mango@faculty.nctu.edu.tw. Permission to make digital or hard copies part or all 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 show this notice on the first page or initial screen of a display along with the full citation. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this work in other works requires prior specific permission and/or a fee. Permissions may be requested from the Publications Dept., ACM, Inc., 2 Penn Plaza, Suite 701, New York, NY 10121-0701 USA, fax +1 (212) 869-0481, or permissions@acm.org. c 2010 ACM 1084 -4309/2010 /11-ART10 $10.00 DOI: 10.1145 /1870109.1870119. http://doi.acm.org/10.1145 using the scan design to shift in test patterns and shift out test responses, a large number of signal transitions may occur along the scan paths, which induce even more signal transitions on the CUT and hence consume higher power. Also, the clock-gating logics, which has been a popular design technique to reduce the power consumption by selectively updating only part of the flip-flops, are forced to turn off during the scan-shift cycles. Therefore, all the flip-flops are updated simultaneously in the test mode, which leads to higher power consumption as well.. This excessive power consumption during the scan-based testing may result in physical damage or reliability degradation to the CUT, and in turn decreases the yield and product lifetime [Girard 2002] . As the number of scan cells keeps on growing in modern designs, this increasing power consumption has become one of the biggest barriers to effective scan-based testing.. A common practice to lower the power consumption during scan-based testing is to reduce the number of scan cell's signal transitions, which can be classified into the following three types: (1) capture transitions, generated by the same scan cell's value difference between the scan-in pattern and the corresponding captured response; (2) scan-out transitions, generated by two adjacent scan cells' value difference between their scan-out response; and (3) scan-in transitions, generated by two adjacent scan cells' value difference between the scan-in patterns. The first transition type is associated with the capture power and the last two types are associated with the scan-shift power.. In order to reduce the capture transitions, specialized ATPG techniques [Chandra et al. 2008; Sankaralingam et al. 2002; Remersaro et al. 2006; Wen et al. 2005] are proposed to generate test-pattern vectors which have a minimal hamming distance with their corresponding test-response vectors. Because the don't-care bits in their test cubes are fully specified for minimizing the capture transitions, the preceding ATPGs preclude the possibility for further test compaction or compression, and hence may result in a larger test set.. Methods are proposed to utilize the don't-care bits to minimize the scanin transitions for a given test set [Mrugalski et al. 2007; Li et al. 2008; Lin et al. 2006; Sankaralingam et al. 2000; Sinanoglu et al. 2003 ]. Sankaralingam et al. [2000] proposed a don't-care-filling technique, named MT-fill, guaranteeing that the scan-in transitions generated by its filled patterns are minimum for the given test set and scan-cell ordering. The methods in Sankaralingam et al. [2000] , Mrugalski et al. [2007] , Lin et al. [2006] reduced the test power as well as the test data volume based on built-in decompression hardware. Sinanoglu et al. [2003] added Xor gates or inverters along the scan paths to minimize the scan-in transitions. Li et al. [2008] proposed a don't-care-filling technique which can simultaneously reduce the scan-in, scan-out, and capture transitions.. Another technique to reduce the scan-shift power is to partition the scan cells into multiple groups and activate only one group at a time during the scan-shift cycles [Bonhomme et al. 2001; Huang et al. 2001; Rosinger et al. 2004; Sankaralingam et al. 2001; Saxena et al. 2001; Whetsel 2000] . It can limit the concurrent transitions in a small portion of the CUT. The partition · 10: 3 methods require special control architectures to the scan designs, such as gated clocks [Bonhomme et al. 2001] , central control unit for each group's clock signal [Rosinger et al. 2004; Whetsel 2000] , or specialized scan cells along with multiphase generator [Huang et al. 2001] . Sankaralingam et al. [2001] further minimize the capture power by only capturing responses for certain selected groups of scan cells. It requires a customized ATPG and discards a significant portion of responses.. Methods in Bonhomme et al. [2002] , Dabholkar et al. [1998] , Sinanoglu et al. [1998] change the order of scan cells along the scan paths to minimize both scan-in and scan-out transitions based on given test patterns and responses. This scan-cell-reordering technique saves the scan-shift power, but sacrifices the opportunity of optimizing the wire length of scan paths during the APR stage [Makar 1998; Hirech et al. 1998 ]. Methods in Bonhomme et al. [2003 Bonhomme et al. [ , 2004 further consider the routing overhead during the reordering process such that the imposed routing overhead can be limited. However, one serious disadvantage in the scan-chain-reordering techniques [Bonhomme et al. 2002 [Bonhomme et al. , 2003 [Bonhomme et al. , 2004 Dabholkar et al. 1998 ] is that the exact test patterns and responses need to be obtained in advance. As the result, no don't-care bits can be utilized for a further reduction to scan-in transitions or test data volume, such as Sankaralingam et al. [2000] , Mrugalski et al. [2007] , Lin et al. [2006] , Sinanoglu et al. [2003] , Li et al. [2008] . Sinanoglu et al. [1998] can reorder the scan cells based on the test set with don't-care bits. However, Sinanoglu et al. [1998] relies on the controllability measures to approximate the response correlation between scan cells, which may not be able to reflect the reality. Also, Sinanoglu et al. [1998] did not consider the impact of any don't-care-filling technique.. In this article, we attempt to develop a scan-cell-reordering scheme which can minimize the scan-out transitions while preserving the don't-care bits in the test cubes for a later optimization of scan-in transitions using MTfill [Sankaralingam et al. 2000] . To achieve this goal, we first need to predict the correlation between the response values before specifying don't-care bits. This response correlation is an index to the possible scan-out transitions between scan cells and can be used as a guidance to the reordering process (Section 4). Second, we consider the impact of scan-cell reordering on the result of MT-fill and simultaneously optimize the scan-in and scan-out transitions (Section 6). Next, we selectively inverse some connections between scan cells such that a low response correlation (or pattern correlation) between two scan cells can be turned into a high correlation, which in turn reduces the probability that scan-shift transitions occur along the scan paths (Section 7). Last, we consider the routing overhead of scan paths during the scan-cell reordering process, and thus the trade-off between scan-shift power and routing overhead can be properly controlled (Section 8). In addition, we propose a pattern reordering scheme to minimize the signal transitions resulted from the value difference between the first bit of a scan-in pattern and the last bit of its previous scan-out response after the scan-cell reordering scheme is applied (Section 5). All the proposed methods are validated through large ISCAS and ITC benchmark circuits. In this article, we first presented a scan-cell reordering technique which can simultaneously reduce scan-shift transitions based on the response correlations and preserve don't-care bits in the test patterns for a later minimization of scan-in transitions using MT-fill (Section 4). Second, we considered both the response correlation and pattern correlations during the cell reordering process to further reduce the scan-in transitions generated by MT-fill (Section 6). Next, we utilized the inverse connection between scan cells to turn a low correlation into a high one and developed a corresponding scan-cell reordering scheme to consider those inverse correlations (Section 7). Last, we incorporated the routing overhead of scan paths into the cost function of our scan-cell reordering and hence the trade-off between scan path's routing overhead and the number of scan-shift transitions can be controlled by a user-specified factor. In addition, a postprocess pattern-reordering scheme was also proposed to minimize the inbetween transitions (Section 5). A series of experiments were conducted to compare the proposed schemes with a previous reordering scheme [Bonhomme et al. 2002] and a commercial tool's reordering scheme [Cadence 2006] . The experimental results demonstrated the effectiveness and efficiency of each of the proposed scan-cell reordering schemes. During the scan-based testing, the total power consumption of the CUT is highly correlated with the total number of signal transitions on the scan cells [Sankaralingam et al. 2000] . In this article, we use the number of signal transitions occurring on scan cells to represent the power of the whole CUT. The proposed scan-cell-reordering scheme focuses on reducing the total scanshift power, that is, reducing the total scan-shift transitions. The capture power is not considered in the proposed scheme since the number of capture transitions generated for a test pattern depends only on the filling of the test pattern. Changing the scan-cell ordering does not change the hamming distance between the test-pattern vector and its corresponding test-response vector.. From the discussions in Section 1, the scan-in transitions can be minimized by properly filling the don't-care bits of a test set once the scan-cell order in the scan paths is given [Sankaralingam et al. 2000] . This reduction could be more significant as the percentage of don't-care bits increases. Therefore, our scan-cell reordering scheme attempts to first minimize the scan-out transition count without specifying the don't-care bits, leaving the don't-care bits for a later minimization of scan-in transition, such as MT-fill [Sankaralingam et al. 2000] . However, before specifying the don't-care bits, the value of some responses cannot be known, implying that no explicit information for estimating the possible number of scan-out transitions can be used during the scan-cell reordering process.. We first use a simple experiment (reported in Table I ) to show that certain pairs of scan cells tend to have the same response value in most cases of the random don't-care filling. Thus, even without knowing the exact test responses, the reordering scheme can still avoid the possible scan-out transitions by connecting those correlated pairs of scan cells next to each other. We first define this tendency between two scan cells as the response correlation, which is the probability that the two scan cells have the same response value by a random fill of don't-care bits. Please note that the similar concept of response correlation has already been used in previous works [Bonhomme et al. 2002; Chen et al. 2003; Dabholkar et al. 1998; Sinanoglu et al. 1998 ], but the method and assumptions for obtaining this response correlation are different from work to work.. In the experiment, we use a commercial tool [Synopsys 2010 ] to generate stuck-at-fault patterns with don't-care bits. By randomly filling the don't-care bits and simulating the corresponding responses for 1-million times, the statistic of the response correlation between any two scan cells can then be collected. Table I lists the range of response correlations (Columns 1 and 4), the number of scan-cell pairs whose sampled response correlation falls in the range (Columns 2 and 5), and its corresponding percentage to the total scan-cell pairs (Columns 3 and 6), for the largest ISCAS benchmark circuit s38584. The don't-care bit percentage of this test set is 78.01%. As the results show, while majority of the scan-cell pairs have a response correlation around 0.5, still 21595 scan-cell pairs (2%) have a response correlation higher than 0.75. Those 21595 scan-cell pairs could form a fair-sized solution space when reordering the 1452 scan cells in s38584. This experimental result also indicates that, even with 78.01% of don't-care bits, the response correlations are not purely random.. The same trend can be observed on other ISCAS and ITC benchmark circuits as well. Table II shows the result of a similar experiment on the largest ITC benchmark circuit, where the don't-care bit percentage of its test set is 89.98% and 1.58% of scan-cell pairs have a response correlation higher than 0.75.

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


Dynamic behaviour of connectionist speech recognition with strong latency constraints This paper describes the use of connectionist techniques in phonetic speech recognition with strong latency constraints. The constraints are imposed by the task of deriving the lip movements of a synthetic face in real time from the speech signal, by feeding the phonetic string into an articulatory synthesiser. Particular attention has been paid to analysing the interaction between the time evolution model learnt by the multi-layer perceptrons and the transition model imposed by the Viterbi decoder, in different latency conditions. Two experiments were conducted in which the time dependencies in the language model (LM) were controlled by a parameter. The results show a strong interaction between the three factors involved, namely the neural network topology, the length of time dependencies in the LM and the decoder latency. This paper describes the use of a hybrid of artificial neural networks/hidden Markov models (ANNs/HMMs) in a speech recognition system with strong latency constraints. The need for such a system arises from the task of classifying speech into a sequence of phonetic/visemic units that can be fed into a rule system to generate synchronised lip movements in a synthetic talking face or avatar (Beskow, 2004) . As the aim is to enhance telephone conversation for hearing-impaired people (Karlsson et al., 2003) , the total latency allowed between incoming speech and facial animation is limited by the turn taking mechanism to less than 200 ms. This includes the latency in capturing the sound and generating and animating the facial movements. The constraints imposed on the recogniser are thus especially demanding if compared to other applications of speech recognition.. In such conditions, and more in general in real-time applications, conventional decoders based on different flavors of the Viterbi algorithm (Viterbi, 1967) , can only be used in an approximate fashion. This is because the need for incremental results requires the best-path solution to be based on partial decisions, with limited look-ahead in time. The difference between the standard Viterbi solution and the approximated solution is often called "truncation error". Truncation error in the Viterbi algorithm has been extensively studied for convolutional codes in the area of speech coding (Kwan and Kallel, 1998; Weathers, 1999) . There, given the relatively simple nature of the problem, error bounds could be found analytically and confirmed empirically.. In speech recognition, a few empirical studies dealing with this problem can be found in the area of broadcast news recognition/transcription (e.g. Imai et al., 2000; Ljolje et al., 2000) . In Ljolje et al. (2000) a system based on incremental hypothesis correction was shown to asymptotically reach the optimal MAP solution. In Robinson et al. (2002) connectionist techniques are employed in the same task. These studies are concerned with large vocabulary word recognition, and have less stringent latency constraints.. The aim of the current study is to analyse the effect of truncation errors at very low latencies (look-ahead < 100 ms) in different set-ups of the language model, while keeping phonetic recognition as the main focus for the application we have in mind. In connectionist speech recognition it is of particular interest to study the interaction between the time evolution model learnt by the time delayed or recurrent neural networks and the transition model imposed by the Markov chain, with varying look-ahead lengths.. The first experiment in this study does this by gradually changing the recognition network from a free loop of phones (short time dependencies) to a loop of words with increasing lengths. In the second experiment the language model (LM) is composed of a scaled mixture of a free loop of phones and a forced alignment topology where the time dependencies are as long as the utterance. The gradual modification of the LM is achieved in this second case by changing the mixing parameter. In addition, a confidence measure particularly suitable for connectionist models (Williams and Renals, 1999 ) is discussed. The reader also is referred to Salvi (2003) for an evaluation of the Synface recogniser in more realistic conditions.. The paper is organised as follows: a formal definition of the problem is given in Section 2, Section 3 introduces the method, Section 4 the data and experimental settings. Results are described in Section 5 and discussed in Section 6. Section 7 concludes the paper. In both the "wordlen" and "alpha" tests, the statistic analysis shows significant differences. A successive Tukey multiple comparison test shows which couples of values of the look-ahead parameter correspond to significant differences in the correct frame rate. The results strongly depend on the MLP for short time dependences in the recognition network (towards the phone loop condition). This dependency fades when the condition is shifted towards the forced alignment case. Figure 14 shows the distribution of the entropy for correct (continuous line) and incorrect (dashed line) classification, and for the networks ANN (left), RNN1 (centre), and RNN2 (right). The vertical dashed-dotted lines indicate the maximum entropy (log N ). In the rightmost plot, the shaded area corresponds to the range chosen in the other two plots, and is used to facilitate the comparison between the two conditions. For the networks trained with [0.1, 0.9] targets (ANN and RNN1) the entropy is concentrated in the high range, as explained in Section 3.5. For RNN2 the entropy range is larger (the network was trained with [0, 1] targets). The interaction of transition model, dynamic probability estimators and lookahead length in the decoding phase of a speech recognition system has been analysed in this paper. The results show how the dynamic information provided by the recurrent multi-layer perceptrons does not always interact in a constructive way with the transition model in Viterbi decoding. With static MLPs, the use of longer look-ahead lengths is not beneficial when the time dependencies in the language model are limited as in the phone loop condition. With recurrent MLPs, the benefit depends on the complexity of the network.. The frame-by-frame entropy proved to be a reasonably accurate confidence measure. This measure is not strongly affected by the use of target values in training other than [0,1]. The three factors considered in the experiments seem to strongly interact in the decoding process. When the language model (LM) is similar to a phone loop, most of the information on the time evolution is provided by the multi-layer perceptron. In this case differences emerge on the latency behaviour of different neural network topologies. The static network (ANN) produces irregular results when the look-ahead length L is varied. The dynamic models (RNN1 and RNN2) show a slight improvement with increasing L, that fades for higher values of L. The look-ahead length for which no further improvement is achieved seems to be lower for RNN2 than for RNN1.. When the LM contains longer time dependencies, all acoustic models benefit (to different extents) of longer look-ahead lengths. This can be explained by noting that. • the Viterbi decoding makes use of time dependent information regardless of its source (transition model or dynamic neural network), • the information provided by the transition model and the dynamic neural network might overlap/conflict, • the look-ahead length needed to take full advantage of the Viterbi decoding is closely related to the length of the time correlations contained in the hybrid model (transition model or dynamic neural network).. Given these remarks, the results obtained here can be interpreted in the following way. The static model ANN, providing no time dependent information, takes advantage of the Viterbi decoding only for long time transition models and long look-ahead. The more complex recurrent perceptron (RNN2) provides information that partly overlaps with the transition model, causing only limited improvements when the look-ahead is increased (especially in the "alpha" test). The simpler recurrent perceptron (RNN1) provides more limited time dependent information and takes more advantage of the Viterbi decoding.. However, more specific tests should be designed to support this interpretation, using, for example, techniques from non-linear dynamics to analyse the dynamical behaviour of the recurrent networks in details. Factors such as the target values during training should also be excluded from the tests. The scoring method used rises also questions on the kind of errors the system is affected by in different conditions. It would be important, for example, to investigate to which extent the errors are due to misclassification of isolated frames or longer sequences, or to misalignment of the segment boundaries. Results obtained with a normal phone loop are reported in Figure 8 as a reference to the performance of the recogniser in the real task. The left plot in the figure shows the average correct frame classification rate over the 4150 test utterances for varying look-ahead length and for the three neural networks (vit-ANN, vit-RNN1 and vit-RNN2). The horizontal lines in the figure indicate the classification rate without Viterbi decoding, i.e. selecting the highest activity output at each frame (frame-by-frame maximum a posteriori). The results are very close to the ones obtained in Salvi (2003) , the differences being due to the way the boundary effects are handled (see Section 3.3), and to the fact that in Salvi (2003) a global score was computed over the whole test material, while here we compute the correct frame classification rate of each utterance and then average the results.. The middle and right plots in Figure 8 show the accuracy and percent of correct words as defined in (Young et al., 2002) . These results are reported in order to compare the three scoring methods, and to mention that none of them are fully satisfying given the application. Accuracy and correct words do not take into account segment boundary alignment in time and were therefore discarded in the following evaluation. Correct frame classification rate, in contrast, does not indicate how stable the result is (number of symbol insertions).. The "wordlen" and "alpha" tests results are summarised in Figure 9 . In the first case (top) the average correct frame rate is plotted as a function of the word length in the "wordlen" test for different values of the look-ahead length and for the three multi-layer perceptrons. In the second case (bottom) the x-axis indicates the α parameter in the "alpha" test. Note that the range of the y-axis in the ANN case is different from the other two.. Longer time dependencies in the language model (LM) and longer look-ahead lengths are beneficial in most conditions, as most of the curves increase monotonically and do not overlap. Exceptions to this are the conditions in which the static model ANN is used in conjunction with either a short time LM or a short look-ahead length. In those cases, more irregular results can be found (see left plots in the Figure) . Examples are the fluctuating results corresponding to different look-ahead lengths when wordlen = 1 or α = 0 (top-left and bottom-left plots) and the non-monotonic variation of the score with respect to the word length and α when the look-ahead length is one frame (top-left and bottom-left plots). The last phenomenon can be found also in the RNN1 case (top-middle plot).. In the following, these results will be analysed in details with statistical means. To evaluate the interaction between the language model, the properties of the probability estimators, and truncation in the Viterbi decoder, three-factor experiments were designed. The factors involved are: the length of time dependencies in the recognition network (language model ), the dynamical properties of the probability estimators and the look-ahead length.

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


Easy

Composition

of

Symbolic

Computation

Software

using

SCSCP:

A

New

Lingua

Franca

for

Symbolic

Computation

We

present

the

results

of

the

first

four

years

of

the

European

research

project

SCIEnce

-Symbolic

Computation

Infrastructure

in

Europe

which

aims

to

provide

key

infrastructure

for

symbolic

computation

research.

A

primary

outcome

of

the

project

is

that

we

have

developed

a

new

way

of

combining

computer

algebra

systems

using

the

Symbolic

Computation

Software

Composability

Protocol

(SCSCP),

in

which

both

protocol

messages

and

data

are

encoded

in

the

OpenMath

format.

We

describe

the

SCSCP

middleware

and

APIs,

outline

implementations

for

various

Computer

Algebra

Systems

(CAS),

and

show

how

SCSCPcompliant

components

may

be

combined

to

solve

scientific

problems

that

cannot

be

solved

within

a

single

CAS,

or

may

be

organised

into

a

system

for

distributed

parallel

computations.

Additionally,

we

present

several

domain-specific

parallel

skeletons

that

capture

commonly

used

symbolic

computations.

To

ease

use

and

to

maximise

inter-operability,

these

skeletons

themselves

are

provided

as

SCSCP

services

and

take

SCSCP

services

as

arguments.

A

key

requirement

in

symbolic

computation

is

to

efficiently

combine

computer

algebra

systems

(CAS)

in

order

to

collectively

solve

complex

problems

that

cannot

be

easily

addressed

by

any

single

system

on

its

own.

In

addition,

there

is

often

a

requirement

to

have

a

CAS

as

a

back-end

for

mathematical

databases

and

web/grid/cloud

services,

or

to

combine

multiple

instances

of

the

same

or

different

CAS

as

part

of

a

parallel

computation..

There

are

many

possible

combinations

of

CAS

that

are

both

useful

and

valuable.

Examples

include:

GAP

and

Maple

in

CHEVIE

for

handling

generic

character

tables

(Geck

et

al.,

Maple

and

the

PVS

theorem

prover

to

obtain

more

reliable

results

(Adams

et

al.,

GAP

and

nauty

in

GRAPE

for

fast

graph

automorphisms

(Soicher,

and

GAP

as

a

service

for

the

ECLiPSe

constraint

programming

system

for

symmetrybreaking

in

search

(Gent

et

al.,

In

all

these

cases,

interfacing

to

a

CAS

that

already

possesses

the

required

functionality

is

far

less

work

than

re-implementing

the

functionality

in

the

"home"

system..

Even

within

a

single

CAS,

users

may

need

to

combine

local

and

remote

instances

of

the

CAS

for

a

number

of

reasons,

including:

accessing

remote

system

features

that

are

not

supported

in

the

local

operating

system;

accessing

large

(and

changing)

databases;

remote

access

to

the

latest

development

version

of

the

CAS

or

to

a

configuration

at

the

user's

home

institution;

licensing

restrictions

permitting

only

online

services,

etc.

A

common

quick

solution

is

to

cut-and-paste

between

telnet

sessions

and

web

browsers.

It

would,

however,

be

both

more

efficient

and

more

flexible

to

combine

local

and

remote

computations

so

that

remotely

obtained

results

can

be

plugged

immediately

into

the

locally

running

CAS..

CAS

authors

have

attempted

to

address

these

user

needs

in

various

ways.

For

example,

a

CAS

may

write

input

files

for

another

program

and

invoke

it;

the

other

program

will

then

write

input

to

the

CAS

in

a

file

and

exit;

and

finally,

the

CAS

will

read

this

input

and

return

a

result.

This

works,

but

has

fairly

serious

limitations.

A

better

setup

might

allow

the

CAS

to

interact

with

other

programs

while

they

run

and

provide

a

separate

interface

to

each

possible

external

system.

The

SAGE

system

(Stein

et

al.,

is

essentially

built

around

this

approach.

However,

achieving

this

is

a

major

programming

challenge,

and

an

interface

will

break

as

soon

as

the

other

system

changes

its

I/O

format,

for

example..

Furthermore,

individual

CPU

cores

have

essentially

stopped

increasing

in

power,

but

multicore

systems

are

becoming

more

numerous.

A

typical

workstation

now

has

to

cores,

and

this

is

only

the

beginning

of

the

multicore/manycore

revolution

(Held

et

al.,

If

we

want

to

solve

larger

problems

in

future,

it

is

essential

for

us

to

exploit

multiple

processors

in

a

way

that

gives

good

parallelism

for

minimal

programmer/user

effort..

The

EU

Framework

SCIEnce

project

"SCIEnce

-Symbolic

Computation

Infrastructure

in

Europe"

is

a

major

project

that

brings

together

CAS

developers

and

experts

in

computational

algebra,

OpenMath,

and

parallel

computations.

It

aims

to

address

the

problems

outlined

above

by

designing

a

common

standard

interface

that

may

be

used

for

combining

computer

algebra

systems

(and

any

other

compatible

software).

Our

vision

is

an

easy,

robust

and

reliable

way

for

users

to

create

and

consume

services

implemented

in

any

compatible

system,

ranging

from

generic

services

(e.g.

evaluation

of

a

string

or

an

OpenMath

object)

to

specialised

ones

(e.g.

a

lookup

in

a

specific

database;

or

executing

a

certain

procedure).

We

have

developed

a

simple

lightweight

XML-based

remote

procedure

call

protocol

called

SCSCP

(Symbolic

Computation

Software

Composability

Protocol)

in

which

both

data

and

instructions

are

represented

as

OpenMath

objects.

SCSCP

is

now

implemented

in

several

computer

algebra

systems

(see

Section

for

an

overview)

and

has

APIs

that

make

it

easy

to

add

SCSCP

interfaces

to

more

systems

and

to

develop

SCSCP

middleware

that

can

translate

SCSCP

services

to

a

variety

of

possible

clients

(see

Figure

arrows

correspond

to

the

SCSCP

communication).

The

full

specification

of

SC-SCP

can

be

found

online

at

Another

important

outcome

of

the

project

is

the

development

of

middleware

for

parallel

computations,

SymGrid-Par,

which

is

capable

of

orchestrating

SCSCP-compliant

systems

into

a

heterogeneous

system

for

distributed

parallel

computations

(Section

This

paper

extends

our

earlier

ISSAC

paper

One

of

its

major

enhancements

is

the

presentation

of

the

SCSCP

API

for

Haskell

and

CASH

(the

Computer

Algebra

SHell)

as

an

example

of

an

application

that

can

be

built

on

this

API.

The

main

contributions

of

this

paper

are

as

follows:.

We

show

how

the

SCSCP

interface

can

be

used

to

connect

different

computer

algebra

systems.

Specifically,

we

demonstrate

this

approach

using

several

different

examples

that

collectively

show

the

flexibility

of

the

SCSCP

approach

and

demonstrate

some

SCSCP-specific

features

and

benefits.

We

introduce

CASH,

the

Computer

Algebra

SHell,

and

show

how

it

can

be

used

to

integrate

Haskell

applications

and

a

CAS,

giving

examples

that

show

how

CASH

can

be

used

to

call

a

CAS

from

We

show

how

to

use

small-scale

parallelism

from

the

CASH

command-line

to

prototype

parallel

code.

We

show

how

to

define

domain-specific,

large-scale

parallel

skeletons

for

computer

algebra

in

the

Eden

dialect

of

Haskell.

In

particular,

we

describe

new

multiple

homomorphic

images

and

orbit

skeletons.

We

expose

these

parallel

skeletons

as

SymGrid-Par

services,

that

can

be

called

directly

both

from

the

CASH

shell

and

from

within

the

shell

of

an

SCSCP-compliant

computer

algebra

client..

We

give

an

overview

of

these

tools

below.

First,

we

briefly

characterise

the

underpinning

OpenMath

data

encoding

and

the

SCSCP

protocol

(Section

Then

we

outline

SCSCP

interfaces

in

two

different

systems,

one

open

source

and

one

commercial,

and

provide

references

for

existing

implementations

in

other

systems

(Section

After

that

we

describe

several

examples

that

demonstrate

the

flexibility

of

the

SCSCP

approach

and

some

SCSCP

specific

features

and

benefits

(Section

In

Section

we

introduce

CASH,

the

Computer

Algebra

SHell:

an

interactive

API

for

calling

computer

algebra

systems

from

Haskell,

and

vice-versa.

We

introduce

several

SCSCP-compliant

tools

for

parallel

computations

in

various

environments

(Section

and

present

domain-specific,

parallel

skeletons,

building

on

the

SCSCP

interface

(Section

before

concluding

(Section

We

have

presented

a

framework

for

combining

computer

algebra

systems

using

a

newly-developed

remote

procedure

call

protocol

SCSCP

(Symbolic

Computation

Software

Composability

Protocol).

By

defining

common

data

and

task

interfaces

for

all

systems,

we

allow

complex

computations

to

be

constructed

by

orchestrating

heterogeneous

distributed

components

into

a

single

symbolic

application.

Any

system

supporting

SC-SCP

can

immediately

connect

to

all

other

SCSCP-compliant

systems,

thus

avoiding

the

need

for

special

cases

and

minimizing

wasted

effort.

Furthermore,

if

some

CAS

changes

its

internal

format

then

it

only

needs

to

update

one

interface,

namely

that

to

the

SCSCP

protocol

(instead

of

as

many

interfaces

as

there

are

programs

it

connects

to).

This

change

can

be

completely

transparent

to

the

other

CAS

that

connects

to

it..

We

have

demonstrated

several

examples

of

setting

up

communication

between

different

CAS,

thus

exhibiting

SCSCP

benefits

and

features

including

its

flexible

design,

the

ability

to

solve

problems

that

cannot

be

solved

in

the

"home"

system,

and

the

possibility

of

speeding

up

computations

by

sending

requests

to

a

faster

CAS.

We

have

shown

how

sequential

systems

can

be

combined

into

heterogeneous

parallel

systems

that

can

deliver

good

parallel

performance

using

the

SymGrid-Par

framework.

We

have

presented

several

domain-specific,

parallel

skeletons,

capturing

frequently

used

symbolic

computations.

The

parallel

implementations

of

these

skeletons

are

provided

as

SCSCP

services

by

the

SymGrid-Par

framework,

and

therefore

easily

accessible

from

other

CASs..

SCSCP

uses

an

OpenMath

representation

to

encode

both

the

transmitted

data

and

the

protocol

instructions,

and

may

be

supported

not

only

by

a

CAS,

but

by

any

other

software

as

well.

To

achieve

this,

it

is

necessary

only

to

support

SCSCP

messages

according

to

the

protocol

specification,

while

the

support

of

particular

OpenMath

constructions

and

objects

is

dictated

only

by

the

nature

of

the

application.

This

support

may

consequently

be

limited

to

a

few

basic

OpenMath

data

types

and

a

small

set

of

application-relevant

symbols.

For

example,

a

Java

applet

to

display

the

lattice

of

subgroups

of

a

group

may

be

able

to

draw

diagrams

for

partially

ordered

sets

without

any

support

for

the

grouptheoretical

OpenMath

CDs.

Other

possible

applications

may

include

a

web

or

SCSCP

interface

to

a

mathematical

database,

or,

as

an

extreme

proof-of-concept,

even

a

server

providing

access

to

a

computer

algebra

system

through

an

Internet

Relay

Chat

bot..

Additionally,

SCSCP-compliant

middleware

may

look

inside

an

SCSCP

message,

extracting

all

necessary

technical

information

from

its

outer

levels

and

taking

the

embedded

OpenMath

objects

as

a

"black

box"..

By

interfacing

SymGrid-Par

to

the

CASH

front-end

client,

we

have

allowed

computer

algebra

to

be

easily

combined

with

functional

programming.

This

brings

cutting

edge

programming

language

technology

to

the

CA

field,

without

the

laborious

process

of

integrating

this

technology

into

existing

CASs.

In

particular,

we

have

demonstrated

the

use

of

overloading

and

higher-order

functions

in

Haskell

to

simplify

the

development

of

CA

code.

We

have

used

this

interface

to

exploit

extensions

of

Haskell,

supporting

both

smallscale

and

large-scale

parallelism.

The

examples

demonstrate

the

prototyping

of

parallel

code

in

an

interactive

shell

using

GpH

(Trinder

et

al.,

as

well

as

the

development

of

larger

parallel

applications,

using

Eden

(Loogen

et

al.,

and

a

skeletons

approach..

A

fruitful

area

of

collaboration

between

the

symbolic

computation

and

functional

programming

communities

would

be

the

integration

of

the

standardised

mathematical

objects

and

operations,

described

in

this

paper,

into

a

general

purpose

programming

language.

On

the

Haskell

side,

there

is

active

effort

involved

in

developing

such

a

class

hierarchy

in

the

form

of

a

"Numeric

Prelude"

for

Haskell

(Thurston

et

al.,

However,

this

covers

only

a

small

fraction

of

the

functionality

provided

by

state-of-the-art

CA

systems.

Another

interesting

direction

of

future

work

would

be

to

use

Haskell's

type

classes

and

sophisticated

type

system

in

order

to

provide

enhanced

type

safety.

Encoding

advanced

properties,

such

as

the

sizes

of

data

structures,

is

a

particularly

active

research

area

in

the

Haskell

community

and

would

be

of

immediate

benefit

to

the

CA

community..

We

have

already

seen

examples

of

SCSCP-compliant

software

that

were

created

outside

the

SCIEnce

project

and

we

hope

that

we

will

have

more

of

them

in

the

future.

We

anticipate

that

existing

and

emerging

SCSCP

APIs

will

be

useful

here

as

templates

for

new

SCSCP

implementations.

In

conclusion,

SCSCP

is

a

powerful

and

flexible

framework

for

combining

CAS,

and

we

encourage

developers

to

cooperate

with

us

in

adding

SCSCP

support

to

their

software.

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