System-level co-simulation of integrated avionics using polychrony The design of embedded systems from multiple views and heterogeneous models is ubiquitous in avionics as, in particular, different high-level modeling standards are adopted for specifying the structure, hardware and software components of a system. The system-level simulation of such composite models is necessary but difficult task, allowing to validate global design choices as early as possible in the system design flow. This paper presents an approach to the issue of composing, integrating and simulating heterogeneous models in a system co-design flow. First, the functional behavior of an application is modeled with synchronous data-flow and statechart diagrams using Simulink/Gene-Auto. The system architecture is modeled in the AADL standard. These highlevel, synchronous and asynchronous, models are then translated into a common model, based on a polychronous model of computation, allowing for a Globally Asynchronous Locally Synchronous (GALS) interpretation of the composed models. This translation is implemented as an automatic model transformation within Polychrony, a toolkit for embedded systems design. Simulation, including profiling and value change dump demonstration, has been carried out based on the common model within Polychrony. An avionic case study, consisting of a simplified doors and slides control * The current work has been partially supported by the European project CESAR (Cost-efficient methods and processes for safety relevant embedded systems). The hardware/software co-design of embedded systems is a complex engineering activity which needs to meet sometimes contradictory objectives of performance and cost. Many improvements to traditional design methodologies have been adopted to satisfy such requirements, including parallel development of hardware and software, high-level modeling and validation, component-based design, and so on.. Parallel development teams allow for an effective development using domain-specific technologies and focused expertise. Parallelism, however, leads to the heterogeneity of models and of components. Meanwhile, the increasing complexity of embedded systems encourages to take advantages of high-level modeling framework such as, for instance, UML MARTE, SystemC, Simulink, AADL. These languages help to reduce complexity and development time by raising levels of abstraction.. These improvements lead to an integration issue, as one then needs to simulate, evaluate and validate the architecture of a system whose components are described with high-level domain-specific modeling diagrams, using heterogeneous models of computation and communication. This issue has been widely studied in the Ptolemy project [12] , MoBIES project [9] , SML-Sys modeling frameworks [17] , ForSyDe modeling frameworks [19] , etc. In these projects, heterogeneous models or components, based on different models of computation, are integrated into a system either through agent-based methods or through translating them into common formalisms.. Inspired by these projects, we propose a system-level co-design approach, in the framework of European CESAR project [22] , dedicated to the design of avionic applications. Our approach supports high-level heterogeneous modeling, semantic-preserving transformation and integration of models, simulation and performance evaluation of system-level architectures. In this approach, Polychrony [16, 14] is adopted as a common development platform to bridge heterogeneity between modeling and simulation. A complex system is first partitioned into functional behavior and hardware architecture components. The architectural part maybe common across several different projects or subsystems of a larger system. In our approach, the system behavior is modeled in the synchronous model of computation of Simulink/GeneAuto [6] [23], whereas the architecture is modeled in the asynchronous model of computation of AADL [21] . These high-level models are transformed into Signal programs [10] via SME models [14] (Signal Meta under Eclipse). Signal supports a multi-clocked synchronous model of computation allowing for the description of locally synchronous and globally asynchronous systems such as those considered here. Finally, C or Java code is generated from Signal programs. Simulation can then be carried out for the purpose of performance evaluation and VCD (Value Change Dump) based demonstration [7] . The advantages of our approach is that high-level models and transformations are developed in parallel to reduce development time, hence cost; Polychrony and its associated tools allow a fast and effective simulation, evaluation and validation of system-level architectures, with no need for additional translations into other formalisms.. The case study of a simplified model of the A350 doors management system is proposed by Airbus in the frame of CESAR project. This case study is used in the present paper to illustrate the effectiveness of our approach to system-level simulation. In this paper, we presented an approach to address highlevel and heterogeneous model based system co-design in the domain of avionics. Functional behavior, expressed with the synchronized dataflow model, is modeled in Simulink/GeneAuto, whereas distributed hardware architecture is modeled in AADL. SME/Polychrony, based on the polychronous model of computation, is adopted as a common formalism to bridge between two heterogeneous models. Model transformations from Simulink to SME, and from AADL to SME have been developed to support our work. Simulation and timing analysis is then enabled in the framework of Polychrony. An avionic case study, called simplified doors and slides control system is briefly presented in this paper to demonstrate our approach. Our approach enables an early phase simulation via profiling in consideration of timing constraints and also a simulation demonstration by VCD viewers. The perspective of our work includes connections to other architecture exploration and timing analysis tools, such as Syndex [5] and RT-Builder [4] . In addition, integration of automatic test case generation and real-time scheduling tools are also expected. Due to the heterogeneous nature of embedded systems, modeling and integration of heterogeneous subsystems has always been an important issue. It has been widely studied in the Ptolemy project [12] , MoBIES project [9] , SML-Sys modeling frameworks [17] , ForSyDe modeling frameworks [19] , etc. In these projects, certain common formalisms or agent-based methods are proposed to model or express heterogeneous components, which generally rely on different models of computation. We follow the similar approach: SME/Polychrony is adopted as a common formalism, which is used to express heterogeneous models, i.e., Simulink and AADL models. An advantage of our approach is that formal verification, simulation and analysis can be directly carried out on this common formalism, without supplementary translations into other formalisms.. Validation of AADL models via formal methods has been studied in [18] and [11] , where AADL specifications are associated with formal semantics so that formal verification is performed. [18] proposes VTS (Visual Timed Scenarios) as a graphical language for the specification of AADL behavioral properties. Then a translation from VTS to TPN (Time Petri Nets) is presented. Model-checking of properties expressed in VTS is enabled using TPN-based tools. [11] studies a general methodology and an associated tool for translating AADL and behavior annex specification into the BIP language. This translation allows simulation of AADL models, as well as application of formal verification techniques developed for BIP. Two kinds of verification have been applied on generated BIP model: deadlock detection by using the tool Aldebaran, and verification of thread deadlines and components synchronization by using BIP observers. In our work, we lay emphasis on the overall system integration of heterogeneous models and fast performance-related simulations.

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


