Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Priya Nagpurkar is active.

Publication


Featured researches published by Priya Nagpurkar.


symposium on code generation and optimization | 2006

Online Phase Detection Algorithms

Priya Nagpurkar; Chandra Krintz; Michael Hind; Peter F. Sweeney; V. T. Rajan

Todays virtual machines (VMs) dynamically optimize an application as it is executing, often employing optimizations that are specialized for the current execution profile. An online phase detector determines when an executing program is in a stable period of program execution (a phase) or is in transition. A VM using an online phase detector can apply specialized optimizations during a phase or reconsider optimization decisions between phases. Unfortunately, extant approaches to detecting phase behavior rely on either offline profiling, hardware support, or are targeted toward a particular optimization. In this work, we focus on the enabling technology of online phase detection. More specifically, we contribute (a) a novel framework for online phase detection, (b) multiple instantiations of the framework that produce novel online phase detection algorithms, (c) a novel client- and machine-independent baseline methodology for evaluating the accuracy of an online phase detector, (d) a metric to compare online detectors to this baseline, and (e) a detailed empirical evaluation, using Java applications, of the accuracy of the numerous phase detectors.


international workshop on decentralized resource sharing in mobile computing and networking | 2006

Energy consumption and conservation in mobile peer-to-peer systems

Selim Gurun; Priya Nagpurkar; Ben Y. Zhao

Todays mobile devices are growing in number and computational resources. Devices capable of storing gigabytes of digital content are becoming ubiquitous, making them an ideal platform for peer-to-peer content delivery and sharing. However, the always on communication patterns of P2P networks is not a natural fit for energy-constrained mobile devices. In this paper, we perform a detailed study of energy consumption of a structured P2P overlay on a PDA device. Using actual energy measurements, we present energy consumption results for different type of operations in P2P overlays. Based on these observations, we implement an approach to improve energy conservation on P2P protocols and show some promising preliminary results.


symposium on code generation and optimization | 2005

Phase-Aware Remote Profiling

Priya Nagpurkar; Chandra Krintz; Timothy Sherwood

Recent advances in networking and embedded device technology have made the vision of ubiquitous computing a reality; users can access the Internets vast offerings anytime and anywhere. Moreover, battery-powered devices such as personal digital assistants and Web-enabled mobile phones have successfully emerged as new access points to the worlds digital, infrastructure. This ubiquity offers a new opportunity for software developers: users can now participate in the software development, optimization, and evolution process while they use their software. Such participation requires effective techniques for gathering profile information from remote, resource-constrained devices. Further, these techniques must be unobtrusive and transparent to the user; profiles must be gathered using minimal computation, communication, and power. Toward this end, we present a flexible hardware-software scheme for efficient remote profiling. We rely on the extraction of meta information from executing programs in the form of phases, and then use this information to guide intelligent online sampling and to manage the communication of those samples. Our results indicate that phase-based remote profiling can reduce the communication, computation, and energy consumption overheads by 50-75% over random and periodic sampling.


principles and practice of programming in java | 2007

Supporting exception handling for futures in Java

Lingli Zhang; Chandra Krintz; Priya Nagpurkar

A future is a simple and elegant construct that programmers can use to identify potentially asynchronous computation and to introduce parallelism into serial programs. In its recent 5.0 release, Java provides an interface-based implementation of futures that enables users to encapsulate potentially asynchronous computation and to define their own execution engines for futures. In prior work, we have proposed an alternative model, called directive-based lazy futures (DBLFutures), to support futures in Java, that simplifies Java programmer effort and improves performance and scalability of future-based applications. In the DBLFuture model, programmers use a new directive, @future, to specify potentially concurrent computations within a serial program. DBLFutures enable programmers to focus on the logic and correctness of a program in the serial version first, and then to introduce parallelism gradually and intuitively. Moreover, DBLFutures provide greater flexibility to the Java virtual machine for efficient future support.n In this paper, we investigate the exception handling aspect of futures in Java. In Java 5.0 Future APIs, exceptions of future execution are propagated to the point in the program at which future values are queried (used). We show that this exception handling model is not appropriate or desirable for DBLFutures. Instead, we propose an as-if-serial exception handling mechanism for DBL-Futures in which the system delivers exceptions at the same point as they would be delivered if the program was executed sequentially. Our approach, we believe, provides programmers with intuitive exception handling behavior and control. We present the design and implementation of our approach within the DBLFuture framework in the Jikes Research Virtual Machine. Our results show that our implementation introduces negligible overhead for applications without exceptions, and guarantees serial semantics of exception handling for applications that throw exceptions.


ACM Transactions on Architecture and Code Optimization | 2006

Efficient remote profiling for resource-constrained devices

Priya Nagpurkar; Hussam Mousa; Chandra Krintz; Timothy Sherwood

