627 research outputs found

    Design-time performance testing

    Get PDF
    Software designers make decisions between alternate approaches early in the development of a software application and these decisions can be difficult to change later. Designers make these decisions based on estimates of how alternatives affect software qualities. One software quality that can be difficult to predict is performance, that is, the efficient use of resources in the system. It is particularly challenging to estimate the performance of large, interconnected software systems composed of components. With the proliferation of class libraries, middle-ware systems, web services, and third party components, many software projects rely on third party services to meet their requirements. Often choosing between services involves considering both the functionality and performance of the services. To help software developers compare their designs and third-party services, I propose using performance prototypes of alternatives and test suites to estimate performance trade-offs early in the development cycle, a process called Design-Time Performance Testing (DTPT). Providing software designers with performance evidence based on prototypes will allow designers to make informed decisions regarding performance trade-offs. To show how DTPT can help inform real design decisions. In particular: a process for DTPT, a framework implementation written in Java, and experiments to verify and validate the process and implementation. The implemented framework assists when designing, running, and documenting performance test suites, allowing designers to make accurate comparisons between alternate approaches. Performance metrics are captured by instrumenting and running prototypes. This thesis describes the process and framework for gathering software performance estimates at design-time using prototypes and test suites

    ANGELAH: A Framework for Assisting Elders At Home

    Get PDF
    The ever growing percentage of elderly people within modern societies poses welfare systems under relevant stress. In fact, partial and progressive loss of motor, sensorial, and/or cognitive skills renders elders unable to live autonomously, eventually leading to their hospitalization. This results in both relevant emotional and economic costs. Ubiquitous computing technologies can offer interesting opportunities for in-house safety and autonomy. However, existing systems partially address in-house safety requirements and typically focus on only elder monitoring and emergency detection. The paper presents ANGELAH, a middleware-level solution integrating both ”elder monitoring and emergency detection” solutions and networking solutions. ANGELAH has two main features: i) it enables efficient integration between a variety of sensors and actuators deployed at home for emergency detection and ii) provides a solid framework for creating and managing rescue teams composed of individuals willing to promptly assist elders in case of emergency situations. A prototype of ANGELAH, designed for a case study for helping elders with vision impairments, is developed and interesting results are obtained from both computer simulations and a real-network testbed

    IMTeract Tool for Monitoring and Profiling HPC systems and applications

    Get PDF
    Energy usage of computing equipment is an important consideration and energy inefficiency of computer systems is identified as the single biggest obstacle to advances in computing. Research into low-energy computing products ranges from operating system codes, applications and energy-aware schedulers to cooling systems for data centres. To monitor energy consumption in data and HPC centres it is necessary to develop tools for measuring the energy usage of computer equipment and applications. We have developed power measuring apparatus and a tool, IMTeract, for measuring energy consumption of HPC applications. IMTeract was used for energy usage profiling of HPC clusters running FLUENT and DL-POLY software and a GPU cluster running different implementations of an FFT algorithm. Our experimental results are encouraging and suggest that the IMTeract tool can be used to measure the CPU, Memory, Disk I/O and Network I/O for an application or a process and report on the energy used

    Quantifying and Predicting the Influence of Execution Platform on Software Component Performance

    Get PDF
    The performance of software components depends on several factors, including the execution platform on which the software components run. To simplify cross-platform performance prediction in relocation and sizing scenarios, a novel approach is introduced in this thesis which separates the application performance profile from the platform performance profile. The approach is evaluated using transparent instrumentation of Java applications and with automated benchmarks for Java Virtual Machines

    Platform-independent profiling in a virtual execution environment

    Get PDF
    Virtual execution environments, such as the Java virtual machine, promote platform-independent software development. However, when it comes to analyzing algorithm complexity and performance bottlenecks, available tools focus on platform-specific metrics, such as the CPU time consumption on a particular system. Other drawbacks of many prevailing profiling tools are high overhead, significant measurement perturbation, as well as reduced portability of profiling tools, which are often implemented in platform-dependent native code. This article presents a novel profiling approach, which is entirely based on program transformation techniques, in order to build a profiling data structure that provides calling-context-sensitive program execution statistics. We explore the use of platform-independent profiling metrics in order to make the instrumentation entirely portable and to generate reproducible profiles. We implemented these ideas within a Java-based profiling tool called JP. A significant novelty is that this tool achieves complete bytecode coverage by statically instrumenting the core runtime libraries and dynamically instrumenting the rest of the code. JP provides a small and flexible API to write customized profiling agents in pure Java, which are periodically activated to process the collected profiling information. Performance measurements point out that, despite the presence of dynamic instrumentation, JP causes significantly less overhead than a prevailing tool for the profiling of Java code

    Flexible and Efficient Measurement of Dynamic Bytecode Metrics

    Get PDF
    Code instrumentation is finding more and more practical applications, but the required program transformations are often difficult to implement, due to the lack of dedicated, high-level tools. In this paper we present a novel instrumentation framework that supports the partial evaluation of compiled Java code transformation templates, with the goal of efficiently measuring chosen dynamic bytecode and control flow metrics. This framework, as well as the instrumentation code it generates, is implemented in pure Java and hence completely platform-independent. We show the benefits of our approach in several application areas, such as platform-independent resource management and profiling of software components

    Structured query language (SQL) related tools

    Get PDF
    The widespread adoption of web services as an instant means of information dissemination and various other transactions, including those having financial consequences, have essentially made them a key component of today\u27s Internet infrastructure. Underneath the infrastructure, relational database plays an important role, in a sense, as organizing data and making the retrieval and insertion of the data in an efficient and secure fashion. Structured Query Language (SQL) is designed to query data contained in a relational database. SQL is important as it is the only way for a user to interact with a relational database. But little focus has been put on SQL because people consider SQL as a simple language. But in fact, SQL legacy code repository could be as huge as some mainstream languages such as C, Java etc. In this paper, we focus on SQL Injection Attacks and SQL Code Coverage

    A dynamic prediction and monitoring framework for distributed applications

    Get PDF
    This research builds on an application performance prediction and characterisation environment (known as PACE), whose aim is to characterise the performance-critical elements of both an application and its target execution environment and deduce from this model a predicted behaviour of the application prior to its execution. Underlying the research presented in this thesis are a number of themes: the tasks involved in the performance characterisation of applications and how this might be semi- automated: the level of abstraction at which these characterisations are performed in order to maintain a sufficient predictive accuracy: the automated refinement of these characterisations from runtime performance data: the extension of both the target programming languages and the class of application at which these techniques are aimed. In this thesis a number of novel extensions to PACE are described. These include: a new transaction-based performance characterisation language that provides a flexible framework for describing broader classes of application; a performance monitoring framework (based on an extension to the OpenGroup’s Application Response Measurement (ARM) standard) for the runtime monitoring of an application's data-dependent components and the automated refinement of performance models: an adaptation of this performance characterisation for the prediction of Java applications. These contributions are demonstrated through their application to a number of scientific kernels. This thesis also documents how these predictive results can be used in a real-time distributed runtime management environment, and also how these techniques can be applied to non-scientific codes, in particular to an IBM request-driven distributed web services demonstrator

    Java in the High Performance Computing arena: Research, practice and experience

    Get PDF
    This is a post-peer-review, pre-copyedit version of an article published in Science of Computer Programming. The final authenticated version is available online at: https://doi.org/10.1016/j.scico.2011.06.002[Abstract] The rising interest in Java for High Performance Computing (HPC) is based on the appealing features of this language for programming multi-core cluster architectures, particularly the built-in networking and multithreading support, and the continuous increase in Java Virtual Machine (JVM) performance. However, its adoption in this area is being delayed by the lack of analysis of the existing programming options in Java for HPC and thorough and up-to-date evaluations of their performance, as well as the unawareness on current research projects in this field, whose solutions are needed in order to boost the embracement of Java in HPC. This paper analyzes the current state of Java for HPC, both for shared and distributed memory programming, presents related research projects, and finally, evaluates the performance of current Java HPC solutions and research developments on two shared memory environments and two InfiniBand multi-core clusters. The main conclusions are that: (1) the significant interest in Java for HPC has led to the development of numerous projects, although usually quite modest, which may have prevented a higher development of Java in this field; (2) Java can achieve almost similar performance to natively compiled languages, both for sequential and parallel applications, being an alternative for HPC programming; (3) the recent advances in the efficient support of Java communications on shared memory and low-latency networks are bridging the gap between Java and natively compiled applications in HPC. Thus, the good prospects of Java in this area are attracting the attention of both industry and academia, which can take significant advantage of Java adoption in HPC.Ministerio de Ciencia e InnovaciĂłn; TIN2010-16735Ministerio de EducaciĂłn, Cultura y Deporte; AP2009-211
    • 

    corecore