Search For:

Displaying 1-33 out of 33 total
Flow-sensitive pointer analysis for millions of lines of code
Found in: Code Generation and Optimization, IEEE/ACM International Symposium on
By Ben Hardekopf, Calvin Lin
Issue Date:April 2011
pp. 289-298
Many program analyses benefit, both in precision and performance, from precise pointer analysis. An important dimension of pointer analysis precision is flow-sensitivity, which has been shown to be useful for applications such as program verification and s...
Midas for government: Integration of government spending data on Hadoop
Found in: Data Engineering Workshops, 22nd International Conference on
By Antonio Sala, Calvin Lin, Howard Ho
Issue Date:March 2010
pp. 163-166
We describe our experience in developing a Hadoop based integration flow to collect and integrate publicly available government datasets related to government spending. The objective is to enable users, U.S. taxpayers in this case, to easily access the dat...
Dynamic Ray Scheduling to Improve Ray Coherence and Bandwidth Utilization
Found in: Symposium on Interactive Ray Tracing
By Paul Arthur Navratil, Donald S. Fussell, Calvin Lin, William R. Mark
Issue Date:September 2007
pp. 95-104
The performance of full-featured ray tracers has historically been limited by the hardware
Memory Prefetching Using Adaptive Stream Detection
Found in: Microarchitecture, IEEE/ACM International Symposium on
By Ibrahim Hur, Calvin Lin
Issue Date:December 2006
pp. 397-408
We present Adaptive Stream Detection, a simple technique for modulating the aggressiveness of a stream prefetcher to match a workload?s observed spatial locality. We use this concept to design a prefetcher that resides on an on-chip memory controller. The ...
Adaptive History-Based Memory Schedulers for Modern Processors
Found in: IEEE Micro
By Ibrahim Hur, Calvin Lin
Issue Date:January 2006
pp. 22-29
Careful memory scheduling can increase memory bandwidth and overall system performance. We present a new memory scheduler that makes decisions based on the history of recently scheduled operations, providing two advantages: It can better reason about the d...
Adaptive History-Based Memory Schedulers
Found in: Microarchitecture, IEEE/ACM International Symposium on
By Ibrahim Hur, Calvin Lin
Issue Date:December 2004
pp. 343-354
As memory performance becomes increasingly important to overall system performance, the need to carefully schedule memory operations also increases. This paper presents a new approach to memory scheduling that considers the history of recently scheduled op...
Static Placement, Dynamic Issue (SPDI) Scheduling for EDGE Architectures
Found in: Parallel Architectures and Compilation Techniques, International Conference on
By Ramadass Nagarajan, Sundeep K. Kushwaha, Doug Burger, Kathryn S. McKinley, Calvin Lin, Stephen W. Keckler
Issue Date:October 2004
pp. 74-84
Technology trends present new challenges for processor architectures and their instruction schedulers. Growing transistor density will increase the number of execution units on a single chip, and decreasing wire transmission speeds will cause long and vari...
Scaling to the End of Silicon with EDGE Architectures
Found in: Computer
By Doug Burger, Stephen W. Keckler, Kathryn S. McKinley, Mike Dahlin, Lizy K. John, Calvin Lin, Charles R. Moore, James Burrill, Robert G. McDonald, William Yoder, the TRIPS Team
Issue Date:July 2004
pp. 44-55
Post-RISC microprocessor designs must introduce new ISAs to address the challenges that modern CMOS technologies pose while also exploiting the massive levels of integration now possible. To meet these challenges, the TRIPS Team at the University of Texas ...
Boolean Formula-Based Branch Prediction for Future Technologies
Found in: Parallel Architectures and Compilation Techniques, International Conference on
By Daniel A. Jiménez, Heather L. Hanson, Calvin Lin
Issue Date:September 2001
pp. 0097
Abstract: We present a new method for branch prediction that encodes in the branch instruction a formula, chosen by profiling, that is used to perform history-based prediction. By using a special class of Boolean formulas, our encoding is extremely concise...
Dynamic Branch Prediction with Perceptrons
Found in: High-Performance Computer Architecture, International Symposium on
By Daniel A. Jiménez, Calvin Lin
Issue Date:January 2001
pp. 0197
Abstract: This paper presents a new method for branch prediction. The key idea is to use one of the simplest possible neural networks,the perceptron, as an alternative to the commonly used two-bit counters.Our predictor achieves increased accuracy by makin...
Volume Leases for Consistency in Large-Scale Systems
Found in: IEEE Transactions on Knowledge and Data Engineering
By Jian Yin, Lorenzo Alvisi, Michael Dahlin, Calvin Lin
Issue Date:July 1999
pp. 563-576
<p><b>Abstract</b>—This article introduces <it>volume leases</it> as a mechanism for providing server-driven cache consistency for large-scale, geographically distributed networks. Volume leases retain the good performance, fa...
A System for Evaluating Performance and Cost of SIMD Array Designs
Found in: Frontiers of Massively Parallel Processing, Symposium on the
By Martin C. Herbordt, Jade Cravy, Renoy Sam, Owais Kidwai, Calvin Lin
Issue Date:February 1999
pp. 16
SIMD arrays are likely to become increasingly important as coprocessors in domain specific systems as architects continue to leverage RAM technology in their design. The problem this work addresses is the evaluation of SIMD arrays with respect to complex a...
The Case for High-Level Parallel Programming in ZPL
Found in: Computing in Science and Engineering
By Bradford L. Chamberlain, Sung-Eun Choi, E Christopher Lewis, Lawrence Snyder, W. Derrick Weathersby, Calvin Lin
Issue Date:July 1998
pp. 76-86
The authors argue that we must continue to seek new high-level languages to reduce the programming effort of using high-performance architectures. Message-passing programs are efficient, but fall short on portability and performance. The authors claim that...
Abstractions for Portable, Scalable Parallel Programming
Found in: IEEE Transactions on Parallel and Distributed Systems
By Gail A. Alverson, William G. Griswold, Calvin Lin, David Notkin, Lawrence Snyder
Issue Date:January 1998
pp. 71-86
<p><b>Abstract</b>—In parallel programming, the need to manage communication, load imbalance, and irregularities in the computation puts substantial demands on the programmer. Key properties of the architecture, such as the number of proc...
Seuss: What the Doctor Ordered
Found in: Software Engineering for Parallel and Distributed Systems, International Symposium on
By Lorenzo Alvisi, Rajeev Joshi, Calvin Lin, Jayadev Misra
Issue Date:May 1997
pp. 284
Reconciling the conflicting goals of simplicity and efficiency has traditionally been a major challenge in the development of concurrent programs. Seuss is a methodology for concurrent programming that attempts to achieve the right balance between these co...
Comparing Frameworks and Layered Refinement
Found in: Software Engineering, International Conference on
By Richard Cardone, Calvin Lin
Issue Date:May 2001
pp. 0285
Abstract: Object-oriented frameworks are a popular mechanism for building and evolving large applications and software product lines. This paper describes an alternative approach to software construction, Java Layers (JL), and evaluates JL and frameworks i...
The Impact of Delay on the Design of Branch Predictors
Found in: Microarchitecture, IEEE/ACM International Symposium on
By Daniel A. JimCnez, Stephen W. Keckler, Calvin Lin
Issue Date:December 2000
pp. 67
Modern microprocessors employ increasingly complicated branch predictors to achieve instruction fetch bandwidth that is suj5cient for wide out-of-order execution cores. While existing predictors can still be accessed in a single clock cycle, recent studies...
Control for High-Speed PE Arrays
Found in: Application-Specific Systems, Architectures and Processors, IEEE International Conference on
By Martin C. Herbordt, Honghai Zhang, Calvin Lin, Hong Rao, Jade Cravy
Issue Date:July 2000
pp. 247
Although arrays of SIMD PEs can be built with very high operating frequencies, problems exist in keeping the array busy. The inherent mismatch between host and array makes it difficult to maintain high array utilization: either the rate of instruction issu...
Linearizing irregular memory accesses for improved correlated prefetching
Found in: Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-46)
By Calvin Lin, Akanksha Jain
Issue Date:December 2013
pp. 247-259
This paper introduces the Irregular Stream Buffer (ISB), a prefetcher that targets irregular sequences of temporally correlated memory references. The key idea is to use an extra level of indirection to translate arbitrary pairs of correlated physical addr...
Using cargo-bot to provide contextualized learning of recursion
Found in: Proceedings of the ninth annual international ACM conference on International computing education research (ICER '13)
By Bradley Beth, Calvin Lin, Joe Tessler
Issue Date:August 2013
pp. 161-168
This paper presents a new method of teaching recursion in which students first play a video game to contextualize recursive operations. Results from a controlled experiment with 47 high school students taking AP Computer Science A indicate that this instru...
Using peer review to teach software testing
Found in: Proceedings of the ninth annual international conference on International computing education research (ICER '12)
By Calvin Lin, Elliot Kramer, Joanna Smith, Joe Tessler
Issue Date:September 2012
pp. 93-98
This paper explains how peer review can be used to teach software testing, an important skill that is typically not carefully taught in most programming courses. The goals of such peer review are (1) to frame testing as a fun and competitive activity, (2) ...
Semi-sparse flow-sensitive pointer analysis
Found in: Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL '09)
By Ben Hardekopf, Calvin Lin
Issue Date:January 2009
pp. 1-2
Pointer analysis is a prerequisite for many program analyses, and the effectiveness of these analyses depends on the precision of the pointer information they receive. Two major axes of pointer analysis precision are flow-sensitivity and context-sensitivit...
Efficient and extensible security enforcement using dynamic data flow analysis
Found in: Proceedings of the 15th ACM conference on Computer and communications security (CCS '08)
By Brandon Streiff, Calvin Lin, Walter Chang
Issue Date:October 2008
pp. 79-79
Current taint tracking systems suffer from high overhead and a lack of generality. In this paper, we solve both of these issues with an extensible system that is an order of magnitude more efficient than previous software taint tracking systems and is full...
Memory scheduling for modern microprocessors
Found in: ACM Transactions on Computer Systems (TOCS)
By Calvin Lin
Issue Date:December 2007
pp. 10-es
The need to carefully schedule memory operations has increased as memory performance has become increasingly important to overall system performance. This article describes the adaptive history-based (AHB) scheduler, which uses the history of recently sche...
The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code
Found in: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation (PLDI '07)
By Ben Hardekopf, Calvin Lin
Issue Date:June 2007
pp. 290-299
Pointer information is a prerequisite for most program analyses, and the quality of this information can greatly affect their precision and performance. Inclusion-based (i.e. Andersen-style) pointer analysis is an important point in the space of pointer an...
Decomposing memory performance: data structures and phases
Found in: Proceedings of the 2006 international symposium on Memory management (ISMM '06)
By Calvin Lin, Kartik K. Agaram, Kathryn S. McKinley, Stephen W. Keckler
Issue Date:June 2006
pp. 95-103
The memory hierarchy continues to have a substantial effect on application performance. This paper explores the potential of high-level application understanding in improving the performance of modern memory hierarchies, decomposing the often-chaotic addre...
Compiler-generated staggered checkpointing
Found in: Proceedings of the 7th workshop on Workshop on languages, compilers, and run-time support for scalable systems (LCR '04)
By Alison N. Norman, Calvin Lin, Sung-Eun Choi
Issue Date:October 2004
pp. 1-8
To minimize work lost due to system failures, large parallel applications perform periodic checkpoints. These checkpoints are typically inserted manually by application programmers, resulting in synchronous checkpoints, or checkpoints that occur at the sam...
Using mixins to build flexible widgets
Found in: Proceedings of the 1st international conference on Aspect-oriented software development (AOSD '02)
By Adam Brown, Calvin Lin, Richard Cardone, Sean McDirmid
Issue Date:April 2002
pp. 76-85
When it comes to software that runs on devices as varied as cell phones, PDAs and desktops, one size does not fit all. This paper describes how mixin layers, a kind of nested generic type, can be used to implement a graphical user interface library that ca...
An annotation language for optimizing software libraries
Found in: Proceedings of the 2nd conference on Domain-specific languages (PLAN '99)
By Calvin Lin, Samuel Z. Guyer
Issue Date:October 1999
pp. 157
This paper introduces an annotation language and a compiler that together can customize a library implementation for specific application needs. Our approach is distinguished by its ability to exploit high level, domain-specific information in the customiz...
Regions: an abstraction for expressing array computation
Found in: Proceedings of the conference on APL '99 : On track to the 21st century: On track to the 21st century (APL '99)
By Bradford L. Chamberlain, Calvin Lin, E. Christopher Lewis, Lawrence Snyder
Issue Date:August 1999
pp. 122-140
Most array languages, including Fortran 90, Matlab, and APL, provide support for referencing arrays by extending the traditional array subscripting construct found in scalar languages. We present an alternative to subscripting that exploits the concept of ...
The implementation and evaluation of fusion and contraction in array languages
Found in: Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation (PLDI '98)
By Calvin Lin, E. Christopher Lewis, Lawrence Snyder
Issue Date:June 1998
pp. 329-338
Array languages such as Fortran 90, HPF and ZPL have many benefits in simplifying array-based computations and expressing data parallelism. However, they can suffer large performance penalties because they introduce intermediate arrays---both at the source...
The portable parallel implementation of two novel mathematical biology algorithms in ZPL
Found in: Proceedings of the 9th international conference on Supercomputing (ICS '95)
By Calvin Lin, Daphne Manoussaki, Diana E. Woodward, Marios D. Dikaiakos
Issue Date:July 1995
pp. 365-374
To minimize the amount of computation and storage for parallel sparse factorization, sparse matrices have to be reordered prior to factorization. We show that none of the popular ordering heuristics proposed before, namely, mulitple minimum degree and nest...
The Ariadne debugger: scalable application of event-based abstraction
Found in: Proceedings of the 1993 ACM/ONR workshop on Parallel and distributed debugging (PADD '93)
By Alfred Hough, Calvin Lin, David Stemple, George Forman, Janice Cuny, Joydip Kundu, Lawrence Snyder
Issue Date:May 1993
pp. 109-116
We describe a novel approach to the design of portable integrated debugging tools for concurrent languages. Our design partitions the tools set into two categories. The language specific tools take into account the particular features of a programming lang...