Network


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

Hotspot


Dive into the research topics where Pramod G. Joisha is active.

Publication


Featured researches published by Pramod G. Joisha.


Proceedings of the 2011 ACM SIGPLAN Workshop on Memory Systems Performance and Correctness | 2011

Extended sequential reasoning for data-race-free programs

Laura Effinger-Dean; Hans-Juergen Boehm; Dhruva R. Chakrabarti; Pramod G. Joisha

Most multithreaded programming languages prohibit or discourage data races. By avoiding data races, we are guaranteed that variables accessed within a synchronization-free code region cannot be modified by other threads, allowing us to reason about such code regions as though they were single-threaded. However, such single-threaded reasoning is not limited to synchronization-free regions. We present a simple characterization of extended interference-free regions in which variables cannot be modified by other threads. This characterization shows that, in the absence of data races, important code analysis problems often have surprisingly easy answers. For instance, we can use local analysis to determine when lock and unlock calls refer to the same mutex. Our characterization can be derived from prior work on safe compiler transformations, but it can also be simply derived from first principles, and justified in a very broad context. In addition, systematic reasoning about overlapping interference-free regions yields insight about optimization opportunities that were not previously apparent. We give preliminary results for a prototype implementation of interference-free regions in the LLVM compiler infrastructure. We also discuss other potential applications for interference-free regions.


virtual execution environments | 2008

A principled approach to nondeferred reference-counting garbage collection

Pramod G. Joisha

Nondeferred reference-counting (RC) garbage collection is among the oldest memory-management methods. Despite offering unique advantages, little attention has been paid on how to correctly implement it for modern programming languages. This paper revisits this collection method and describes how to implement it for a modern object-oriented language in an optimizing compiler. The main contribution is a general algorithm that realizes one form of nondeferred RC collection for an object-oriented language having features such as exceptions, interior pointers, and object pinning. The algorithm abstracts the pertinent characteristics of instructions using concepts from data-flow analysis, such as def/use information, so that instructions are handled in a uniform manner, instead of in an ad hoc or special-case way. The abstracted information is used to systematically compute what increments and decrements to do, even in the presence of subtle conditions such as exceptional control flow. These techniques enabled us to compile a large suite of programs to use nondeferred RC collection. The paper also discusses the modifications that were necessary in the compiler for supporting the inserted RC operations, and reports measurements from a reference implementation.


symposium on code generation and optimization | 2011

The runtime abort graph and its application to software transactional memory optimization

Dhruva R. Chakrabarti; Prithviraj Banerjee; Hans-Juergen Boehm; Pramod G. Joisha; Robert Schreiber

Programming with atomic sections is a promising alternative to locks since it raises the abstraction and removes deadlocks at the programmer level. However, implementations of atomic sections using software transactional memory (STM) support have significant bookkeeping overheads. Additionally, because of the speculative nature of transactions, aborts can be frequent greatly lowering application performance. Thus regardless of the STM implementation, tools need to be available to programmers that provide insights into the runtime characteristics of an application as well as provide means to improve performance. This paper attempts to identify the source of an abort at the granularity of a transactional memory reference. The resulting abort patterns are captured in the form of a runtime abort graph (RAG). We show how to build this graph efficiently using compiler instrumentation. We then describe a technique that works on the RAG and automatically recommends STM policy changes to improve performance. Detailed experimental results are presented showing the tradeoffs in building the RAG and its use in reducing aborts and improving performance.


international symposium on memory management | 2014

Sticky tries: fast insertions, fast lookups, no deletions for large key universes

Pramod G. Joisha

We present the sticky trie, a new variant of the standard trie data structure that achieves high-performing atomic insertions and lookups for large key universes by precluding deletions. It has applications in several areas, including address tracking, logging, and garbage collection. By leveraging features of a modern operating system, we show how a runtime can exploit the absence of deletions to realize an efficient sticky-trie implementation. We report on an evaluation of two representative uses---compelling Bloom-filter alternative and fast substitute for a garbage collectors sequential store buffer (SSB). We demonstrate that a sticky trie, when compared with what is perhaps among the simplest Bloom filters, can be over 43% faster, scale substantially better with increasing threads, and yet be free of false positives. By introducing the concept of an ideal SSB, we also demonstrate that a sticky trie could be competitive in performance with a class of SSBs.


ACM Transactions on Programming Languages and Systems | 2012

On a Technique for Transparently Empowering Classical Compiler Optimizations on Multithreaded Code

Pramod G. Joisha; Robert Schreiber; Prithviraj Banerjee; Hans-Juergen Boehm; Dhruva R. Chakrabarti

A large body of data-flow analyses exists for analyzing and optimizing sequential code. Unfortunately, much of it cannot be directly applied on parallel code, for reasons of correctness. This article presents a technique to automatically, aggressively, yet safely apply sequentially-sound data-flow transformations, without change, on shared-memory programs. The technique is founded on the notion of program references being “siloed” on certain control-flow paths. Intuitively, siloed references are free of interference from other threads within the confines of such paths. Data-flow transformations can, in general, be unblocked on siloed references. The solution has been implemented in a widely used compiler. Results on benchmarks from SPLASH-2 show that performance improvements of up to 41% are possible, with an average improvement of 6% across all the tested programs over all thread counts.


symposium on principles of programming languages | 2011

A technique for the effective and automatic reuse of classical compiler optimizations on multithreaded code

Pramod G. Joisha; Robert Schreiber; Prithviraj Banerjee; Hans-Juergen Boehm; Dhruva R. Chakrabarti


Archive | 2012

MERGING ARRAYS USING SHIFTABLE MEMORY

Pramod G. Joisha


Archive | 2010

Sequential-Code Optimization of Parallel Code Based on Identifying Siloed Program References

Pramod G. Joisha; Robert Schreiber; Prithviraj Banerjee; Hans Boehm; Dhruva R. Chakrabarti


Archive | 2013

DISTRIBUTED IMPLEMENTATION OF SEQUENTIAL CODE THAT INCLUDES A FUTURE

Pramod G. Joisha


Archive | 1999

A matlab compiler for configurable computing systems

Prithviraj Banerjee; U. Nagaraj Shenoy; Alok N. Choudhary; Scott Hauck; Charles M. Bachmann; Ming-Kang Chang; Malay Haldar; Pramod G. Joisha; Abhay Kanhere; Amiya R. Nayak; S. Periyacheri; Mike J. A. Walkden

Collaboration


Dive into the Pramod G. Joisha's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Malay Haldar

Northwestern University

View shared research outputs
Researchain Logo
Decentralizing Knowledge