Inverse problem for wave propagation in a perturbed layered half-space This paper is concerned with the inverse medium scattering problem in a perturbed, layered, half-space, which is a problem related to the seismologial investigation of inclusions inside the earth's crust. A wave penetrable object is located in a layer where the refraction index is different from the other part of the half-space. Wave propagation in such a layered half-space is different from that in a homogeneous half-space. In a layered half-space, a scattered wave consists of a free wave and a guided wave. In many cases, only the free-wave far-field or only the guided-wave far-field can be measured.We establish mathematical formulas for relations between the object, the incident wave and the scattered wave. In the ideal condition where exact data are given, we prove the uniqueness of the inverse problem. A numerical example is presented for the reconstruction of a penetrable object from simulated noise data. In this paper, we study the inverse medium scattering problem in a perturbed layered half-space. A wave penetrable object is located in a layer where the refraction index is different from the other part of the half-space.. Let R 2 + = {x ∈ R 2 | x 2 ≥ 0}, where x = (x 1 , x 2 ). n(x) is defined on R 2 + with the following properties: Let n 0 (x 2 ) = n 0 , for 0 < x 2 < h, 1, for h < x 2 < ∞, (. where n 0 > 1 is a constant. We assume that the inhomogeneity is contained in a bounded domain Ω ∈ R 2 h = {x ∈ R 2 | 0 < x 2 < h} with a C 2 boundary having an outward-pointing normal vector ν.. n(x) = n 0 (x 2 ), for x ∈ Ω .. (1.2). We consider the following problem: given a point source or a plane, incident wave u i satisfying ∂ν (x 1 , x 2 ) and u − (x 1 , x 2 ) be the limits of ∂u ∂ν (x 1 , x 2 ) and u (x 1 , x 2 ) as (x 1 , x 2 ) approaches ∂Ω from the interior of Ω , and let ∂u + ∂ν (x 1 , x 2 ) and u + (x 1 , x 2 ) be the limits of ∂u ∂ν (x 1 , x 2 ) and u (x 1 , x 2 ) as (x 1 , x 2 ) approaches ∂Ω from the exterior of Ω , respectively. We assume, for some constants ρ 0 and ρ, that u satisfies interface conditions. (1.6) Moreover, u s also satisfies the out-going radiation condition; that is, no wave is coming in from infinity except the prescribed incident wave plane wave. Here, =. , u i , u s and u are the incident, scattered and total field of the time harmonic waves.. This setting has considerable significance in the seismological investigation of geological objects that are located in the earth's crust, particularly volcanic magma chambers. In this case, the refraction index is normalized to 1 within the earth's mantle, while it is n 0 within the crust, where it is known to be significantly different, mainly due to the lower density of the crust material. The refraction index of the mantle material inside the magma chamber is close to but different from that of the mantle itself.. Until today, only the depth of the volcanic magma chambers is roughly known, but no information is available concerning the size, shape and exact location. Estimates range from between 1 and 2 km and about 30 km for the depth and between 0.1 and 0.2 km and about 5 km for the diameter. There is even the possiblity of multiple interconnected chambers. For detailed information, see [1, [3] [4] [5] [6] .. On the other hand, there is a rich natural source of incoming waves due to micro-earthquakes occuring permanently beneath active volcanoes and in the vicinity of magma chambers. The strength and location of those earthquakes can be determined quite accurately, which defines a dense field of point sources surrounding the chamber at various distances.. The methodology developed in this paper applied to the seismological data available should provide a very significant increase in information on volcanic magma chambers compared with what is known at present. It might even be possible to monitor processes occuring within the chamber in this manner, such as the intrution of fresh magma rising from the mantle. Knowledge of this kind may then contribute to more accurate predicitons of volcanic eruptions.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Expressing Adaptation Strategies Using Adaptation Patterns Abstract-Today, there is a real challenge to enable personalized access to information. Several systems have been proposed to address this challenge including Adaptive Hypermedia Systems (AHSs). However, the specification of adaptation strategies remains a difficult task for creators of such systems. In this paper, we consider the problem of the definition of adaptation strategies at a high level. We present two main contributions: a typology of elementary adaptation patterns for the adaptive navigation; and a process to generate adaptation strategies based on the use and the semiautomatic combination of patterns. We also describe how the generated adaptation strategies can be integrated into existing AHSs. A prototype has been implemented and an experiment in the e-learning domain has been conducted with a group of volunteers. This experiment shows that our pattern-based approach for defining adaptation strategies is more suitable than those based on "traditional" AH languages. T HE concept of Adaptive Hypermedia Systems (AHSs) has existed for years now [19] , and it has amply proved its utility particularly in education [4] , [23] , where students have access to personalized resources according to their knowledge, preferences, and goals. However, until today, only few AHs have been developed, this is mainly due to the difficulty of their authoring process [28] .. In fact, authors have to define a domain model structuring available resources, a user model describing user characteristics, and an adaptation model in a format understood by the used adaptation engine [7] . In this paper, we focus particularly on the authoring process of the adaptation model, which is most often the less intuitive part to be authored in an AH by nontechnical persons.. Indeed, authors have to specify an adaptation model, in which they describe resources to propose for users having distinct characteristics and different knowledge in a personalized manner, in order to reach their specific goals. This is done through the definition of multiple adaptation strategies. By an adaptation strategy, we mean that an author specifies which resources have to be proposed and how they will be proposed to a set of users who share the same characteristics. Thereby, authors of an AH face numerous challenges when defining their adaptation strategies. The first challenge concerns the expression of adaptation strategies. The second challenge concerns the reuse of adaptation strategies from one system to another one, and the expression of adaptation strategies independently of any AHS. To do so, a new paradigm has been proposed: "write once, use many" [26] . This paradigm endorses expressing adaptation at a high level, independently of all AHSs and then translating this adaptation into a particular AHS. The third challenge concerns the granularity in writing adaptation strategies. Its target is to avoid writing the common parts of adaptation strategies several times.. Multiple solutions have been proposed [6] , [8] , [12] , [28] , [27] in order to meet these challenges. In [6] , [8] , they propose to make the expression of adaptation easier, but they were related to a particular AHS and failed to answer the second and the third challenges. For example, the author graph tool for AHA! [8] uses visualization to support authors and works only for AHA!. However, [12] , [28] , [27] are concerned with the expression of adaptation using constructors and generic adaptation language (GAL), independent of any adaptation engine. These works fail to answer the third challenge, because till today, an adaptation strategy has been considered as a whole block and cannot be easily reused.. This paper addresses these three challenges. It concentrates on the ease of defining adaptation strategies at a fine granularity, and on the facility of reusing existing adaptation strategies. In a first time, we focus only on the expression of adaptation strategy for adaptive navigation, where users are forced to navigate among the proposed navigation paths. This can be by imposing a particular order or by recommending resources [19] .. We perceive an adaptation strategy as a combination of elementary parts. Each part corresponds to an elementary adaptation and is bound to a user characteristic. A part can belong to different complex adaptation strategies depending on user characteristics. Our work takes up this idea. The notion of elementary adaptation patterns that we propose is an abstraction of such elementary parts. Elementary adaptation patterns are independent from any application domain, but limited in a first time to express adaptive navigation. We propose a typology for the elementary adaptation patterns and a semiautomatic process to combine them (the most difficult part is done automatically).. The paper is organized as follows: it presents in Section 2 related work on the expression of adaptation, and demonstrates the intuition of our work in Section 3, with an example. Section 4 reviews the main aspects of our proposal. Section 5 presents the description of elementary adaptation patterns and their organization in a typology, and Section 6 describes how elementary adaptation patterns can be used to define adaptation strategies. In Section 7, we discuss how the generated adaptation strategies can be integrated on top of existing AHSs. Finally, we conclude the paper in Section 8. We have discussed here solutions helping authors to find what adaptation they can propose and how they can express it. However, till now, there have been no works concerning building complex adaptation strategies, independent of any system by combining simple adaptations. In this paper, we focus on this specific point. Adaptation strategies must be defined at a fine granularity. Our aim is thus to help authors define their own adaptations, independently of any adaptation engine, at a higher level and in an easy manner. In the next section, we introduce a use case giving the intuition of our contribution. This scenario is subsequently used in the paper. This paper proposes the EAP framework, in which adaptation strategies are described at a finer granularity than what is proposed by existing languages. This is obtained by the definition of 22 elementary adaptation patterns [30] to express the adaptive navigation, and which are organized in a typology. The elementary adaptation patterns are based, on the one hand, on a criterion to select resources and, on the other hand, on a criterion to organize the selected resources. Thereby, we have defined a set of criteria to select resources and to organize selected resources.. Furthermore, the elementary adaptation patterns are independent from the domain model. They can be instantiated on a specific application domain in order to define elementary adaptations. The defined elementary adaptations are associated with user characteristics and combined to make whole adaptation strategies. One of the major benefits of the framework that we propose is the automation of a large and complex part of the process of generating complex adaptation strategies.. The generated adaptation strategies are expressed at a high level and independent of any adaptation engine. In order to be executed, we have described a first possible way using the GLAM adaptation engine. Furthermore, we have conducted experiments that showed the simplicity of our EAP framework rather than a rule-based language (in our case, GLAM).. Our future work will be devoted to integrating our framework on other AHSs. We will study how to automatically translate generated adaptation strategies (using the EAP framework) to other generic adaptation languages like LAG, and GAL. It would also be interesting to do a scale-up test in order to detect the combinations most frequently used by authors. These adaptations could be directly recommended to them. Furthermore, it would be useful to extend our elementary adaptation patterns in order to be able to express adaptive content and adaptive presentation. Finally, our solution exploits user and domain models, which may evolve over time. Consequently, as a future work, we plan to consider the evolution of models, including how to evolve adaptation strategies defined using elementary adaptation patterns when domain or user models change. Most often, during the authoring process of adaptation on domain and user models, authors ask themselves two questions [2] : what kind of adaptation they can provide for users? and how to produce the desired adaptation? The two questions are answered in that order. For deciding what kind of adaptation they can provide, authors may refer to existing typologies on adaptation (cf. Section 2.1), while for producing adaptation, they consider what are the most appropriate adaptation engines and the languages understood by each of them (cf. Section 2.2).. On the other hand, as there are more and more resources available on the web, recent works enable authors not only to define adaptation on their sets of resources but also on those available on the web. So, we present works about integrating adaptive technologies on open corpus (cf. Section 2.3).

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


