145,610 research outputs found

    Real time, Non-Intrusive Instrumentation & Monitoring of Standards-based Event-based Middleware

    Get PDF
    poster abstractStandards-based middleware, such as the Common Object Request Broker Architecture (CORBA) Component Model and the Data Distribution Service, support event-based services for decoupled, asynchronous messaging between software components in a distributed system. The messaging models use the publisher-subscriber paradigm where one or more subscribers can subscribe to events from one or more publishers. The advantage of this paradigm is neither the publisher nor subscriber needs to be aware of the other. Instead, either entity is only concerned with the publication or receipt of an event. A critical aspect of these systems, however, is their instrumentation for analysis purposes, like monitoring its performance, state, and behavior to ensure the system is executing as expected. Traditionally, instrumenting such systems relied on intrusive instrumentation approaches, where developer inserted code snippets into the source code to collect the information needed. This means that developers must understand the original code, run the risk of inserting malicious code, and intermix code related to instrumentation with the normal business logic. Moreover, as the normal business logic evolves, the instrumentation code must also evolve. This can become a burden on developers until the business logic become less volatile. To overcome this complexity, we present Dynamic Event Monitor, a tool that can non-intrusively instrument and monitor events in a large scale distributed system at run time, using dynamic binary instrumentation. It operates in contexts without any a priori knowledge of the concrete events in the system, or how the system is composed. We have applied Dynamic Event Monitor to applications implemented in CORBA. Our results show that once the application is completely instrumented, the performance impact of actually monitoring events is minimal. For the applications we have tested, the instrumentation time is about 30-45 seconds and the time for real-time monitoring of events is about 2 milliseconds

    Static and Dynamic Scheduling for Effective Use of Multicore Systems

    Get PDF
    Multicore systems have increasingly gained importance in high performance computers. Compared to the traditional microarchitectures, multicore architectures have a simpler design, higher performance-to-area ratio, and improved power efficiency. Although the multicore architecture has various advantages, traditional parallel programming techniques do not apply to the new architecture efficiently. This dissertation addresses how to determine optimized thread schedules to improve data reuse on shared-memory multicore systems and how to seek a scalable solution to designing parallel software on both shared-memory and distributed-memory multicore systems. We propose an analytical cache model to predict the number of cache misses on the time-sharing L2 cache on a multicore processor. The model provides an insight into the impact of cache sharing and cache contention between threads. Inspired by the model, we build the framework of affinity based thread scheduling to determine optimized thread schedules to improve data reuse on all the levels in a complex memory hierarchy. The affinity based thread scheduling framework includes a model to estimate the cost of a thread schedule, which consists of three submodels: an affinity graph submodel, a memory hierarchy submodel, and a cost submodel. Based on the model, we design a hierarchical graph partitioning algorithm to determine near-optimal solutions. We have also extended the algorithm to support threads with data dependences. The algorithms are implemented and incorporated into a feedback directed optimization prototype system. The prototype system builds upon a binary instrumentation tool and can improve program performance greatly on shared-memory multicore architectures. We also study the dynamic data-availability driven scheduling approach to designing new parallel software on distributed-memory multicore architectures. We have implemented a decentralized dynamic runtime system. The design of the runtime system is focused on the scalability metric. At any time only a small portion of a task graph exists in memory. We propose an algorithm to solve data dependences without process cooperation in a distributed manner. Our experimental results demonstrate the scalability and practicality of the approach for both shared-memory and distributed-memory multicore systems. Finally, we present a scalable nonblocking topology-aware multicast scheme for distributed DAG scheduling applications

    Quality-aware model-driven service engineering

    Get PDF
    Service engineering and service-oriented architecture as an integration and platform technology is a recent approach to software systems integration. Quality aspects ranging from interoperability to maintainability to performance are of central importance for the integration of heterogeneous, distributed service-based systems. Architecture models can substantially influence quality attributes of the implemented software systems. Besides the benefits of explicit architectures on maintainability and reuse, architectural constraints such as styles, reference architectures and architectural patterns can influence observable software properties such as performance. Empirical performance evaluation is a process of measuring and evaluating the performance of implemented software. We present an approach for addressing the quality of services and service-based systems at the model-level in the context of model-driven service engineering. The focus on architecture-level models is a consequence of the black-box character of services

    Model-driven performance evaluation for service engineering

    Get PDF
    Service engineering and service-oriented architecture as an integration and platform technology is a recent approach to software systems integration. Software quality aspects such as performance are of central importance for the integration of heterogeneous, distributed service-based systems. Empirical performance evaluation is a process of measuring and calculating performance metrics of the implemented software. We present an approach for the empirical, model-based performance evaluation of services and service compositions in the context of model-driven service engineering. Temporal databases theory is utilised for the empirical performance evaluation of model-driven developed service systems
    • ā€¦
    corecore