%0 Journal Article %J Software Engineering, IEEE Transactions on %D 2007 %T Reliable Effects Screening: A Distributed Continuous Quality Assurance Process for Monitoring Performance Degradation in Evolving Software Systems %A Yilmaz,C. %A Porter, Adam %A Krishna,A. S %A Memon, Atif M. %A Schmidt,D. C %A Gokhale,A.S. %A Natarajan,B. %K configuration subset %K distributed continuous quality assurance process %K evolving software systems %K in house testing %K main effects screening %K performance bottlenecks %K performance degradation monitoring %K performance intensive software systems %K process configuration %K process execution %K program testing %K regression testing %K reliable effects screening %K software benchmarks %K Software performance %K software performance evaluation %K Software quality %K software reliability %K tool support %X Developers of highly configurable performance-intensive software systems often use in-house performance-oriented "regression testing" to ensure that their modifications do not adversely affect their software's performance across its large configuration space. Unfortunately, time and resource constraints can limit in-house testing to a relatively small number of possible configurations, followed by unreliable extrapolation from these results to the entire configuration space. As a result, many performance bottlenecks escape detection until systems are fielded. In our earlier work, we improved the situation outlined above by developing an initial quality assurance process called "main effects screening". This process 1) executes formally designed experiments to identify an appropriate subset of configurations on which to base the performance-oriented regression testing, 2) executes benchmarks on this subset whenever the software changes, and 3) provides tool support for executing these actions on in-the-field and in-house computing resources. Our initial process had several limitations, however, since it was manually configured (which was tedious and error-prone) and relied on strong and untested assumptions for its accuracy (which made its use unacceptably risky in practice). This paper presents a new quality assurance process called "reliable effects screening" that provides three significant improvements to our earlier work. First, it allows developers to economically verify key assumptions during process execution. Second, it integrates several model-driven engineering tools to make process configuration and execution much easier and less error prone. Third, we evaluate this process via several feasibility studies of three large, widely used performance-intensive software frameworks. Our results indicate that reliable effects screening can detect performance degradation in large-scale systems more reliably and with significantly less resources than conventional t- echniques %B Software Engineering, IEEE Transactions on %V 33 %P 124 - 141 %8 2007/02// %@ 0098-5589 %G eng %N 2 %R 10.1109/TSE.2007.20 %0 Conference Paper %B Software Engineering, 2004. ICSE 2004. Proceedings. 26th International Conference on %D 2004 %T Skoll: distributed continuous quality assurance %A Memon, Atif M. %A Porter, Adam %A Yilmaz,C. %A Nagarajan,A. %A Schmidt,D. %A Natarajan,B. %K 1MLOC+ software package %K ACE+TAO %K around-the-clock QA process %K around-the-world QA process %K distributed continuous QA %K distributed continuous quality assurance %K distributed programming %K program verification %K Quality assurance %K Skoll %K software performance evaluation %K software profiling %K Software quality %K Software testing %X Quality assurance (QA) tasks, such as testing, profiling, and performance evaluation, have historically been done in-house on developer-generated workloads and regression suites. Since this approach is inadequate for many systems, tools and processes are being developed to improve software quality by increasing user participation in the QA process. A limitation of these approaches is that they focus on isolated mechanisms, not on the coordination and control policies and tools needed to make the global QA process efficient, effective, and scalable. To address these issues, we have initiated the Skoll project, which is developing and validating novel software QA processes and tools that leverage the extensive computing resources of worldwide user communities in a distributed, continuous manner to significantly and rapidly improve software quality. This paper provides several contributions to the study of distributed continuous QA. First, it illustrates the structure and functionality of a generic around-the-world, around-the-clock QA process and describes several sophisticated tools that support this process. Second, it describes several QA scenarios built using these tools and process. Finally, it presents a feasibility study applying these scenarios to a 1MLOC+ software package called ACE+TAO. While much work remains to be done, the study suggests that the Skoll process and tools effectively manage and control distributed, continuous QA processes. Using Skoll we rapidly identified problems that had taken the ACE+TAO developers substantially longer to find and several of which had previously not been found. Moreover, automatic analysis of QA task results often provided developers information that quickly led them to the root cause of the problems. %B Software Engineering, 2004. ICSE 2004. Proceedings. 26th International Conference on %P 459 - 468 %8 2004/05// %G eng %R 10.1109/ICSE.2004.1317468 %0 Conference Paper %D 2002 %T Passive replication schemes in AQuA %A Ren,Yansong %A Rubel,P. %A Seri,M. %A Michel Cukier %A Sanders,W. H. %A Courtney,T. %K AQuA architecture %K distributed object management %K Fault tolerance %K group members %K large-scale distributed object-oriented systems %K management structure %K multidimensional quality of service %K passive replication scheme %K performance measurements %K reusable technologies %K scalability %K software fault tolerance %K software performance evaluation %K software reusability %K software solutions %X Building large-scale distributed object-oriented systems that provide multidimensional quality of service (QoS) in terms of fault tolerance, scalability, and performance is challenging. In order to meet this challenge, we need an architecture that can ensure that applications' requirements can be met while providing reusable technologies and software solutions. This paper describes techniques, based on the AQuA architecture, that enhance the applications' dependability and scalability by introducing two types of group members and a novel passive replication scheme. In addition, we describe how to make the management structure itself dependable by using the passive replication scheme. Finally, we provide performance measurements for the passive replication scheme. %P 125 - 130 %8 2002/12// %G eng %R 10.1109/PRDC.2002.1185628 %0 Conference Paper %B Fifth IEEE International Conference on Automatic Face and Gesture Recognition, 2002. Proceedings %D 2002 %T Smiling faces are better for face recognition %A Yacoob,Yaser %A Davis, Larry S. %K between-class scatter matrices %K Databases %K discrimination power measure %K dynamic scenarios %K expressive faces %K face recognition %K facial expressions %K performance %K performance differences %K smiling faces %K software performance evaluation %K Training %K visual databases %K within-class scatter matrices %X This paper investigates face recognition during facial expressions. While face expressions have been treated as an adverse factor in standard face recognition approaches, our research suggests that, if a system has a choice in the selection of faces to use in training and recognition, its best performance would be obtained on faces displaying expressions. Naturally, smiling faces are the most prevalent (among expressive faces) for both training and recognition in dynamic scenarios. We employ a measure of discrimination power that is computed from between-class and within-class scatter matrices. Two databases are used to show the performance differences on different sets of faces %B Fifth IEEE International Conference on Automatic Face and Gesture Recognition, 2002. Proceedings %I IEEE %P 52 - 57 %8 2002/05// %@ 0-7695-1602-5 %G eng %R 10.1109/AFGR.2002.1004132 %0 Journal Article %J IEEE Transactions on Software Engineering %D 2001 %T A tool to help tune where computation is performed %A Eom, Hyeonsang %A Hollingsworth, Jeffrey K %K Computational modeling %K Current measurement %K Distributed computing %K distributed program %K distributed programming %K load balancing factor %K Load management %K parallel program %K parallel programming %K Performance analysis %K performance evaluation %K Performance gain %K performance metric %K Programming profession %K software metrics %K software performance evaluation %K Testing %K Time measurement %K tuning %X We introduce a new performance metric, called load balancing factor (LBF), to assist programmers when evaluating different tuning alternatives. The LBF metric differs from traditional performance metrics since it is intended to measure the performance implications of a specific tuning alternative rather than quantifying where time is spent in the current version of the program. A second unique aspect of the metric is that it provides guidance about moving work within a distributed or parallel program rather than reducing it. A variation of the LBF metric can also be used to predict the performance impact of changing the underlying network. The LBF metric is computed incrementally and online during the execution of the program to be tuned. We also present a case study that shows that our metric can accurately predict the actual performance gains for a test suite of six programs %B IEEE Transactions on Software Engineering %V 27 %P 618 - 629 %8 2001/07// %@ 0098-5589 %G eng %N 7 %R 10.1109/32.935854 %0 Conference Paper %B 18th International Conference on Distributed Computing Systems, 1998. Proceedings %D 1998 %T LBF: a performance metric for program reorganization %A Eom, H. %A Hollingsworth, Jeffrey K %K case study %K Computational modeling %K computer network %K Computer science %K Debugging %K distributed processing %K distributed program %K Educational institutions %K Integrated circuit testing %K LBF metric %K load balancing factor %K Load management %K measurement %K NIST %K parallel program %K parallel programming %K performance metric %K program reorganization %K program tuning %K Programming profession %K resource allocation %K software metrics %K software performance evaluation %K US Department of Energy %X We introduce a new performance metric, called Load Balancing Factor (LBF), to assist programmers with evaluating different tuning alternatives. The LBF metric differs from traditional performance metrics since it is intended to measure the performance implications of a specific tuning alternative rather than quantifying where time is spent in the current version of the program. A second unique aspect of the metric is that it provides guidance about moving work within a distributed or parallel program rather than reducing it. A variation of the LBF metric can also be used to predict the performance impact of changing the underlying network. The LBF metric can be computed incrementally and online during the execution of the program to be tuned. We also present a case study that shows that our metric can predict the actual performance gains accurately for a test suite of six programs %B 18th International Conference on Distributed Computing Systems, 1998. Proceedings %I IEEE %P 222 - 229 %8 1998/05/26/29 %@ 0-8186-8292-2 %G eng %R 10.1109/ICDCS.1998.679505 %0 Journal Article %J Computer %D 1995 %T The Paradyn parallel performance measurement tool %A Miller, B. P %A Callaghan, M. D %A Cargille, J. M %A Hollingsworth, Jeffrey K %A Irvin, R. B %A Karavanic, K. L %A Kunchithapadam, K. %A Newhall, T. %K Aerodynamics %K Automatic control %K automatic instrumentation control %K Debugging %K dynamic instrumentation %K flexible performance information %K high level languages %K insertion %K Instruments %K large-scale parallel program %K Large-scale systems %K measurement %K Paradyn parallel performance measurement tool %K Parallel machines %K parallel programming %K Performance Consultant %K Programming profession %K scalability %K software performance evaluation %K software tools %X Paradyn is a tool for measuring the performance of large-scale parallel programs. Our goal in designing a new performance tool was to provide detailed, flexible performance information without incurring the space (and time) overhead typically associated with trace-based tools. Paradyn achieves this goal by dynamically instrumenting the application and automatically controlling this instrumentation in search of performance problems. Dynamic instrumentation lets us defer insertion until the moment it is needed (and remove it when it is no longer needed); Paradyn's Performance Consultant decides when and where to insert instrumentation %B Computer %V 28 %P 37 - 46 %8 1995/11// %@ 0018-9162 %G eng %N 11 %R 10.1109/2.471178