Multicore-enabling the MPJ express messaging library With the transition to multicore processors almost complete, the parallel processing community is seeking efficient ways to port legacy message passing applications on shared memory and multicore processors. MPJ Express is our reference implementation of Message Passing Interface (MPI)-like bindings for the Java language. Starting with the current release, the MPJ Express software can be configured in two modes: the multicore and the cluster mode. In the multicore mode, parallel Java applications execute on shared memory or multicore processors. In the cluster mode, Java applications parallelized using MPJ Express can be executed on distributed memory platforms like compute clusters and clouds. The multicore device has been implemented using Java threads in order to satisfy two main design goals of portability and performance. We also discuss the challenges of integrating the multicore device in the MPJ Express software. This turned out to be a challenging task because the parallel application executes in a single JVM in the multicore mode. On the contrary in the cluster mode, the parallel user application executes in multiple JVMs. Due to these inherent architectural differences between the two modes, the MPJ Express runtime is modified to ensure correct semantics of the parallel program. Towards the end, we compare performance of MPJ Express (multicore mode) with other C and Java message passing libraries-including mpiJava, MPJ/Ibis, MPICH2, MPJ Express (cluster mode)-on shared memory and multicore processors. We found out that MPJ Express performs signicantly better in the multicore mode than in the cluster mode. Not only this but the MPJ Express software also performs better in comparison to other Java messaging libraries including mpiJava and MPJ/Ibis when used in the multicore mode on shared memory or multicore processors. We also demonstrate effectiveness of the MPJ Express multicore device in Gadget-2, which is a massively parallel astrophysics N-body siimulation code. * Portions of this work were previously reported in the The computer hardware and software industry has witnessed a significant change [17] with single power-hungry processing cores making way for multiple energy-efficient processing cores-better known as multicore processors. As a consequence of this sea change, the software programmers cannot rely on processor vendors to improve performance of their applications. Instead these programmers must explicitly utilize concurrency (or parallel computing) to exploit multiple cores on the multicore processors.. The emergence of multicore processors is also prevalent in modern compute clusters typically employed by the High Performance Computing (HPC) community. These modern clusters are built with compute nodes comprising of a combination of Symmetric Multi-Processors (SMP) and multicore processors. The TOP500 [18] community has even designated a new nameconstellations-for this breed of clusters. Traditionally on clusters built with single processor compute nodes, Message Passing Interface (MPI) [12] compliant libraries are used for writing parallel applications. The MPI standard, by design, is targeted towards programming distributed memory clusters-the underlying model is Single Program Multiple Data (SPMD). MPI libraries and the associated runtime software must be adapted to execute legacy parallel applications efficiently on multicore processors.. The MPI standard provides bindings for traditional languages including C, C++, and Fortran. Some of the popular MPI libraries include Open MPI [8] and MPICH2 [10] . On the other hand, several scientists [4] [7] [9] [13] have suggested that Java could make an excellent language for developing HPC software. Compared with traditional languages like C and Fortran, Java provides portability, higher-level programming concepts, improved compile time and runtime checking, and, as a result, faster problem detection and debugging. The JVM automatically manages the memory utilized by the program data structures. The built-in support for threads provides a way to insert parallelism in Java applications. The Java Development Kit (JDK) includes a large set of libraries that can be reused by developers for rapid application development. Another, interesting, argument in favour of Java is the large pool of developers-the main reason is that Java is taught as one of the major languages in many Universities around the globe.. Realizing these benefits of Java, we developed the MPJ Express [15] software that is an open source and free implementation of the mpiJava 1.2 API [6] standardized by the Java Grande Forum [11] . With the universal adoption of multicore processors in HPC hardware, it is important to multicore-enable the MPJ Express software. This essentially means that the software and its runtime must effectively parallelize and execute message passing user applications on multicore processors. By multicore-enabling the software, we intend to provide an efficient way to port legacy message passing applications on shared memory and multicore processors.. For this purpose, the current version of the MPJ Express software now provides two software configurations: the multicore and the cluster configuration. The multicore configuration is especially designed and implemented to allow application developers to efficiently execute legacy code-without any modification-on multicore and shared memory processors. On the other hand, the cluster configuration-the default configuration in earlier releases-is meant for parallel applications executing on clusters or network of computers. In this configuration there are two communication devices, Java New I/O (NIO) device (called niodev) and Myrinet eXpress (MX) device (called mxdev).. In this paper we describe our experiences of multicore-enabling the MPJ Express messaging library. For this purpose, we have developed the multicore device based on Java threads. This device is an implementation of the xdev API, which is a device layer in the MPJ Express software. The underlying idea is that instead of relying on network-based communication, the software must use shared memory communication on multicore and shared memory processors. There are several ways of implementing multicore device for MPJ Express. Let us consider a multicore processor as the target platform for executing message passing user application. The first option is to employ Java threads; each MPJ Express process is a thread running inside a single JVM on the multicore processor. Here the underlying device implements message passing using global or shared variables between threads. The other option is to start a single JVM (MPJ Express process) for each core and these processes communicate to each other via native shared memory APIs like sysv and usysv. Our design goals for developing multicore device are performance and portability. In our previous study [14] we evaluated these techniques and found out that employing Java threads is the most efficient and portable mechanism of implementing the shared memory communication and multicore device for MPJ Express.. We also discuss the challenges of integrating the multicore device in the MPJ Express software. This turned out to be a challenging task because the parallel application executes in a single JVM in the multicore mode. On the contrary in the cluster mode, the parallel user application executes in multiple JVMs. Due to these inherent architectural differences between the two modes, the MPJ Express runtime is modified to ensure correct semantics of the parallel program. In addition we evaluate the performance of our multicore device against the cluster configuration devices (niodev and mxdev) and other message passing libraries including MPJ/Ibis, mpiJava, and MPICH2. We found that the performance of MPJ Express (multicore configuration) is substantially better than MPJ Express (cluster configuration) on shared memory and multicore processors. Also MPJ Express library performs well in comparison to other MPI libraries. We also demonstrate performance benefits of MPJ Express (multicore mode) in a real-world cosmological simulation code Gadget-2.. To the best of our knowledge none of the existing pure Java messaging systems provide a portable and efficient method of porting legacy message passing parallel applications on multicore processors. In this context, the main contribution of this paper is the design, implementation, integration, and evaluation of the multicore device.. Rest of the paper is organized as follows. Section 2 discusses related work. Section 3 presents design of the MPJ Express software. We also present the API used to implement the multicore device. Section 4 presents implementation details and algorithms for the MPJ Express software. Section 5 discusses our methodology to integrate the multicore device into the MPJ Express software. We evaluate performance of the multicore device in the Section 6. We conclude and discuss future work in the Section 7. In this paper, we presented a new low-level multicore communication device to port existing legacy parallel Java applications on multicore and shared memory processors. The idea is that many scientific applications already exist that are parallelized using MPJ Express for distributed memory platforms like clusters. And in this work we provide an effective and efficient way of executing the same application-without any modification-on multicore and shared memory processors.. The multicore device for the MPJ Express software has been developed using Java threads. The device is recently integrated into the public release of the MPJ Express software after essential modifications to the runtime system to ensure correct semantics of the parallel program. The addition of the multicore device (and the multicore mode) to the MPJ Express software enables application developers to exploit the full potential of modern multicore machines.. Our performance evaluation reveals that MPJ Express (multicore mode) performs much better than MPJ Express (cluster mode) and MPJ/Ibis on multicore and shared memory processors machines. Especially throughput achieved by the multicore mode MPJ Express software is substantially higher than other competing libraries. The performance of the MPJ Express software still suffers from the overhead of the buffering layer, which is inevitable for implementing derived datatypes. We plan to explore in future if it is possible to avoid this layer for communication of basic datatypes. We also used MPJ Express (multicore mode) in a real-world simulation code called Gadget-2 on an eight core machine and compared its performance with MPJ Express (cluster mode). The multicore mode of the MPJ Express software performed better demonstrating effectiveness of our approach.. In the future, we plan to develop a hybrid MPJ Express device that uses multicore device for intra-node communication and message passing for inter-node communication-this kind of device will allow porting MPJ Express applications on clusters of multicore and shared memory processors. Currently the multicore mode can only be used on a single computer. We also plan to further improve performance of MPJ Express communication devices.. A free copy of the MPJ Express software can be obtained from http://mpj-express.org. This section discusses MPI libraries that support programming multicore clusters by providing a shared memory communication device. The idea is that MPI processes running on multiple cores of a processor communicate to each other via shared memory.. In this context, popular native MPI libraries including Open MPI and MPICH2 provide high performance shared memory communication devices on various platforms. These devices can be used for communication between MPI processes executing on multiple cores of a processor. Open MPI is an open-source production quality implementation of both MPI-1 and MPI-2. It fully supports concurrent and multi-threaded applications. It includes the features of thread safety, concurrency and dynamic process spawning. MPICH2 is another high-performance and widely portable implementation of the MPI-2 standard from the Argonne National Laboratory. MPICH2 is designed for implementation of MPI on SMPs, clusters, and massively parallel processors. It provides various communication devices. One of these devices is the ch3 device which contains provides shared memory communication through ssm and shm channels and also through the nemesis communication subsystem. Again, these shared memory devices provide superior inter-node performance on target multicore processors.. The current generation of Java messaging systems-that include MPJ Express and MPJ/Ibis-lag behind in their support for programming multicore processors using shared memory communication devices. MPJ/Ibis [3] is an implementation of the MPJ API specification on top of Ibis. The communication devices used by MPJ/Ibis are not thread-safe. MPJ/Ibis has communication devices for java.io package, Java NIO package, and Myrinet. This software currently does not provide any shared memory communication device. mpiJava [1] is another Java messaging system which provides a fully functional and efficient object-oriented Java interface to MPI. A unique feature of this messaging library is that we can configure it to use any native C MPI library. In this way we can indirectly benefit from shared memory communication devices in these native libraries.. Earlier versions of the MPJ Express only provided two communication devices meant for Ethernet or Myrinet based interconnects. In this paper we introduce the multicore communication deviceimplemented using Java threads-that is recently added to the public MPJ Express release. With this shared memory or multicore device, legacy Java applications developed for distributed memory platforms like clusters/clouds can be executed on shared memory or multicore processor machines. MPJ Express is a thread-safe software, which means that it can be used in combination with JOMP threads to support nested parallelism [15] , which exploits two levels of parallelism at the application level-threading and message passing. A drawback of this approach is that user applications must be modified to exploit multicore clusters.. To the best of our knowledge, this is the first attempt to efficiently port parallel message passing Java applications on multicore processors. Our contribution is the design, implementation, and evaluation of threads-based multicore communication device for MPJ Express.

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


