Demo Data from SIGIR 2026 / reviewers in the wild / expert
James M. Stichnoth
dblp:43/6587
· DBLP profile ↗
9ranked-venue papers
2as first author
0since 2021 · last 2005
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 6 · 1 first-authorSoftware engineering, systems software and programming languages · 4 · 1 first-author
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.
| Software engineering, system software, and programming languages
5 papers |
Runtime systems and virtual machines · 67% Compilers and program optimization · 33% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 92% High-performance computing · 8% |
Topics — the 9 heaviest of 11, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.1 | 3 | 2000 | Practicing JUDO: Java under dynamic optimizations · PLDI 2000 Fast, Effective Code Generation in a Just-In-Time Java Compiler · PLDI 1998 Support for Garbage Collection at Every Instruction in a Java Compiler · PLDI 1999 |
Runtime systems and virtual machines
garbage collection |
0.1 | 2 | 2000 | Practicing JUDO: Java under dynamic optimizations · PLDI 2000 Support for Garbage Collection at Every Instruction in a Java Compiler · PLDI 1999 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.0 | 1 | 2000 | Practicing JUDO: Java under dynamic optimizations · PLDI 2000 |
Compilers and program optimization
compiler optimization |
0.0 | 1 | 1998 | Fast, Effective Code Generation in a Just-In-Time Java Compiler · PLDI 1998 |
Compilers and program optimization
parallelizing compiler |
0.0 | 2 | 1996 | Runtime Performance of Parallel Array Assignment: An Empirical Study · SC 1996 Programming Task and Data Parallelism on a Multicomputer · PPoPP 1993 |
Parallel and multicore computing › data distribution
block-cyclic distribution |
0.0 | 1 | 1996 | Runtime Performance of Parallel Array Assignment: An Empirical Study · SC 1996 |
Parallel and multicore computing
data distribution |
0.0 | 1 | 1996 | Runtime Performance of Parallel Array Assignment: An Empirical Study · SC 1996 |
Parallel and multicore computing
parallel programming models |
0.0 | 1 | 1993 | Programming Task and Data Parallelism on a Multicomputer · PPoPP 1993 |
Parallel and multicore computing › parallel programming models
task and data parallelism |
0.0 | 1 | 1993 | Programming Task and Data Parallelism on a Multicomputer · PPoPP 1993 |
Methods — techniques the papers use, named apart from their topics
empirical performance study · 0.0just-in-time compilation · 0.0dynamic patching · 0.0register allocation · 0.0common subexpression elimination · 0.0array bounds check elimination · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2005 | The Open Runtime Platform: a flexible high-performance managed runtime environmentabstractAbstract The Open Runtime Platform (ORP) is a high‐performance managed runtime environment (MRTE) that features exact generational garbage collection, fast thread synchronization, and multiple coexisting just‐in‐time compilers (JITs). ORP was designed for flexibility in order to support experiments in dynamic compilation, garbage collection, synchronization, and other technologies. It can be built to run either Java or Common Language Infrastructure (CLI) applications, to run under the Windows or Linux operating systems, and to run on the IA‐32 or Itanium processor family (IPF) architectures. Achieving high performance in a MRTE presents many challenges, particularly when flexibility is a major goal. First, to enable the use of different garbage collectors and JITs, each component must be isolated from the rest of the environment through a well‐defined software interface. Without careful attention, this isolation could easily harm performance. Second, MRTEs have correctness and safety requirements that traditional languages such as C++ lack. These requirements, including null pointer checks, array bounds checks, and type checks, impose additional runtime overhead. Finally, the dynamic nature of MRTEs makes some traditional compiler optimizations, such as devirtualization of method calls, more difficult to implement or more limited in applicability. To get full performance, JITs and the core virtual machine (VM) must cooperate to reduce or eliminate (where possible) these MRTE‐specific overheads. In this paper, we describe the structure of ORP in detail, paying particular attention to how it supports flexibility while preserving high performance. We describe the interfaces between the garbage collector, the JIT, and the core VM; how these interfaces enable multiple garbage collectors and JITs without sacrificing performance; and how they allow the JIT and the core VM to reduce or eliminate MRTE‐specific performance issues. Copyright © 2005 John Wiley & Sons, Ltd. Michal Cierniak, Marsha Eng, Neal Glew, Brian T. Lewis, James M. Stichnoth |
Concurr. Pract. Exp. | 5 |
| 2004 | Improving 64-Bit Java IPF Performance by Compressing Heap Referencesabstract64-bit processor architectures like the Intel/spl reg/ Itanium/spl reg/ processor family are designed for large applications that need large memory addresses. When running applications that fit within a 32-bit address space, 64-bit CPUs are at a disadvantage compared to 32-bit CPUs because of the larger memory footprints for their data. This results in worse cache and TLB utilization, and consequently lower performance because of increased miss ratios. This paper considers software techniques for virtual machines that allow 32-bit pointers to be used on 64-bit CPUs for managed runtime applications that do not need the full 64-bit address space. We describe our pointer compression techniques and discuss our experience implementing these for Java applications. In addition, we give performance results with our techniques for both the SPEC JVM98 and SPEC JBB2000 benchmarks. We demonstrate a 12% performance improvement on SPEC JBB2000 and a reduction in the number of garbage collections required for a given heap size. Ali-Reza Adl-Tabatabai, Jay Bharadwaj, Michal Cierniak, Marsha Eng, Jesse Fang, Brian T. Lewis, Brian R. Murphy, James M. Stichnoth |
CGO | 8 |
| 2000 | Practicing JUDO: Java under dynamic optimizationsabstractA high-performance implementation of a Java Virtual Machine (JVM) consists of efficient implementation of Just-In-Time (JIT) compilation, exception handling, synchronization mechanism, and garbage collection (GC). These components are tightly coupled to achieve high performance. In this paper, we present some static anddynamic techniques implemented in the JIT compilation and exception handling of the Microprocessor Research Lab Virtual Machine (MRL VM), i.e., lazy exceptions, lazy GC mapping, dynamic patching, and bounds checking elimination. Our experiments used IA-32 as the hardware platform, but the optimizations can be generalized to other architectures. Michal Cierniak, Guei-Yuan Lueh, James M. Stichnoth |
PLDI | 3 |
| 1999 | Support for Garbage Collection at Every Instruction in a Java CompilerabstractA high-performance implementation of a Java Virtual Machine1 requires a compiler to translate Java bytecodes into native instructions, as well as an advanced garbage collector (e.g., copying or generational). When the Java heap is exhausted and the garbage collector executes, the compiler must report to the garbage collector all live object references contained in physical registers and stack locations. Typical compilers only allow certain instructions (e.g., call instructions and backward branches) to be GC-safe; if GC happens at some other instruction, the compiler may need to advance execution to the next GC-safe point. Until now, no one has ever attempted to make every compiler-generated instruction GC-safe, due to the perception that recording this information would require too much space. This kind of support could improve the GC performance in multithreaded applications. We show how to use simple compression techniques to reduce the size of the GC map to about 20% of the generated code size, a result that is competitive with the best previously published results. In addition, we extend the work of Agesen, Detlefs, and Moss, regarding the so-called "JSR Problem" (the single exception to Java's type safety property), in a way that eliminates the need for extra runtime overhead in the generated code. James M. Stichnoth, Guei-Yuan Lueh, Michal Cierniak |
PLDI | 1 |
| 1998 | Fast, Effective Code Generation in a Just-In-Time Java CompilerabstractA Just-In-Time (JIT) Java compiler produces native code from Java byte code instructions during program execution. As such, compilation speed is more important in a Java JIT compiler than in a traditional compiler, requiring optimization algorithms to be lightweight and effective. We present the structure of a Java JIT compiler for the Intel Architecture, describe the lightweight implementation of JIT compiler optimizations (e.g., common subexpression elimination, register allocation, and elimination of array bounds checking), and evaluate the performance benefits and tradeoffs of the optimizations. This JIT compiler has been shipped with version 2.5 of Intel's VTune for Java product. Ali-Reza Adl-Tabatabai, Michal Cierniak, Guei-Yuan Lueh, Vishesh M. Parikh, James M. Stichnoth |
PLDI | 5 |
| 1996 | Runtime Performance of Parallel Array Assignment: An Empirical StudyabstractCompiling the array assignment statement of High Performance Fortran in the presence of block-cyclic distributions of data arrays is considered difficult, and several algorithms have been published to solve this problem. We present a comprehensive study of the performance of these algorithms. We classify these algorithms into several families and identify several issues of interest in the compilation process, and present experimental performance data for the various algorithms. We demonstrate that block-cyclic distributions can be compiled almost as efficiently as block and cyclic distributions. James M. Stichnoth, Siddhartha Chatterjee |
SC | 2 |
| 1995 | Decoupling Synchronization and Data Transfer in Message Passing Systems of Parallel ComputersabstractArticle Decoupling synchronization and data transfer in message passing systems of parallel computers Share on Authors: T. Stricker School of Computer Science, Carnegie Mellon University, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, Pittsburgh, PAView Profile , J. Stichnoth School of Computer Science, Carnegie Mellon University, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, Pittsburgh, PAView Profile , D. O'Hallaron School of Computer Science, Carnegie Mellon University, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, Pittsburgh, PAView Profile , S. Hinrichs School of Computer Science, Carnegie Mellon University, Pittsburgh, PA School of Computer Science, Carnegie Mellon University, Pittsburgh, PAView Profile , T. Gross School of Computer Science, Carnegie Mellon University, Pittsburgh, PA and Institut für Computer Systeme, ETH Zürich, CH 8092 Zürich School of Computer Science, Carnegie Mellon University, Pittsburgh, PA and Institut für Computer Systeme, ETH Zürich, CH 8092 ZürichView Profile Authors Info & Claims ICS '95: Proceedings of the 9th international conference on SupercomputingJuly 1995 Pages 1–10https://doi.org/10.1145/224538.224539Online:03 July 1995Publication History 25citation370DownloadsMetricsTotal Citations25Total Downloads370Last 12 Months2Last 6 weeks1 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access Thomas Stricker, James M. Stichnoth, David R. O'Hallaron, Susan Hinrichs, Thomas R. Gross |
International Conference on Supercomputing | 2 |
| 1994 | Generating Communication for Array Statement: Design, Implementation, and Evaluation
James M. Stichnoth, David R. O'Hallaron, Thomas R. Gross |
J. Parallel Distributed Comput. | 1 |
| 1993 | Programming Task and Data Parallelism on a MulticomputerabstractFor many applications, achieving good performance on a private memory parallel computer requires exploiting data parallelism as well as task parallelism. Depending on the size of the input data set and the number of nodes (i.e., processors), different tradeoffs between task and data parallelism are appropriate for a parallel system. Most existing compilers focus on only one of data parallelism and task parallelism. Therefore, to achieve the desired results, the programmer must separately program the data and task parallelism. We have taken a unified approach to exploiting both kinds of parallelism in a single framework with an existing language. This approach eases the task of programming and exposes the tradeoffs between data and task parallelism to the compiler. We have implemented a parallelizing Fortran compiler for the iWarp system based on this approach. We discuss the design of our compiler, and present performance results to validate our approach. 1 Introduction Many applicati... Jaspal Subhlok, James M. Stichnoth, David R. O'Hallaron, Thomas R. Gross |
PPoPP | 2 |