Kathleen Knobe

dblp:32/4879 · DBLP profile ↗
← Back
19ranked-venue papers
5as first author
0since 2021 · last 2016
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 13 · 4 first-authorSoftware engineering, systems software and programming languages · 3 · 1 first-authorComputer networks · 1Theory of computation · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
5 papers
Parallel and multicore computing · 60% High-performance computing · 28% Distributed systems · 11%
Software engineering, system software, and programming languages
3 papers
Compilers and program optimization · 55% Program analysis · 18% Operating systems · 16%

Topics — the 17 heaviest of 20, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel algorithms › parallel algorithm design
asynchronous parallel algorithms
0.112010
Applying the concurrent collections programming model to asynchronous parallel dense linear algebra · PPoPP 2010
High-performance computing › numerical linear algebra
dense linear algebra
0.112010
Applying the concurrent collections programming model to asynchronous parallel dense linear algebra · PPoPP 2010
Parallel and multicore computing
programming models
0.112010
Applying the concurrent collections programming model to asynchronous parallel dense linear algebra · PPoPP 2010
Distributed systems › distributed object systems
distributed garbage collection
0.112006
Distributed Garbage Collection Algorithms for Timestamped Data · IEEE Trans. Parallel Distributed Syst. 2006
High-performance computing › sparse linear solver
cholesky factorization
0.012010
Applying the concurrent collections programming model to asynchronous parallel dense linear algebra · PPoPP 2010
Parallel and multicore computing
parallel programming models
0.011999
Space-Time Memory: A Parallel Programming Abstraction for Interactive Multimedia Applications · PPoPP 1999
Parallel and multicore computing
task scheduling
0.011999
Scheduling Constrained Dynamic Applications on Clusters · SC 1999
Compilers and program optimization › parallelization
automatic parallelization
0.011998
Array SSA Form and Its Use in Parallelization · POPL 1998
Program analysis
data flow analysis
0.011998
Array SSA Form and Its Use in Parallelization · POPL 1998
Compilers and program optimization › parallelization › automatic parallelization
loop parallelization
0.011998
Array SSA Form and Its Use in Parallelization · POPL 1998
Compilers and program optimization › intermediate representation
static single assignment form
0.011998
Array SSA Form and Its Use in Parallelization · POPL 1998
Operating systems › resource management
memory management
0.012006
Distributed Garbage Collection Algorithms for Timestamped Data · IEEE Trans. Parallel Distributed Syst. 2006
High-performance computing
cluster computing
0.012003
Stampede: A Cluster Programming Middleware for Interactive Stream-Oriented Applications · IEEE Trans. Parallel Distributed Syst. 2003
Cloud and datacenter computing › cluster resource management and scheduling
cluster resource management
0.011999
Scheduling Constrained Dynamic Applications on Clusters · SC 1999
Parallel and multicore computing
parallel programming runtimes
0.011999
Space-Time Memory: A Parallel Programming Abstraction for Interactive Multimedia Applications · PPoPP 1999
Automata and formal languages › grammatical inference
context-free grammar learning
0.011976
A Method for Inferring Context-free Grammars · Inf. Control. 1976
Automata and formal languages
grammatical inference
0.011976
A Method for Inferring Context-free Grammars · Inf. Control. 1976

Methods — techniques the papers use, named apart from their topics