Using cost to control instrumentation overhead We present a new data collection cost system that provides programmers with feedback about the impact data collection is having on their application. We allow programmers to define the level of perturbation their application can tolerate, and then regulate the amount of instrumentation to ensure that the threshold is not exceeded. Our approach is unique in that the type of data gathered remains constant; instead, we regulate when data are collected. This permits programmers to trade speed of isolation of a performance problem for less application perturbation. We implemented this cost system in the Paradyn Performance Tools and present several case studies demonstrating the accuracy of the cost system. 0 1998-Elsevier Science B.V. All rights reserved Monitoring is critical to understand the performance of an execution of a parallel or distributed application. For technical and economic reasons, software-based monitoring generally is used to measure applications.. However, software-based monitoring introduces overhead into the application and can alter its performance. In this paper, we present a new way to manage the perturbation caused by data collection. Our *Corresponding author. E-mail: hollings@cs.umd.edu. 'Supported in part by Wright Laboratory Avionics Directorate (WLAD), Air Force Material Command, USAF, grant F33615-94-1-1525 (ARPA order BSSO), NSF Grants CCR-9100968 and CDA-9024618, DOE Grant DE-FG02-93ER25176, and ONR Grant N00014-89-J-1222. The US Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright notation thereon. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of WLAD or the US Government.. approach is based on an instrumentation cost system that ensures that data collection and analysis can be accomplished while controlling the performance overhead of the instrumentation. The unique feature of our approach is that it lets the programmer see and control the overhead introduced by monitoring rather than simply being subjected to it.. The best way to handle instrumentation overhead is to avoid introducing it. In a previous paper [S] , we described a new approach to performance monitoring called dynamic instrumentation. Dynamic instrumentation delays instrumenting an application program until it is in execution, permitting dynamic insertion and alteration of the instrumentation during program execution. This strategy of enabling instrumentation only when it is needed greatly reduces the amount of data collected, and therefore the perturbation caused by the instrumentation system. However, instrumentation requests still have an impact on the program's performance. The purpose of our cost system is to control the instrumentation overhead in an environment that uses dynamic instrumentation.. To manage the perturbation caused by instrumentation, we have developed an instrumentation cost system to ensure that data collection and analysis do not excessively alter the performance of the application being studied. The system associates a cost with different resources. Possible resources include processors, interconnection networks, disks, and data analysis workstations. The cost system is divided into two parts: predicted cost and observed cost. Predicted cost is computed when an instrumentation request is received, and observed cost while the instrumentation is enabled.. By computing the predicted cost of instrumentation before data collection starts, it is possible to decide if the requested data is worth the cost of collection. For example, if the user requests performance data whose predicted cost of collection is 100% of the application's run time, they might decide that the impact of collecting the data is too high to warrant collection. This predictive information can be used as feedback to reduce or defer an instrumentation request. Our higher-level performance analysis tools use the cost prediction to control how aggressively they instrument a program in search of performance bottlenecks. In many cases, control of instrumentation overhead can allow our tools to more quickly isolate a performance problem (examples of this situation are given in Section 6). In the extreme, effective use of our perturbation budget means that a performance problem can be isolated with fewer executions of the program. 2 Although predicting the cost of data collection prior to instrumentation execution provides useful data, it is important to ensure that the actual cost of data collection matches the predicted cost. The observed cost tracks the impact the currently enabled instrumentation has on the application. To be useful, our observed cost system needs to be inexpensive to compute and to accurately reflect the true impact of data collection. By computing the observed cost, we can verify that the actual impact of ' We are currently extending Paradyn to provide automated support for experiment management. This will permit the synthesis of results from multiple application program executions. instrumentation is held within predefined limits. If the observed cost exceeds these limits, feedback is provided to the user or higher-level tool; this feedback allows us to dynamically maintain (approximately) a fixed level of instrumentation overhead.. Our two-part cost system provides an effective way to measure not only the perturbation caused by instrumentation but also to regulate it. In the next section, we summarize our previous work in dynamic instrumentation and automated control of the instrumentation using the W3 search model. Section 3 introduces the cost system and describes how we use it to compute the perturbation due to instrumentation. In Section 4, we present results that show how accurately our cost system predicts and measures the actual perturbation for several applications running on UNIX workstation clusters. In Section 5, we show how to use the cost system to control the level of instrumentation overhead. In Section 6, we present a short case study of the effectiveness of higher-level performance tools using our cost system. Section 7 discusses related work and conclusions are presented in Section 8. Our cost system controls the software instrumentation overhead based on feedback. This feedback correlates the high-level instrumentation abstractions with resource limits such as percent CPU overhead. We predict the amount of overhead we will cause and then use our instrumentation facility to provide information about the actual costs. The mechanisms that we have built as part of the Paradyn parallel performance tool give the programmer direct control over their instrumentation.. Instrumentation data are not discarded to reduce overhead, nor are they buffered. Instead, the generation and insertion of the instrumentation is deferred. We expose the overhead of data collection as a first class metric in Paradyn. The programmer is also given explicit control of the overhead, which controls the rate at which the performance tool searches for bottlenecks. The W3 search model is a natural fit with the cost system. We have implemented the cost system in Paradyn and demonstrated that we could accurately track the cost of data collection in several applications. Perturbation compensation [6, 12] reconstructs the performance of an unperturbed execution from a perturbed one. These techniques generally require a trace-based instrumentation system and post-mortem analysis to reconstruct the correct ordering of events. Our approach differs in that we do not try to factor out perturbation; instead we try to avoid it using the predicted cost, and quantify it using the observed cost.. Pablo [8] uses an adaptive instrumentation system. In Pablo, the programmer specifies the events to be recorded in an event log for post-mortem analysis. However, if during the program's execution, the volume of data collected exceeds certain thresholds, the system will fall back from producing event logs to producing summary information. If the amount of data being collected is still too high, even the summary information will be disabled. The approach used in Pablo leaves the underlying instrumentation in place and controls the logging of data. However, our technique has the advantage that with dynamic instrumentation, disabling data collection completely removes the instrumentation code and so there is no latent perturbation due to instrumentation code that is disabled but must execute code to learn that it is disabled. Also since we control the number of hypotheses being evaluated (and hence the amount of instrumentation) rather than changing what data gets collected, the type of the data gathered remains constant no matter the perturbation. Goldberg and Hennessy [3] used the difference between the measured and predicted time of a code region to quantify the effects of the memory hierarchy. Our approach differs in two ways from theirs. First, since we need to be able to characterize the impact of small, but (potentially) frequently accessed instrumentation code blocks, we use statistical sampling instead of timers. Second, our goal is to compute the impact of the instrumentation on the original code rather than the impact of the cache on a single basic block.

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