The widespread use of ubiquitous, mobile, and continuously connected computing agents has inspired software developers to change the way they test, debug, and optimize software. Users now play an active role in the software evolution cycle by dynamically providing valuable feedback about the execution of a program to developers. Software developers can use this information to isolate bugs in, maintain, and improve the performance of a wide-range of diverse and complex embedded device applications. The collection of such feedback poses a major challenge to systems researchers since it must be performed without degrading a users experience with, or consuming the severely restricted resources of the mobile device. At the same time, the resource constraints of embedded devices prohibit the use of extant software profiling solutions. To achieve efficient remote profiling of embedded devices, we couple two efficient hardware/software program monitoring techniques: Hybrid Profiling Support(HPS) and Phase-Aware Sampling. HPS efficiently inserts profiling instructions into an executing program using a novel extension to Dynamic-Instruction Stream Editing(DISE). Phase-aware sampling exploits the recurring behavior of programs to identify key opportunities during execution in order to collect profile information (i.e. sample). Our prior work on phase-aware sampling required code duplication to toggle sampling. By guiding low-overhead, hardware-supported sampling according to program phase behavior via HPS, our system is able to collect highly accurate profiles transparently. We evaluate our system assuming a general purpose configuration as well as a popular handheld device configuration. We measure the accuracy and overhead of our techniques and quantify the overhead in terms of computation, communication, and power consumption. We compare our system to random and periodic sampling for a number of widely used performance profile types. Our results indicate that our system significantly reduces the overhead of sampling while maintaining high accuracy.


international conference on parallel architectures and compilation techniques | 2007

Language and Virtual Machine Support for Efficient Fine-Grained Futures in Java

Lingli Zhang; Chandra Krintz; Priya Nagpurkar

In this work, we investigate the implementation of futures in Java J2SE v 5.0. Java 5.0 provides an interface-based implementation of futures that enables users to encapsulate potentially asynchronous computation and to define their own execution engines for futures. Although this methodology decouples thread scheduling from application logic, for applications with fine-grained parallelism, this model imposes an undue burden on the average users and introduces significant performance overhead. To address these issues, we investigate the use of lazy futures and offer an alternative implementation to the Java 5.0 approach. In particular, we present a directive-based programming model for using futures in Java that uses annotations in Java 5.0 (as opposed to interfaces) and a lazy future implementation to significantly simplify programmer effort. Our directive-based future system employs novel compilation and runtime techniques that transparently and adaptively split and spawn futures for parallel execution. All such decisions are automatic and guided by dynamically determined future granularity and underlying resource availability. We empirically evaluate our future implementation using different Java Virtual Machine configurations and common Java benchmarks that implement fine-grained parallelism. We compare directive-based lazy futures with lazy and Java 5.0 futures and show that our approach is significantly more scalable.


Science of Computer Programming | 2006

Phase-based visualization and analysis of Java programs

Priya Nagpurkar; Chandra Krintz

Extant Java Virtual Machines (JVMs) apply dynamic compiler optimizations adaptively, based on the partial execution of the program, with the goal of improving performance. Understanding and characterizing program behavior is of vital importance to such systems. Recent research, primarily in the area of computer architecture, has identified potential optimization opportunities in the repeating patterns in the time-varying behavior of programs. In view of this, we believe that by considering time-varying, i.e., phase, behavior in Java programs, adaptive JVMs can enable performance that exceeds current levels.To enable analysis and visualization of phase behavior in Java programs and to facilitate optimization development, we have implemented a freely available, offline, phase analysis framework within the IBM Jikes Research Virtual Machine (JikesRVM) for Java. The framework couples existing techniques into a unifying set of tools for data collection, processing, and analysis of dynamic phase behavior in Java programs. The framework enables optimization developers to significantly reduce analysis time and to target adaptive optimization to parts of the code that will recur with sufficient regularity. We use the framework to evaluate phase behavior in the SpecJVM benchmark suite and discuss optimizations that are enabled by the framework.


international conference on parallel architectures and compilation techniques | 2007

Call-chain Software Instruction Prefetching in J2EE Server Applications

Priya Nagpurkar; Harold W. Cain; Mauricio J. Serrano; Jong-Deok Choi; Chandra Krintz

We present a detailed characterization of instruction cache performance for IBMs J2EE-enabled Web server, WebSphere Application Server (WAS). When running two J2EE benchmarks on WebSphere, we find that instruction cache misses cause a 12% performance penalty on current-generation Power5-based multiprocessor systems. To mitigate this performance loss, we describe a new call-chain based algorithm for inserting software prefetch instructions, and evaluate its potential for improved instruction cache performance. The performance of this algorithm depends on the selection of several independent parameters which control the distance and number of prefetches inserted for a particular method. We select these parameters through characterization of the WebSphere applications, and ultimately find that our call-chain based insertion algorithm achieves significant reduction in instruction cache miss rate for Java methods.


Archive | 2007

Analysis, detection, and exploitation of phase behavior in java programs

Chandra Krintz; Priya Nagpurkar


principles and practice of programming in java | 2004

Visualization and analysis of phased behavior in Java programs

Priya Nagpurkar; Chandra Krintz

Collaboration


Dive into the Priya Nagpurkar's collaboration.

Top Co-Authors

Avatar

Chandra Krintz

University of California

View shared research outputs
Top Co-Authors

Avatar

Lingli Zhang

University of California

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Ben Y. Zhao

University of California

View shared research outputs
Top Co-Authors

Avatar

Harold W. Cain

University of California

View shared research outputs
Top Co-Authors

Avatar

Hussam Mousa

University of California

View shared research outputs
Top Co-Authors

Avatar

Selim Gurun

University of California

View shared research outputs
Researchain Logo
Decentralizing Knowledge