reference counting · 0.1low watermark computation · 0.1dependency analysis · 0.1semantic scheduling constraints · 0.1garbage collection · 0.1data flow graph · 0.1optimal scheduling framework · 0.0inter-thread synchronization · 0.0buffer management · 0.0
YearPublicationVenuePosition
2016 Declarative Tuning for Locality in Parallel Programs
abstract
Optimized placement of data and computation for locality is critical for improving performance and reducing energy consumption on modern computing systems. However, for most programming models, modifying data and computation placements typically requires rewriting large portions of the application, thereby posing a huge performance portability challenge in today's rapidly evolving architecture landscape. In this paper we present TunedCnC, a novel, declarative and flexible CnC tuning framework for controlling the spatial and temporal placement of data and computation by specifying hierarchical affinity groups and distribution functions. TunedCnC emphasizes a separation of concerns: the domain expert specifies a parallel application by defining data and control dependences, while the tuning expert specifies how the application should be executed on a given architecture - defining when and where for data and computation placement. The application remains unchanged when tuned for a different platform or towards different performance goals. We evaluate the utility of TunedCnC on several applications, and demonstrate that varying the tuning specification can have a significant impact on an application's performance. Our evaluation is performed using an implementation of the Concurrent Collections (CnC) declarative parallel programming model, but our results should be applicable to tuning of other data-flow task-parallel programming models as well.
Sanjay Chatterjee, Nick Vrvilo, Zoran Budimlic, Kathleen Knobe, Vivek Sarkar
ICPP4
2013 Concurrent Collections on Distributed Memory Theory Put into Practice
abstract
Finding and expressing scalable parallelism is a non-trivial task, in fact it is one of the most difficult parts of software development. Concurrent Collections (CnC) is a novel programming model which aims to make this easy. Its higher level abstractions expose available parallelism implicitly through specifying the semantically required dependencies between individual computation kernels. It has been shown conceptually to be deterministic, independent of the target platform and to separate program semantics from tuning. While abstractly evident, there have been no concrete implementations yet which show that these concepts are actually generally exploitable in practice. We developed an implementation of CnC which exposes these benefits in a single model for both shared and distributed memory. Additionally, we provide a tuning interface which allows defining and optimizing distribution plans easily and flexibly. Unlike most approaches, our implementation allows changing the distribution without altering the computation code itself. This makes the development very productive because it separates the concerns of program semantics and tuning. Last but not least, we show that the new mechanisms not only preserve CnC's deterministic model but are also capable of providing competitive performance. We ported several applications and ran them on a cluster of multi-cores. Our results show that CnC performance matches and often outperforms that of existing state-of-the-art models.
Frank Schlimbach, James C. Brodman, Kathleen Knobe
PDP3
2012 Folding of Tagged Single Assignment Values for Memory-Efficient Parallelism
Dragos Sbirlea, Kathleen Knobe, Vivek Sarkar
Euro-Par2
2010 Performance evaluation of concurrent collections on high-performance multicore computing systems
abstract
This paper is the first extensive performance study of a recently proposed parallel programming model, called Concurrent Collections (CnC). In CnC, the programmer expresses her computation in terms of application-specific operations, partially-ordered by semantic scheduling constraints. The CnC model is well-suited to expressing asynchronous-parallel algorithms, so we evaluate CnC using two dense linear algebra algorithms in this style for execution on state-of-the-art multicore systems: (i) a recently proposed asynchronous-parallel Cholesky factorization algorithm, (ii) a novel and non-trivial ¿higher-level¿ partly-asynchronous generalized eigensolver for dense symmetric matrices. Given a well-tuned sequential BLAS, our implementations match or exceed competing multithreaded vendor-tuned codes by up to 2.6×. Our evaluation compares with alternative models, including ScaLAPACK with a shared memory MPI, OpenMP, Cilk++, and PLASMA 2.0, on Intel Harpertown, Nehalem, and AMD Barcelona systems. Looking forward, we identify new opportunities to improve the CnC language and runtime scheduling and execution.
Aparna Chandramowlishwaran, Kathleen Knobe, Richard W. Vuduc
IPDPS2
2010 Applying the concurrent collections programming model to asynchronous parallel dense linear algebra
abstract
This poster is a case study on the application of a novel programming model, called Concurrent Collections (CnC), to the implementation of an asynchronous-parallel algorithm for computing the Cholesky factorization of dense matrices. In CnC, the programmer expresses her computation in terms of application-specific operations, partially-ordered by semantic scheduling constraints. We demonstrate the performance potential of CnC in this poster, by showing that our Cholesky implementation nearly matches or exceeds competing vendor-tuned codes and alternative programming models. We conclude that the CnC model is well-suited for expressing asynchronous-parallel algorithms on emerging multicore systems.
Aparna Chandramowlishwaran, Kathleen Knobe, Richard W. Vuduc
PPoPP2
2007 Use of Dependency Information for Memory Optimizations in Distributed Streaming Applications
abstract
In this paper we explore the potential of using application data dependency information to reduce the average memory consumption in distributed streaming applications. By analyzing data dependencies during the application runtime, we can infer which data items are not going to influence the application's output. This information is then incorporated into the garbage collector, extending the garbage identification problem to include not only data items that are not reachable, but also those data items that are not fully processed and dropped. We present three garbage collection algorithms. Each of the algorithms uses different data dependency information. We implement the algorithms and compare their performance for a color tracker application. Our results show that these algorithms not only succeed in substantially reducing the average memory usage but also improve the overall performance of the application. The results also indicate that the garbage identification algorithms that achieve a low memory footprint perform their garbage identification decisions locally; however, they base these decisions on best-effort global information. The results also indicate that the garbage identification algorithms perform best when they base their decisions on best-effort global information obtained from other components of the distributed application.
Nissim Harel, Hasnain A. Mandviwala, Umakishore Ramachandran, Kathleen Knobe
ICCCN4
2007 Methods of Memory Optimizations in Streaming Applications
abstract
Streaming applications are often distributed, manage large quantities of data and, as a result, have large memory requirements. Therefore, efficient garbage collection (GC) is crucial for their performance. On the other hand, not all data items affect the application output due to differences in the processing rates of various application threads. In this paper we propose extending the definition of the garbage identification problem for streaming applications and include not only data items that are not "reachable " but also data items that have no effect on the final outcome of the application. We present four optimizations to an existing GC algorithm in Stampede, a parallel programming system to support interactive multimedia applications. We ask the question how far off these algorithms are from an ideal garbage collector, one in which the memory usage exactly equals the amount required for buffering only the relevant data items. This oracle, while unimplementable, serves as an empirical lower-bound for memory usage. We then propose optimizations that will help us get closer to this lower- bound. Using an elaborate measurement and post-mortem analysis infrastructure, we simulate the performance potential for these optimizations and implement the most promising ones. A color-based people tracking application is used for the performance evaluation. Our results show that these optimizations reduce the memory usage by up to 60%.
Nissim Harel, Hasnain A. Mandviwala, Kathleen Knobe, Umakishore Ramachandran
ICPP3
2006 Distributed Garbage Collection Algorithms for Timestamped Data
abstract
There is an important class of interactive multimedia applications that deals with stream data from distributed sources. Indexing the data temporally facilitates ordering individual streams as well as correlating items from different streams. The Stampede programming system organizes stream data into channels that are distributed and synchronized data structures that contain timestamped items. A stampede program is a data flow graph of threads and channels. Stampede semantics for channels allow concurrent access from multiple threads for input and output. While a channel holds timestamped items, the semantics do not place any restriction on either the production or consumption order of these items. Furthermore, timestamps of items in a channel need not be contiguous. These flexibilities are required due to the dynamic and parallel structure of stream-oriented applications targeted by the stampede system. Under such circumstances, a key issue is the "garbage collection" (GC) of channel items. In this paper, we present and compare three different GC algorithms: 1) REF is a simple algorithm that keeps a reference count on individual items; 2) TGC is a distributed algorithm for computing a global low watermark for timestamp values of interest in the entire application; 3) DGC is another distributed algorithm that uses information about the dependencies between the producers and consumers of data streams to compute a low water mark local to each node of the data flow graph. DGC can simultaneously eliminate garbage from channels and unneeded computations from threads, in tests performed using an interactive application, DGC enjoys nearly 30 percent reduction in the application memory footprint, compared, to TGC and REF. DGC and REF are also shown to be more scalable compared to TGC
Umakishore Ramachandran, Kathleen Knobe, Nissim Harel, Hasnain A. Mandviwala
IEEE Trans. Parallel Distributed Syst.2
2003 Stampede: A Cluster Programming Middleware for Interactive Stream-Oriented Applications
abstract
Emerging application domains such as interactive vision, animation, and multimedia collaboration display dynamic scalable parallelism and high-computational requirements, making them good candidates for executing on parallel architectures such as SMPs and clusters of SMPs. Stampede is a programming system that has many of the needed functionalities such as high-level data sharing, dynamic cluster-wide threads and their synchronization, support for task and data parallelism, handling of time-sequenced data items, and automatic buffer management. We present an overview of Stampede, the primary data abstractions, the algorithmic basis of garbage collection, and the issues in implementing these abstractions on a cluster of SMPs. We also present a set of micromeasurements along with two multimedia applications implemented on top of Stampede, through which we demonstrate the low overhead of this runtime and that it is suitable for the streaming multimedia applications.
Umakishore Ramachandran, Rishiyur S. Nikhil, James M. Rehg, Yavor Angelov, Arnab Paul, Sameer Adhikari, Kenneth M. Mackenzie, Nissim Harel, Kathleen Knobe
IEEE Trans. Parallel Distributed Syst.9
2002 Dead Timestamp Identification in Stampede
abstract
Stampede is a parallel programming system to support computationally demanding applications including interactive vision, speech and multimedia collaboration. The system alleviates concerns such as communication, synchronization, and buffer management in programming such real-time stream-oriented applications. Threads are loosely connected by channels that hold timestamped data items. There are two performance concerns when programming with Stampede. The first is space, namely, ensuring that memory is not wasted on items that are not fully processed. The second is time, namely, ensuring that processing resource is not wasted on a timestamp that is not fully processed. In this paper we introduce a single unifying framework, dead timestamp identification, that addresses both the space and time concerns simultaneously. Dead timestamps on a channel represent garbage. Dead timestamps at a thread represent computations that need not be performed. This framework has been implemented in the Stampede system. Experimental results showing the space advantage of this framework are presented. Using a color-based people tracker application, we show that the space advantage can be significant (up to 40%) compared to the previous garbage collection techniques in Stampede.
Nissim Harel, Hasnain A. Mandviwala, Kathleen Knobe, Umakishore Ramachandran
ICPP3
2000 Unified Analysis of Array and Object References in Strongly Typed Languages
Stephen J. Fink, Kathleen Knobe, Vivek Sarkar
SAS2
1999 Space-Time Memory: A Parallel Programming Abstraction for Interactive Multimedia Applications
abstract
Realistic interactive multimedia involving vision, animation, and multimedia collaboration is likely to become an important aspect of future computer applications. The scalable parallelism inherent in such applications coupled with their computational demands make them ideal candidates for SMPs and clusters of SMPs. These applications have novel requirements that offer new kinds of challenges for parallel system design.We have designed a programming system called Stampede that offers many functionalities needed to simplify development of such applications (such as high-level data sharing abstractions, dynamic cluster-wide threads, and multiple address spaces). We have built Stampede and it runs on clusters of SMPs. To date we have implemented two applications on Stampede, one of which is discussed herein.In this paper we describe a part of Stampede called Space-Time Memory (STM). It is a novel data sharing abstraction that enables interactive multimedia applications to manage a collection of time-sequenced data items simply, efficiently, and transparently across a cluster. STM relieves the application programmer from low level synchronization and data communication by providing a high level interface that subsumes buffer management, inter-thread synchronization, and location transparency for data produced and accessed anywhere in the cluster. STM also automatically handles garbage collection of data items that will no longer be accessed by any of the application threads. We discuss ease of use issues for developing applications using STM, and present preliminary performance results to show that STM's overhead is low.
Umakishore Ramachandran, Rishiyur S. Nikhil, Nissim Harel, James M. Rehg, Kathleen Knobe
PPoPP5
1999 Scheduling Constrained Dynamic Applications on Clusters
abstract
There is an emerging class of computationally demanding multimedia applications involving vision, speech and interaction with the real world (e.g., CRL's Smart Kiosk). These applications are highly parallel and require low latencies for good performance. They are well-suited for implementation on clusters of SMP's, but they require efficient scheduling of application tasks. General purpose schedulers produce high latencies because they lack knowledge of the dependencies between tasks. Previous research in optimal scheduling has been limited to static problems. In contrast, our application is highly dynamic as the optimal schedule depends upon the behavior of the kiosk's customers. We observe that the dynamism of our application class is constrained, in that there are a small number of operating regimes which are determined by the state of the application. We present a framework for optimal scheduling of constrained dynamic applications. The results of an experimental compariso...
Kathleen Knobe, James M. Rehg, Arun Chauhan 0001, Rishiyur S. Nikhil, Umakishore Ramachandran
SC1
1998 Array SSA Form and Its Use in Parallelization
abstract
Static single assignment (SSA) form for scalars has been a significant advance. It has simplified the way we think about scalar variables. It has simplified the design of some optimizations and has made other optimizations more effective. Unfortunately none of this can be be said for SSA form for arrays. The current SSA processing of arrays views an array as a single object. But the kinds of analyses that sophisticated compilers need to perform on arrays, for example those that drive loop parallelization, are at the element level. Current SSA form for arrays is incapable of providing the element-level data flow information required for such analyses.In this paper, we introduce an Array SSA form that captures precise element-level data flow information for array variables in all cases. It is general and simple, and coincides with standard SSA form when applied to scalar variables. It can also be used for structures and other variable types that can be modeled as arrays. An important application of Array SSA form is in automatic parallelization. We show how Array SSA form can enable parallelization of any loop that is free of loop-carried true data dependences. This includes loops with loop-carried anti and output dependences, unanalyzable subscript expressions, and arbitrary control flow within an iteration. Array SSA form achieves this level of generality by making manifest its - functions as runtime computations in cases that are not amenable to compile-time analysis.
Kathleen Knobe, Vivek Sarkar
POPL1
1998 Enabling Sparse Constant Propagation of Array Elements via Array SSA Form
Vivek Sarkar, Kathleen Knobe
SAS2
1993 Optimization techniques for SIMD Fortran compilers
abstract
Abstract SIMD computer systems offer tremendous potential speed‐ups but aggressive compilation strategies are required to realize this potential. The paper presents the Compass SIMD compiler technology developed while working on a number of SIMD compilers. Although the various targets have much in common, our increased understanding of the SIMD compilation process on each successive project and the differences in the targets themselves has affected the shape of each compiler.
Kathleen Knobe, Joan D. Lukas
Concurr. Pract. Exp.1
1993 Automatic data allocation to minimize communication on SIMD machines
Kathleen Knobe, Venkataraman Natarajan
J. Supercomput.1
1990 Data Optimization: Allocation of Arrays to Reduce Communication on SIMD Machines
Kathleen Knobe, Joan D. Lukas, Guy L. Steele Jr.
J. Parallel Distributed Comput.1
1976 A Method for Inferring Context-free Grammars
Bruce Knobe, Kathleen Knobe
Inf. Control.2