Project HealthDesign: Rethinking the power and potential of personal health records Just about two years ago, we asked you to join us in thinking through the vision for personal health records (PHRs) and how they should evolve. We believed currently available PHRs succeeded in providing people with access to some of their health care information, but they weren't sufficiently flexible or action-oriented to meet the practical needs of people as they went about trying to manage their heath throughout their daily lives.Project HealthDesign was created to explore the power and potential of next-generation PHRs-to demonstrate that their usefulness lay not so much in providing people with the ability to view information gathered from clinical episodes but in enabling a host of innovative PHR applications to be built that helped people make sense of their daily health and take informed actions. We pushed the potential to build and run such applications on a common platform and incorporate familiar technologies, like cell phones and PDAs. Through the work of our nine grantee teams, we quickly realized that if users were at the center of the design process, the notion of PHRs and related IT applications would look very different. Over 18 months, the teams created a range of robust, innovative prototypes that addressed specific self-management tasks to promote better health and wellness.The project was speculative in nature, and was intended mostly to yield insights and directions for the field to pursue, but our grantees developed some great prototypes. Some of the prototypes provided technology developers with ideas. Others are being refined for potential commercialization. Soon, we will release open source codes for all nine prototypes for developers and others to use.We hope these codes spark more consumer-focused PHR systems that use a common platform approach.We've prepared and attached a high-level summary that clearly explains what we did and what resulted. The audience

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


Eigen-Inference for Energy Estimation of Multiple Sources Abstract-In this paper, a new method is introduced to blindly estimate the transmit power of multiple signal sources in multiantenna fading channels, when the number of sensing devices and the number of available samples are sufficiently large compared to the number of sources. Recent advances in the field of large dimensional random matrix theory are used that result in a simple and computationally efficient consistent estimator of the power of each source. A criterion to determine the minimum number of sensors and the minimum number of samples required to achieve source separation is then introduced. Simulations are performed that corroborate the theoretical claims and show that the proposed power estimator largely outperforms alternative power inference techniques. At a time when radio resources become scarce, the alternative offered by cognitive radios [1] is gaining more and more interest. A cognitive (or flexible) wireless network is a set of opportunistic entities, referred to as the secondary network, that benefit from unused spectrum resources to establish communication while generating little or even no interference to the licensed networks, collectively referred to as the primary network. This is achieved by letting the secondary devices sense the communication channel for the presence of active transmissions and exchange the collected information among the secondary network, in order to perform optimal decisions on the opportunistic communication strategy to apply. The difficulty for the secondary network does not lie in the detection of downlink transmissions from fixed access points to licensed mobile users in the primary network, but rather in the reliable detection of the uplink transmissions from the mobile licensed users to the primary access points. If, in addition to detecting active transmissions, the secondary devices can, at all time, detect the exact number of primary mobile sources and evaluate the power used by every individual source, the transmission policy in the secondary network can be accurately and dynamically adapted. An example of use is found in the recent development of femtocells, i.e., small area cells that operate indoors by overlaying the spectrum licensed to outdoors macrocells. Closed access femtocells have the capabilities to self-organize and to dynamically access spectrum resources [2] - [3] ; specifically, the first requirement of a femtocell is to minimally interfere the overlaid licensed macrocell network, while simultaneously trying to optimize transmission data rates within the femtocell. This requires that the femtocells be constantly aware of the outdoor activity of the macrocell mobile users. As such, macrocell-femtocell networks are cognitive wireless networks in which the established macrocell network is seen as the primary network, while the femtocell network plays the role of the opportunistic secondary network. In [4] , the achievable rates of a two-tier macrocell-femtocell network are derived in the very general case where all entities in the networks are embedded with multiple antennas. The optimal coverage of the secondary networks is computed under several assumptions on the side information available at the femtocells. Among these assumptions, [4] supposes that the femtocells have perfect knowledge of the distances to the macrocell user equipments. This last assumption suggests that the femtocells have a means, either global positioning system or some sort of detection mechanism, to perfectly evaluate the distances to the active primary users. In the present work, we address the problem of the estimation of the distance of the secondary network to each primary user or, more exactly, the problem of the estimation of the individual source transmit powers. We provide a framework for the secondary network (i) to identify the number of primary sources, (ii) to determine the number of transmit antennas for every source and (iii) to estimate the transmit power from each source.. The difficulty of estimating transmit powers lies in the little information known a priori by the secondary network: the transmitted data and the transmission channels are usually inaccessible. This has motivated much work in the direction of blind signal source detection methods, based on the NeymanPearson test in Gaussian channels [5] , Rayleigh fading channels [6] , multiple antenna channels [7] and large dimensional multi-antenna channels [8] , but these successive works are designed to answer a binary hypothesis test on the presence or absence of a signal source. Alternatively, in [9] , a method is derived to separate signal sources and estimate the number of those sources. To solve the harder problem of power inference, it is necessary to assume that the amount of sensors in the secondary network is larger than the number of active sources, e.g., individual secondary users are equipped with many antennas, or a large number of secondary users, each of them equipped with few antennas, collect their received data via a central backbone; this assumption is valid in the context of femtocells that can communicate through wired private or public networks. The condition on the number of sensors allows one to model the multi-dimensional channel H from the joint primary sources to the secondary users, the joint source transmit data X and the additive received noise W as large dimensional random matrices with independent entries (no specific matrix size definition is required at this point). Denoting P a diagonal matrix whose entries are the source powers with multiplicities the number of transmit antennas of each user, the power detection problem boils down to estimating the entries of P from the sole knowledge of the received data matrix Y = HP 1 2 X + W, as all system dimensions (number of antennas per transmit source, number of sensors, number of available samples) are large. If the available samples largely outnumber the sensors (of several orders of magnitude), and the number of sensors are much larger than the number of transmit antennas, the strong law of large numbers ensures that the diagonal entries of P can be retrieved directly from the eigenvalues of YY H , and the problem is immediately solved. When all dimensions are large but are of the same order of magnitude, the law of large numbers no longer applies and one has to consider results from the theory of large dimensional random matrices, e.g., [10] , used in the present article to derive the asymptotic eigenvalue distribution of YY H as a function of P. To this day and to the best of our knowledge, no computationally-efficient consistent estimator for the entries of P has been proposed. 1 Among the existing techniques are discretization and convex optimization strategies [11] , [12] , which tend to directly invert the result from [10] (although an explicit inverse was not available at that time), and moment-based approaches [13] , [14] , which use the empirical moments of the eigenvalue distribution YY H to infer the entries of P. Some of these moment-based methods are computationally cheap, but provide in general consistent estimators of the moments of the eigenvalue distribution of P, instead of estimators of the sought powers. These techniques are therefore expected to perform worse than methods that would fully exploit the eigenvalue distribution of YY H , and not only a few moments of the distribution. This problem is successfully addressed in [15] for the simpler sample covariance matrix model Y ′ = P 1 2 X, where strongly consistent estimators for the individual entries of P are provided, which are based on the full eigenvalue distribution of X H PX. The present work generalizes this result to infer the entries of P from the observed matrix Y = HP 1 2 X + W. The novel estimator proposed here is strongly consistent with respect to growing number of sensors, sources and samples, has a very compact form, is computationally efficient and is shown in simulations to largely outperform alternative approaches, such as moment-based methods. The estimator is moreover robust to small system dimensions. We specifically show 1 an estimatorP i of the i th entry P i of P is said to be consistent ifP i − P i → 0 almost surely when the relevant system dimensions grow large. that, if the number of sensing entities is larger than the number of active transmitters in the primary network, it is possible to evaluate both the exact number of transmitters and their respective transmit powers (and, for that matter, the number of transmit antennas per source can also be estimated). Otherwise, ambiguous scenarios might arise where multiple transmitters may be confused as a single transmitter with estimated transmit power the average of the true transmit powers of these transmitters. Additionally, we provide an expression of the minimum number of sensors required to separate transmit sources of similar power.. The remainder of this paper is structured as follows: Section II introduces the system model. In Section III, we study the asymptotic spectrum of the eigenvalues of YY H . In Section IV, the novel power estimator is derived. Section V provides simulation results. Section VI concludes this work.. Notations: In the following, boldface lower case symbols represent vectors, capital boldface characters denote matrices (I N is the size-N identity matrix). The transpose and Hermitian transpose operators are denoted (·) T and (·) H , respectively. We denote by C + the set {z ∈ C, ℑ[z] > 0} and by C − the set {z ∈ C, ℑ[z] < 0}. The left-limit in x of a function f is denoted f (x−). In this paper, a blind multi-source power estimator was derived. Under the assumptions that the ratio between the number of sensors and the number of signals sources is not too small and the source transmit powers are sufficiently distinct from one another, we derived a method to infer the individual source powers if the number of sources is known, which was shown to outperform alternative estimation techniques in the medium to high SNR regime. We then briefly discussed the joint estimation of the number of transmit sources, the number of antennas of each source and the transmit powers, which appeared in simulation to perform well in the high SNR regime. The novel method is moreover computationally efficient and is particularly robust to small system dimensions. As such, it is particularly suited to the blind detection of primary mobile user in future cognitive radio networks. Theorem 2 states that, under spectrum separability condition for all P k , k ∈ {1, . . . , K}, when n 1 , . . . , n K are known a priori to the receiver, thenP 1 , . . . ,P K are consistent estimators for P 1 , . . . , P K . Now, in practice, it is rare that n 1 , . . . , n K and even K are a priori known to the receiver. However, if separability is assumed, then one can estimate simultaneously K, n 1 , . . . , n K and P 1 , . . . , P K . This is performed by (i) determining the clusters of the empirical eigenvalues of B N , which determines K, (ii) counting the number of eigenvalues in each cluster to determine the multiplicities n 1 , . . . , n K and (iii) evaluatingP 1 , . . . ,P K from Theorem 2.. However, step (i) may not be obvious. In particular, when the total number n of transmit antennas is small, when the typical cluster size is large or when the inter-cluster spacing is small, it is non-trivial to determine what eigenvalues form a cluster. To solve this critical issue, studies are being currently carried out that aim to determine second order statistics of F BN . Thanks to second order statistics on F BN , it will be possible to design estimators of P 1 , . . . , P K that take into account the probability of B N being an appropriate model for the estimatedP 1 , . . . ,PK for every hypothesisK for the number of transmit source and every hypothesis (n 1 , . . . ,nK) for the number of antennas for each of these sources. We hereafter provide an alternative ad-hoc technique to partially solve the problem of determining K and n 1 , . . . , n K based on Theorems 1 and 2.. In the following, we assume for readability that we know the number K of transmit sources (taken large enough to cover all possible hypotheses), some having possibly 0 transmit antennas. The approach consists in the following steps: 1) we first identify a set of plausible hypotheses for n 1 , . . . , n K . This can be performed by inferring clusters based on the spacing between consecutive eigenvalues: if the distance between neighboring eigenvalues is more than a threshold, then we add an entry for a possible cluster separation in the list of all possible positions of cluster separation. From this list, we create all possible K-dimensional vectors of eigenvalue clusters. Obviously, the choice of the threshold is critical to reduce the number of hypotheses to be tested; 2) for each K-dimensional vector with number of antennaŝ n 1 , . . . ,n K , we use Theorem 2 in order to obtain estimates of theP 1 , . . . ,P K (some being possibly null); 3) based on these estimates, we compare the e.s.d. Note that the above process can bring an interesting feature linked to the cluster separability problem discussed along this article. Indeed, if two subsequent powers P i and P i+1 are close to one another, then the separability condition of Assumptions 1 and 2 is not verified. If one knows n i and n i+1 and blindly uses the estimator of Theorem 2, the result can be catastrophic as the estimator is unreliable. On the contrary, if n i and n i+1 are unknown and one uses the above process, it is very likely that the distinct sources with close power will be assumed to be a single source with power equal to the estimate of (P i + P i+1 )/2 and embedded with n i + n i+1 antennas. For practical blind detection purposes in cognitive radios, this leads the secondary network to infer a number of transmit entities that is less than the effective number of transmitters. In general, this would not have serious consequences on the decisions made by the secondary network but this might at least reduce the capabilities of the secondary network to optimally overlay the licensed spectrum. Further work is also being carried out to go past the cluster separability assumption; specifically, methods for estimating the number of P i associated to any cluster j F are under study.

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