Demo Data from SIGIR 2026 / reviewers in the wild / expert
Rudolf Eigenmann
dblp:e/RudolfEigenmann · also Rudi Eigenmann
· DBLP profile ↗
68ranked-venue papers
6as first author
2since 2021 · last 2024
0000-0003-1651-827XORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 62 · 6 first-author · 2 since 2021Software engineering, systems software and programming languages · 7Applied, interdisciplinary, general and emerging computing · 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
28 papers |
Parallel and multicore computing · 24% GPUs and heterogeneous computing · 22% Distributed systems · 15% | |
| Software engineering, system software, and programming languages
19 papers |
Compilers and program optimization · 95% Program analysis · 2% Programming languages and type systems · 2% |
Topics — the 30 heaviest of 80, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization › parallelization
automatic parallelization |
1.1 | 7 | 2024 | Recurrence Analysis for Automatic Parallelization of Subscripted Subscripts · PPoPP 2024 Portable section-level tuning of compiler parallelized applications · SC 2012 A hybrid approach of OpenMP for clusters · PPoPP 2012 |
Compilers and program optimization
dependence analysis |
0.8 | 2 | 2024 | Recurrence Analysis for Automatic Parallelization of Subscripted Subscripts · PPoPP 2024 Automatic program parallelization · Proc. IEEE 1993 |
Parallel and multicore computing
parallel programming models |
0.4 | 5 | 2012 | Portable section-level tuning of compiler parallelized applications · SC 2012 A hybrid approach of OpenMP for clusters · PPoPP 2012 Optimizing irregular shared-memory applications for distributed-memory systems · PPoPP 2006 |
Compilers and program optimization › accelerator compilation
GPU compiler optimization |
0.4 | 1 | 2019 | Optimizing GPU programs by register demotion: poster · PPoPP 2019 |
GPUs and heterogeneous computing
GPU resource management |
0.4 | 1 | 2019 | Optimizing GPU programs by register demotion: poster · PPoPP 2019 |
Distributed systems
fault tolerance |
0.4 | 4 | 2012 | McrEngine: a scalable checkpointing system using data-aware aggregation and compression · SC 2012 FALCON: a system for reliable checkpoint recovery in shared grid environments · SC 2009 Failure-aware checkpointing in fine-grained cycle sharing systems · HPDC 2007 |
Cloud and datacenter computing
resource management |
0.4 | 2 | 2017 | Pagoda: Fine-Grained GPU Resource Virtualization for Narrow Tasks · PPoPP 2017 Dynamic Resource Management in Energy Constrained Heterogeneous Computing Systems Using Voltage Scaling · IEEE Trans. Parallel Distributed Syst. 2008 |
GPUs and heterogeneous computing › GPU resource management
GPU virtualization |
0.3 | 1 | 2017 | Pagoda: Fine-Grained GPU Resource Virtualization for Narrow Tasks · PPoPP 2017 |
Parallel and multicore computing › parallel programming models › directive-based programming
OpenMP parallelization |
0.2 | 1 | 2024 | Recurrence Analysis for Automatic Parallelization of Subscripted Subscripts · PPoPP 2024 |
GPUs and heterogeneous computing
heterogeneous cluster computing |
0.2 | 1 | 2015 | HeteroDoop: A MapReduce Programming System for Accelerator Clusters · HPDC 2015 |
Parallel and multicore computing › data-parallel programming
mapreduce |
0.2 | 1 | 2015 | HeteroDoop: A MapReduce Programming System for Accelerator Clusters · HPDC 2015 |
Distributed systems › fault tolerance
checkpointing |
0.2 | 2 | 2012 | McrEngine: a scalable checkpointing system using data-aware aggregation and compression · SC 2012 Failure-aware checkpointing in fine-grained cycle sharing systems · HPDC 2007 |
Compilers and program optimization
autotuning |
0.2 | 2 | 2012 | Portable section-level tuning of compiler parallelized applications · SC 2012 Rating Compiler Optimizations for Automatic Performance Tuning · SC 2004 |
Parallel and multicore computing
task scheduling |
0.2 | 2 | 2017 | Pagoda: Fine-Grained GPU Resource Virtualization for Narrow Tasks · PPoPP 2017 Dynamic Resource Management in Energy Constrained Heterogeneous Computing Systems Using Voltage Scaling · IEEE Trans. Parallel Distributed Syst. 2008 |
Storage systems
data compression |
0.1 | 1 | 2012 | McrEngine: a scalable checkpointing system using data-aware aggregation and compression · SC 2012 |
Parallel and multicore computing › parallel programming models › directive-based programming
OpenMP |
0.1 | 1 | 2012 | A hybrid approach of OpenMP for clusters · PPoPP 2012 |
Storage systems › file systems › distributed file system
parallel file system |
0.1 | 1 | 2012 | McrEngine: a scalable checkpointing system using data-aware aggregation and compression · SC 2012 |
Storage systems
storage reliability |
0.1 | 1 | 2012 | McrEngine: a scalable checkpointing system using data-aware aggregation and compression · SC 2012 |
Distributed systems › resource sharing
cycle sharing |
0.1 | 3 | 2009 | FALCON: a system for reliable checkpoint recovery in shared grid environments · SC 2009 Failure-aware checkpointing in fine-grained cycle sharing systems · HPDC 2007 Resource Availability Prediction in Fine-Grained Cycle Sharing Systems · HPDC 2006 |
Memory systems
shared memory |
0.1 | 1 | 2019 | Optimizing GPU programs by register demotion: poster · PPoPP 2019 |
High-performance computing › performance optimization
auto-tuning |
0.1 | 1 | 2010 | OpenMPC: Extended OpenMP Programming and Tuning for GPUs · SC 2010 |
GPUs and heterogeneous computing › GPU programming
GPU programming models |
0.1 | 1 | 2010 | OpenMPC: Extended OpenMP Programming and Tuning for GPUs · SC 2010 |
Compilers and program optimization › program transformation
source-to-source transformation |
0.1 | 1 | 2009 | OpenMP to GPGPU: a compiler framework for automatic translation and optimization · PPoPP 2009 |
Hardware reliability and fault tolerance › error recovery
checkpoint recovery |
0.1 | 1 | 2009 | FALCON: a system for reliable checkpoint recovery in shared grid environments · SC 2009 |
Cloud and datacenter computing › cluster resource management and scheduling
cluster resource management |
0.1 | 1 | 2009 | FALCON: a system for reliable checkpoint recovery in shared grid environments · SC 2009 |
GPUs and heterogeneous computing › GPU programming
CUDA code generation |
0.1 | 1 | 2009 | OpenMP to GPGPU: a compiler framework for automatic translation and optimization · PPoPP 2009 |
GPUs and heterogeneous computing
GPU programming |
0.1 | 1 | 2009 | OpenMP to GPGPU: a compiler framework for automatic translation and optimization · PPoPP 2009 |
Processor architecture and microarchitecture
speculative execution |
0.1 | 2 | 2006 | Exploiting reference idempotency to reduce speculative storage overflow · ACM Trans. Program. Lang. Syst. 2006 Reference idempotency analysis: a framework for optimizing speculative execution · PPoPP 2001 |
Performance modeling and evaluation
performance tuning |
0.1 | 2 | 2008 | PEAK - a fast and effective performance tuning system via compiler optimization orchestration · ACM Trans. Program. Lang. Syst. 2008 Towards an Integrated, Web-executable Parallel Programming Tool Environment · SC 2000 |
Cloud and datacenter computing › resource management
dynamic resource management |
0.1 | 1 | 2008 | Dynamic Resource Management in Energy Constrained Heterogeneous Computing Systems Using Voltage Scaling · IEEE Trans. Parallel Distributed Syst. 2008 |
Methods — techniques the papers use, named apart from their topics
recurrence analysis · 1.5monotonicity analysis · 1.5compiler transformation · 0.9assembly code transformation · 0.8runtime data flow analysis · 0.3data affinity optimization · 0.3GPU virtualization · 0.3runtime system · 0.2tail scheduling · 0.2optimizing compiler · 0.2empirical autotuning · 0.1compiler option partitioning · 0.1compile-time transformation · 0.1GPU global memory access optimization · 0.1mathematical bounds · 0.1heuristics · 0.1domain-specific language · 0.1AI planning · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Recurrence Analysis for Automatic Parallelization of Subscripted SubscriptsabstractIntroducing correct and optimal OpenMP parallelization directives in applications is a challenge. To parallelize a loop in an input application code automatically, parallelizing compilers need to disprove dependences with respect to variables across iterations of the loop. Performing such dependence analysis in the presence of index arrays or subscripted subscripts - a[b[i]] - has long been a challenge for automatic parallelizers. Loops with subscripted subscripts can be parallelized if the subscript array is known to possess a property such as monotonicity. This paper presents a compiletime algorithm that can analyze complex recurrence relations and determine irregular or intermittent monotonicity of one-dimensional and monotonicity of multi-dimensional subscript arrays. The new algorithm builds on a prior approach that is capable of analyzing simple recurrence relations and determining monotonic one-dimensional subscript arrays. Experimental results show that automatic parallelizers equipped with our new analysis techniques can substantially improve the performance of ten out of twelve or 83.33% of the benchmarks evaluated, 25--33.33% more than possible with state-of-the-art compile-time automatic parallelization techniques. Akshay Bhosale, Rudolf Eigenmann |
PPoPP | 2 |
| 2021 | On the automatic parallelization of subscripted subscript patterns using array property analysisabstractParallelizing loops with subscripted subscript patterns at compile-time has long been a challenge for automatic parallelizers. In the class of irregular applications that we have analyzed, the presence of subscripted subscript patterns was one of the primary reasons why a significant number of loops could not be automatically parallelized. Loops with such patterns can be parallelized, if the subscript array or the expression in which the subscript array appears possess certain properties, such as monotonicity. The information required to prove the existence of these properties is often present in the application code itself. This suggests that their automatic detection may be feasible. In this paper, we present an algebra for representing and reasoning about subscript array properties, and we discuss a compile-time algorithm, based on symbolic range aggregation, that can prove monotonicity and parallelize key loops. We show that this algorithm can produce significant performance gains, not only in the parallelized loops, but also in the overall applications. Akshay Bhosale, Rudolf Eigenmann |
ICS | 2 |
| 2019 | Optimizing GPU programs by register demotion: posterabstractGPU utilization, measured as occupancy, is limited by the parallel threads' combined usage of on-chip resources. If the resource demand cannot be met, GPUs will reduce the number of concurrent threads, impacting the program performance. We have observed that registers are the occupancy limiters while shared metmory tends to be underused. The de facto approach spills excessive registers to the out-of-chip memory, ignoring the shared memory and leaving the on-chip resources underutilized. To mitigate the register demand, our work presents a novel compiler technique, called register demotion, that allows data in the register to be placed into the underutilized shared memory by transforming the GPU assembly code (SASS). Register demotion achieves up to 18% speedup over the nvcc compiler, with a geometric mean of 7%. Putt Sakdhnagool, Amit Sabne, Rudolf Eigenmann |
PPoPP | 3 |
| 2019 | Comparative analysis of coprocessors
Putt Sakdhnagool, Amit Sabne, Rudolf Eigenmann |
Concurr. Comput. Pract. Exp. | 3 |
| 2017 | HiPA: history-based piecewise approximation for functionsabstractApplications that can tolerate a certain degree of inaccuracy offer opportunities for performance improvement and/or power reduction through techniques that produce approximate results. Such techniques have been proposed at many levels of the system stack. Performing approximation at the level of functions promises significant performance improvement. Limitations of existing techniques are that they involve hardware, require substantial programmer involvement, or do not employ efficient approximation strategies. In this paper, we introduce a function approximation scheme that aims to overcome these limitations. Comparing our scheme with existing techniques, we show that it can efficiently approximate functions in software. The evaluation of our scheme on 90 mathematical and scientific functions from the GNU Scientific Library (GSL) shows that the speed of 90% of these functions can be improved. For 80% of the functions, the normalized RMS error in the approximated result is very small (0.04 on average) with 7.5x average speedup. Whereas for another 10% of the functions, the error is 0.4 with an average speedup of 5x. We also demonstrate the feasibility, practicality, and effectiveness of the approach by presenting results on five real applications. The average speedup for these applications is 2.9x with 0.25% error. Aurangzeb, Rudolf Eigenmann |
ICS | 2 |
| 2017 | Pagoda: Fine-Grained GPU Resource Virtualization for Narrow TasksabstractMassively multithreaded GPUs achieve high throughput by running thousands of threads in parallel. To fully utilize the hardware, workloads spawn work to the GPU in bulk by launching large tasks, where each task is a kernel that contains thousands of threads that occupy the entire GPU. Tsung Tai Yeh, Amit Sabne, Putt Sakdhnagool, Rudolf Eigenmann, Timothy G. Rogers |
PPoPP | 4 |
| 2016 | POSTER: Pagoda: A Runtime System to Maximize GPU Utilization in Data Parallel Tasks with Limited ParallelismabstractMassively multithreaded GPUs achieve high throughput by running thousands of threads in parallel. To fully utilize the hardware, contemporary workloads spawn work to the GPU in bulk by launching large tasks, where each task is a kernel that contains thousands of threads that occupy the entire GPU. Tsung Tai Yeh, Amit Sabne, Putt Sakdhnagool, Rudolf Eigenmann, Timothy G. Rogers |
PACT | 4 |
| 2015 | HeteroDoop: A MapReduce Programming System for Accelerator ClustersabstractThe deluge of data has inspired big-data processing frameworks that span across large clusters. Frameworks for MapReduce, a state-of-the-art programming model, have primarily made use of the CPUs in distributed systems, leaving out computationally powerful accelerators such as GPUs. This paper presents HeteroDoop, a MapReduce framework that employs both CPUs and GPUs in a cluster. HeteroDoop offers the following novel features: (i) a small set of directives can be placed on an existing sequential, CPU-only program, expressing MapReduce semantics; (ii) an optimizing compiler translates the directive-augmented program into a GPU code; (iii) a runtime system assists the compiler in handling MapReduce semantics on the GPU; and (iv) a tail scheduling scheme minimizes job execution time in light of disparate processing capabilities of CPUs and GPUs. This paper addresses several challenges that need to be overcome in order to support these features. HeteroDoop is built on top of the state-of-the-art, CPU-only Hadoop MapReduce framework, inheriting its functionality. Evaluation results of HeteroDoop on recent hardware indicate that usage of even a single GPU per node can improve performance by up to 2.78x, with a geometric mean of 1.6x across our benchmarks, compared to a CPU-only Hadoop, running on a cluster with 20-core CPUs. Amit Sabne, Putt Sakdhnagool, Rudolf Eigenmann |
HPDC | 3 |
| 2014 | Reliable and Efficient Distributed Checkpointing System for Grid Environments
Tanzima Z. Islam, Saurabh Bagchi, Rudolf Eigenmann |
J. Grid Comput. | 3 |
| 2013 | Scaling large-data computations on multi-GPU acceleratorsabstractModern supercomputers rely on accelerators to speed up highly parallel workloads. Intricate programming models, limited device memory sizes and overheads of data transfers between CPU and accelerator memories are among the open challenges that restrict the widespread use of accelerators. First, this paper proposes a mechanism and an implementation to automatically pipeline the CPU-GPU memory channel so as to overlap the GPU computation with the memory copies, alleviating the data transfer overhead. Second, in doing so, the paper presents a technique called Computation Splitting, COSP, that caters to arbitrary device memory sizes and automatically manages to run out-of-card OpenMP-like applications on GPUs. Third, a novel adaptive runtime tuning mechanism is proposed to automatically select the pipeline stage size so as to gain the best possible performance. The mechanism adapts to the underlying hardware in the starting phase of a program and chooses the pipeline stage size. The techniques are implemented in a system that is able to translate an input OpenMP program to multiple GPUs attached to the same host CPU. Experimentation on a set of nine benchmarks shows that, on average, the pipelining scheme improves the performance by 1.49x, while limiting the runtime tuning overhead to 3% of the execution time. Amit Sabne, Putt Sakdhnagool, Rudolf Eigenmann |
ICS | 3 |
| 2012 | Topic 11: Multicore and Manycore Programming
Eduard Ayguadé, Dionisios N. Pnevmatikatos, Rudolf Eigenmann, Mikel Luján, Sabri Pllana |
Euro-Par | 3 |
| 2012 | A hybrid approach of OpenMP for clustersabstractWe present the first fully automated compiler-runtime system that successfully translates and executes OpenMP shared-address-space programs on laboratory-size clusters, for the complete set of regular, repetitive applications in the NAS Parallel Benchmarks. We introduce a hybrid compiler-runtime translation scheme. Compared to previous work, this scheme features a new runtime data flow analysis and new compiler techniques for improving data affinity and reducing communication costs. We present and discuss the performance of our translated programs, and compare them with the performance of the MPI, HPF and UPC versions of the benchmarks. The results show that our translated programs achieve 75% of the hand-coded MPI programs, on average. Okwan Kwon, Fahed Jubair, Rudolf Eigenmann, Samuel P. Midkiff |
PPoPP | 3 |
| 2012 | McrEngine: a scalable checkpointing system using data-aware aggregation and compressionabstractHigh performance computing (HPC) systems use checkpoint-restart to tolerate failures. Typically, applications store their states in checkpoints on a parallel file system (PFS). As applications scale up, checkpoint-restart incurs high overheads due to contention for PFS resources. The high overheads force large-scale applications to reduce checkpoint frequency, which means more compute time is lost in the event of failure. We alleviate this problem through a scalable checkpointrestart system, MCRENGINE. MCRENGINE aggregates checkpoints from multiple application processes with knowledge of the data semantics available through widely-used I/O libraries, e.g., HDF5 and netCDF, and compresses them. Our novel scheme improves compressibility of checkpoints up to 115% over simple concatenation and compression. Our evaluation with large-scale application checkpoints show that MCRENGINE reduces checkpointing overhead by up to 87% and restart overhead by up to 62% over a baseline with no aggregation or compression. Tanzima Z. Islam, Kathryn Mohror, Saurabh Bagchi, Adam Moody, Bronis R. de Supinski, Rudolf Eigenmann |
SC | 6 |
| 2012 | Portable section-level tuning of compiler parallelized applicationsabstractAutomatic parallelization of sequential programs combined with tuning is an alternative to manual parallelization. This method has the potential to substantially increase productivity and is thus of critical importance for exploiting the increased computational power of today's multicores. A key difficulty is that parallelizing compilers are generally unable to estimate the performance impact of an optimization on a whole program or a program section at compile time; hence, the ultimate performance decision today rests with the developer. Building an autotuning system to remedy this situation is not a trivial task. This work presents a portable empirical autotuning system that operates at program-section granularity and partitions the compiler options into groups that can be tuned independently. To our knowledge, this is the first approach delivering an au-toparallelization system that ensures performance improvements for nearly all programs, eliminating the users' need to experiment with such tools to strive for highest application performance. Dheya Mustafa, Rudolf Eigenmann |
SC | 2 |
| 2010 | OpenMPC: Extended OpenMP Programming and Tuning for GPUsabstractGeneral-Purpose Graphics Processing Units (GPGPUs) are promising parallel platforms for high performance computing. The CUDA (Compute Unified Device Architecture) programming model provides improved programmability for general computing on GPGPUs. However, its unique execution model and memory model still pose significant challenges for developers of efficient GPGPU code. This paper proposes a new programming interface, called OpenMPC, which builds on OpenMP to provide an abstraction of the complex CUDA programming model and offers high-level controls of the involved parameters and optimizations. We have developed a fully automatic compilation and user-assisted tuning system supporting OpenMPC. In addition to a range of compiler transformations and optimizations, the system includes tuning capabilities for generating, pruning, and navigating the search space of compilation variants. Our results demonstrate that OpenMPC offers both programmability and tunability. Our system achieves 88% of the performance of the hand-coded CUDA programs. Seyong Lee, Rudolf Eigenmann |
SC | 2 |
| 2009 | OpenMP to GPGPU: a compiler framework for automatic translation and optimizationabstractGPGPUs have recently emerged as powerful vehicles for general-purpose high-performance computing. Although a new Compute Unified Device Architecture (CUDA) programming model from NVIDIA offers improved programmability for general computing, programming GPGPUs is still complex and error-prone. This paper presents a compiler framework for automatic source-to-source translation of standard OpenMP applications into CUDA-based GPGPU applications. The goal of this translation is to further improve programmability and make existing OpenMP applications amenable to execution on GPGPUs. In this paper, we have identified several key transformation techniques, which enable efficient GPU global memory access, to achieve high performance. Experimental results from two important kernels (JACOBI and SPMUL) and two NAS OpenMP Parallel Benchmarks (EP and CG) show that the described translator and compile-time optimizations work well on both regular and irregular applications, leading to performance improvements of up to 50X over the unoptimized translation (up to 328X over serial). Seyong Lee, Seung-Jai Min, Rudolf Eigenmann |
PPoPP | 3 |
| 2009 | FALCON: a system for reliable checkpoint recovery in shared grid environmentsabstractIn Fine-Grained Cycle Sharing (FGCS) systems, machine owners voluntarily share their unused CPU cycles with guest jobs, as long as their performance degradation is tolerable. However, unpredictable evictions of guest jobs lead to fluctuating completion times. Checkpoint-recovery is an attractive mechanism for recovering from such "failures". Today's FGCS systems often use expensive, high-performance dedicated checkpoint servers. However, in geographically distributed clusters, this may incur high checkpoint transfer latencies. In this paper we present a system called Falcon that uses available disk resources of the FGCS machines as shared checkpoint repositories. However, an unavailable storage host may lead to loss of checkpoint data. Therefore, we model failures of storage hosts and develop a prediction algorithm for choosing reliable checkpoint repositories. We experiment with Falcon in the university-wide Condor testbed at Purdue and show improved and consistent performance for guest jobs in the presence of irregular resource availability. Tanzima Z. Islam, Saurabh Bagchi, Rudolf Eigenmann |
SC | 3 |
| 2008 | Application of Automatic Parallelization to Modern Challenges of Scientific Computing IndustriesabstractCharacteristics of full applications found in scientific computing industries today lead to challenges that are not addressed by state-of-the-art approaches to automatic parallelization.These characteristics are not present in CPU kernel codes nor linear algebra libraries, requiring a fresh look at how to make automatic parallelization apply to today's computational industries using full applications. The challenges to automatic parallelization result from software engineering patterns that implement multifunctionality, reusable execution frameworks, data structures shared across abstract programming interfaces, a multilingual code base for a single application, and the observation that full applications demand more from compile-time analysis than CPU kernel codes do. Each of these challenges has a detrimental impact on compile-time analysis required for automatic parallelization. Then, focusing on a set of target loops that are parallelizable by hand and that result in speedups on par with the distributed parallel version of the full applications, we determine the prevalence of a number of issues that hinder automatic parallelization. These issues point to enabling techniques that are missing from the state-of-the-art.In order for automatic parallelization to become utilizedin today's scientific computing industries, the challenges described in this paper must be addressed. Rudolf Eigenmann |
ICPP | 2 |
| 2008 | Adaptive runtime tuning of parallel sparse matrix-vector multiplication on distributed memory systemsabstractSparse matrix-vector (SpMV) multiplication is a widely used kernel in scientific applications. In these applications, the SpMV multiplication is usually deeply nested within multiple loops and thus executed a large number of times. We have observed that there can be significant performance variability, due to irregular memory access patterns. Static performance optimizations are difficult because the patterns may be known only at runtime. In this paper, we propose adaptive runtime tuning mechanisms to improve the parallel performance on distributed memory systems. Our adaptive iteration-to-process mapping mechanism balances computational load at runtime with negligible overhead (1% on average), and our runtime communication selection algorithm searches for the best communication method for a given data distribution and mapping. Actual runs on 26 real matrices show that our runtime tuning system reduces execution time up to 68.8% (30.9% on average) over a base block-distributed parallel algorithm on distributed systems with 32 nodes. Seyong Lee, Rudolf Eigenmann |
ICS | 2 |
| 2008 | Optimizing irregular shared-memory applications for clustersabstractIrregular applications pose challenges in optimizing communication, due to the difficulty of analyzing irregular data accesses accurately and efficiently. This challenge is especially big when translating irregular shared-memory applications to message-passing form for clusters. The lack of effective irregular data analysis in the translation system results in unnecessary or redundant communication, which limits application scalability. In this paper, we present a Lean Distributed Shared Memory (LDSM) system, which features a fast and accurate irregular data access (IDA) analysis. The analysis uses a region-based diff method and makes use of a runtime library that is optimized for irregular applications. We describe three optimizations that improve the LDSM system performance. A parallel array reduction transformation reduces overheads in the analysis. A packed communication optimization and a differential communication optimization effectively eliminate unnecessary and redundant messages. We evaluate the performance of the optimized LDSM system on a set of representative irregular benchmarks. The optimized LDSM executes irregular applications on average 45% faster than the hand-tuned MPI applications. Seung-Jai Min, Rudolf Eigenmann |
ICS | 2 |
| 2008 | Adaptive tuning in a dynamically changing resource environmentabstractWe present preliminary results of a project to create a tuning system that adaptively optimizes programs to the underlying execution platform. We will show initial results from two related efforts, (i) Our tuning system can efficiently select the best combination of compiler options, when translating programs to a target system, (ii) By tuning irregular applications that operate on sparse matrices, our system is able to achieve substantial performance improvements on cluster platforms. This project is part of a larger effort that aims at creating a global information sharing system, where resources, such as software applications, computer platforms, and information can be shared, discovered, and adapted to local needs. Seyong Lee, Rudolf Eigenmann |
IPDPS | 2 |
| 2008 | Efficient content search in iShare, a P2P based Internet-sharing systemabstractThis paper presents an efficient content search system, which is applied to iShare, a distributed peer-to-peer(P2P) Internet-sharing system. iShare facilitates the sharing of diverse resources located in different administrative domains over the Internet. For efficient resource management, iShare organizes resources into a hierarchical name space, which is distributed over the underlying structured P2P network. However, iShare's search capability has a fundamental limit inherited from the underlying structured P2P system's search capability. Most existing structured P2P systems do not support content searches. There exists some research that provides content search functionality, but the approaches do not scale well and incur substantial overheads on data updates. To address these issues, we propose an efficient hierarchical-summary system, which enables an efficient content search and semantic ranking capability over traditional structured P2P systems. Our system uses a hierarchical name space to implement a summary hierarchy on top of existing structured P2P overlay networks, and uses a Bloom Filter as a summary structure to reduce space and maintenance overhead. We implemented the proposed system in iShare, and the results show that our search system finds all relevant results regardless of summary scale and the search latency increases very slowly as the network grows. Seyong Lee, Xiaojuan Ren, Rudolf Eigenmann |
IPDPS | 3 |
| 2008 | PEAK - a fast and effective performance tuning system via compiler optimization orchestrationabstractCompile-time optimizations generally improve program performance. Nevertheless, degradations caused by individual compiler optimization techniques are to be expected. Feedback-directed optimization orchestration systems generate optimized code versions under a series of optimization combinations, evaluate their performance, and search for the best version. One challenge to such systems is to tune program performance quickly in an exponential search space. Another challenge is to achieve high program performance, considering that optimizations interact. Aiming at these two goals, this article presents an automated performance tuning system, PEAK , which searches for the best compiler optimization combinations for the important code sections in a program. The major contributions made in this work are as follows: (1) An algorithm called Combined Elimination (CE) is developed to explore the optimization space quickly and effectively; (2) Three fast and accurate rating methods are designed to evaluate the performance of an optimized code section based on a partial execution of the program; (3) An algorithm is developed to identify important code sections as candidates for performance tuning by trading off tuning speed and tuned program performance; and (4) A set of compiler tools are implemented to automate optimization orchestration. Orchestrating optimization options in SUN Forte compilers at the whole-program level, our CE algorithm improves performance by 10.8% over the SPEC CPU2000 FP baseline setting, compared to 5.6% improved by manual tuning. Orchestrating GCC O3 optimizations, CE improves performance by 12% over O3, the highest optimization level. Applying the rating methods, PEAK reduces tuning time from 2.19 hours to 5.85 minutes on average, while achieving equal or better program performance. Zhelong Pan, Rudolf Eigenmann |
ACM Trans. Program. Lang. Syst. | 2 |
| 2008 | Dynamic Resource Management in Energy Constrained Heterogeneous Computing Systems Using Voltage ScalingabstractAn ad hoc grid is a wireless heterogeneous computing environment without a fixed infrastructure. This study considers wireless devices that have different capabilities, have limited battery capacity, support dynamic voltage scaling, and are expected to be used for eight hours at a time and then recharged. To maximize the performance of the system, it is essential to assign resources to tasks (match) and order the execution of tasks on each resource (schedule) in a manner that exploits the heterogeneity of the resources and tasks while considering the energy constraints of the devices. In the single-hop ad hoc grid heterogeneous environment considered in this study, tasks arrive unpredictably, are independent (i.e., no precedent constraints for tasks), and have priorities and deadlines. The problem is to map (match and schedule) tasks onto devices such that the number of highest priority tasks completed by their deadlines during eight hours is maximized while efficiently utilizing the overall system energy. A model for dynamically mapping tasks onto wireless devices is introduced. Seven dynamic mapping heuristics for this environment are designed and compared to each other and to a mathematical bound. Jong-Kook Kim, Howard Jay Siegel, Anthony A. Maciejewski, Rudolf Eigenmann |
IEEE Trans. Parallel Distributed Syst. | 4 |
| 2007 | Failure-aware checkpointing in fine-grained cycle sharing systemsabstractFine-Grained Cycle Sharing (FGCS) systems aim at utilizing the large amountof idle computational resources available on the Internet. Such systems allow guest jobs to run on a host if they do not significantly impact the local users of the host. Since the hosts are typically provided voluntarily, their availability fluctuates greatly. To provide fault tolerance to guest jobs without adding significant computational overhead, we propose failure-aware checkpointing techniques that apply the knowledge of resource availability to select checkpoint repositories and to determine checkpoint intervals. We present the schemes of selecting reliable and efficient repositories from the non-dedicated hosts that contribute their disk storage. These schemes are formulated as 0/1 programming problems to optimize the network overhead of transferring checkpoints and the work lost due to unavailability of a storage host when needed to recover a guest job. We determine the checkpoint interval by comparing the cost of checkpointing immediately and the cost of delaying that to a later time, which is a function of the resource availability. We evaluate these techniques on an FGCS system called iShare, using trace-based simulation. The results show that they achieve better application performance than the prevalent methods which use checkpointing with a fixed periodicity on dedicated checkpoint servers. Xiaojuan Ren, Rudolf Eigenmann, Saurabh Bagchi |
HPDC | 2 |
| 2007 | Programming Distributed Memory Systems Using OpenMPabstractOpenMP has emerged as an important model and language extension for shared-memory parallel programming. On shared-memory platforms, OpenMP offers an intuitive, incremental approach to parallel programming. In this paper, we present techniques that extend the ease of shared-memory parallel programming in OpenMP to distributed-memory platforms as well. First, we describe a combined compile-time/runtime system that uses an underlying software distributed shared memory system and exploits repetitive data access behavior in both regular and irregular program sections. We present a compiler algorithm to detect such repetitive data references and an API to an underlying software distributed shared memory system to orchestrate the learning and proactive reuse of communication patterns. Second, we introduce a direct translation of standard OpenMP into MPI message-passing programs for execution on distributed memory systems. We present key concepts and describe techniques to analyze and efficiently handle both regular and irregular accesses to shared data. Finally, we evaluate the performance achieved by our approaches on representative OpenMP applications. Ayon Basumallik, Seung-Jai Min, Rudolf Eigenmann |
IPDPS | 3 |
| 2007 | Open Internet-based Sharing for Desktop Grids in iShareabstractThis paper presents iShare, a distributed peer-to-peer Internet-sharing system, that facilitates the sharing of diverse resources located in different administrative domains over the Internet. iShare addresses the challenges of resource management in desktop grids, and integrates these resources with production grids. In this paper, we present a brief overview of the iShare system and describe how iShare leverages existing standards to provide novel solutions to the problems of resource dissemination, resource allocation and trust in desktop grids. We also discuss how iShare integrates production grid systems, such as the Teragrid, with desktop resources and compare the iShare approach with Web-based user portals for production grids. To quantitatively evaluate our techniques, we measured the efficiency of resource allocation in iShare and the overheads associated with establishing trust and providing the iShare user interface for production grids. The evaluation results demonstrate that iShare enables open Internet sharing with efficiency, reliability, and security. Xiaojuan Ren, Ayon Basumallik, Zhelong Pan, Rudolf Eigenmann |
IPDPS | 4 |
| 2007 | Speculative thread decomposition through empirical optimizationabstractChip multiprocessors (CMPs), or multi-core processors, have become a common way of reducing chip complexity and power consumption while maintaining high performance. Speculative CMPs use hardware to enforce dependence, allowing a parallelizing compiler to generate multithreaded code without needing to prove independence. In these systems, a sequential program is decomposed into threads to be executed in parallel; dependent threads cause performance degradation, but do not affect correctness. Thread decomposition attempts to reduce the run-time overheads of data dependence, thread misprediction, and load imbalance. Because these overheads depend on the runtimes of the threads that are being created by the decomposition, reducing the overheads while creating the threads is a circular problem. Static compile-time decomposition handles this problem by estimating the run times of the candidate threads, but is limited by the estimates' inaccuracy. Dynamic execution-time decomposition in hardware has better run-time information, but is limited by the decomposition hardware's complexity and run-time overhead. We propose a third approach where a compiler instruments a profile run of the application to search through candidate threads and pick the best threads as the profile run executes. The resultant decomposition is compiled into the application so that a production run of the application has no instrumentation and does not incurany decomposition overhead. We avoid static decomposition's estimation accuracy problem by using actual profile-run execution times to pick threads, and we avoid dynamic decomposition's overhead by performing the decomposition at profile time. Because we allow candidate threads to span arbitrary sections of the application's call graph and loop nests, an exhaustive search of the decomposition space is prohibitive, even in profile runs. To address this issue, we make the key observation that the run-time overhead of a thread depends, to the first order, only on threads that overlap with the thread inexecution (e.g., in a four-core CMP, a given thread can overlap with at most three preceding and three following threads). This observation implies that a given thread affects only a few other threads, allowing pruning of the space. Using a CMP simulator, we achieve an average speedup of 3.51 on four cores for five of the SPEC CFP2000 benchmarks, which compares favorably to recent static techniques. We also discuss experiments with CINT2000. Troy A. Johnson, Rudolf Eigenmann, T. N. Vijaykumar |
PPoPP | 2 |
| 2007 | Prediction of Resource Availability in Fine-Grained Cycle Sharing Systems Empirical Evaluation
Xiaojuan Ren, Seyong Lee, Rudolf Eigenmann, Saurabh Bagchi |
J. Grid Comput. | 3 |
| 2006 | Fast, automatic, procedure-level performance tuningabstractThis paper presents an automated performance tuning solution, which partitions a program into a number of tuning sections and finds the best combination of compiler options for each section. Our solution builds on prior work on feedback-driven optimization, which tuned the whole program, instead of each section. Our key novel algorithm partitions a program into appropriate tuning sections. We also present the architecture of a system that automates the tuning process; it includes several pre-tuning steps that partition and instrument the program, followed by the actual tuning and the post-tuning assembly of the individually-optimized parts. Our system, called PEAK, achieves fast tuning speed by measuring a small number of invocations of each code section, instead of the whole-program execution time, as in common solutions. Compared to these solutions PEAK reduces tuning time from 2.19 hours to 5.85 minutes on average, while achieving similar program performance. PEAK improves the performance of SPEC CPU2000 FP benchmarks by 12% on average over GCC O3, the highest optimization level, on a Pentium IV machine. Zhelong Pan, Rudolf Eigenmann |
PACT | 2 |
| 2006 | Fast and Effective Orchestration of Compiler Optimizations for Automatic Performance TuningabstractAlthough compile-time optimizations generally improve program performance, degradations caused by individual techniques are to be expected. One promising research direction to overcome this problem is the development of dynamic, feedback-directed optimization orchestration algorithms, which automatically search for the combination of optimization techniques that achieves the best program performance. The challenge is to develop an orchestration algorithm that finds, in an exponential search space, a solution that is close to the best, in acceptable time. In this paper, we build such a fast and effective algorithm, called combined elimination (CE). The key advance of CE over existing techniques is that it takes the least tuning time (57% of the closest alternative), while achieving the same program performance. We conduct the experiments on both a Pentium IV machine and a SPARC II machine, by measuring performance of SPEC CPU2000 benchmarks under a large set of 38 GCC compiler options. Furthermore, through orchestrating a small set of optimizations causing the most degradation, we show that the performance achieved by CE is close to the upper bound obtained by an exhaustive search algorithm. The gap is less than 0.2% on average. Zhelong Pan, Rudolf Eigenmann |
CGO | 2 |
| 2006 | Resource Availability Prediction in Fine-Grained Cycle Sharing SystemsabstractFine-grained cycle sharing (FGCS) systems aim at utilizing the large amount of computational resources available on the Internet. In FGCS, host computers allow guest jobs to utilize the CPU cycles if the jobs do not significantly impact the local users of a host. A characteristic of such resources is that they are generally provided voluntarily and their availability fluctuates highly. Guest jobs may fail because of unexpected resource unavailability. To provide fault tolerance to guest jobs without adding significant computational overhead, it requires to predict future resource availability. This paper presents a method for resource availability prediction in FGCS systems. It applies a semi-Markov Process and is based on a novel resource availability model, combining generic hardware-software failures with domain-specific resource behavior in FGCS. We describe the prediction framework and its implementation in a production FGCS system named iShare. Through the experiments on an iShare testbed, we demonstrate that the prediction achieves accuracy above 86% on average and outperforms linear time series models, while the computational cost is negligible. Our experimental results also show that the prediction is robust in the presence of irregular resource unavailability Xiaojuan Ren, Seyong Lee, Rudolf Eigenmann, Saurabh Bagchi |
HPDC | 3 |
| 2006 | Empirical Studies on the Behavior of Resource Availability in Fine-Grained Cycle Sharing SystemsabstractFine-grained cycle sharing (FGCS) systems aim at utilizing the large amount of computational resources available on the Internet. In FGCS, host computers allow guest jobs to utilize the CPU cycles if the jobs do not significantly impact local host users. Such resources are generally provided voluntarily and their availability fluctuates highly. Guest jobs may fail unexpectedly, as resource becomes unavailable. We present empirical studies on the detection and predictability of resource availability in FGCS systems. A multi-state availability model is derived from a study of resource behavior. The model combines generic hardware-software failures with domain-specific resource behavior in FGCS. To understand the predictability, we traced resource availability in a production FGCS system for three months. We found that the daily patterns of resource availability are comparable to those in recent history. This observation suggests the feasibility of predicting future resource availability, which can be applied for proactive management of guest jobs Xiaojuan Ren, Rudolf Eigenmann |
ICPP | 2 |
| 2006 | Executing MPI programs on virtual machines in an Internet sharing systemabstractInternet sharing systems aim at federating and utilizing distributed computing resources across the Internet. This paper presents a user-level virtual machine (VM) approach to MPI program execution in an Internet sharing framework. In this approach, the resource consumer has its own operating system running on top of and isolated from, the operating system of the resource provider. We propose an efficient socket virtualization technique to optimize VM network performance. Socket virtualization achieves the same network bandwidth as the physical network. In our LAN environment, it reduces the latency overhead from 112% (using existing TUN/TAP technique) to 35.6%. Performance results on MPI benchmarks show that our virtualization technique incurs small overhead compared with the physical host platform, while gaining in return a higher degree of guest isolation and customization. We also describe the key mechanisms that allow the employment of VMs in an existing Internet sharing system Zhelong Pan, Xiaojuan Ren, Rudolf Eigenmann, Dongyan Xu |
IPDPS | 3 |
| 2006 | Implementing Tomorrow's Programming Languages
Rudolf Eigenmann |
ISPA | 1 |
| 2006 | Context-sensitive domain-independent algorithm composition and selectionabstractProgressing beyond the productivity of present-day languages appears to require using domain-specific knowledge. Domain-specific languages and libraries (DSLs) proliferate, but most optimizations and language features have limited portability because each language's semantics are related closely to its domain. We explain how any DSL compiler can use a domain-independent AI planner to implement algorithm composition as a language feature. Our notion of composition addresses a common DSL problem: good library designers tend to minimize redundancy by including only fundamental procedures that users must chain together into call sequences. Novice users are confounded by not knowing an appropriate sequence to achieve their goal. Composition allows the programmer to define and call an abstract algorithm (AA) like a procedure. The compiler replaces an AA call with a sequence of library calls, while considering the calling context. Because AI planners compute a sequence of operations to reach a goal state, the compiler can implement composition by analyzing the calling context to provide the planner's initial state. Nevertheless, mapping composition onto planning is not straightforward because applying planning to software requires extensions to classical planning, and procedure specifications may be incomplete when expressed in a planning language. Compositions may not be provably correct, so our approach mitigates semantic incompleteness with unobtrusive programmer-compiler interaction. This tradeoff is key to making composition a practical and natural feature of otherwise imperative languages, whose users eschew complex logical specifications. Compositions satisfying an AA may not be equal in performance, memory usage, or precision and require selection of a preferred solution. We examine language design and implementation issues, and we perform a case study on the BioPerl bioinformatics library. Troy A. Johnson, Rudolf Eigenmann |
PLDI | 2 |
| 2006 | Optimizing irregular shared-memory applications for distributed-memory systemsabstractIn prior work, we have proposed techniques to extend the ease of shared-memory parallel programming to distributed-memory platforms by automatic translation of OpenMP programs to MPI. In the case of irregular applications, the performance of this translation scheme is limited by the fact that accesses to shared-data cannot be accurately resolved at compile-time. Additionally, irregular applications with high communication to computation ratios pose challenges even for direct implementation on message passing systems. In this paper, we present combined compile-time/run-time techniques for optimizing irregular shared-memory applications on message passing systems in the context of automatic translation from OpenMP to MPI. Our transformations enable computation-communication overlap by restructuring irregular parallel loops. The compiler creates inspectors to analyze actual data access patterns for irregular accesses at runtime. This analysis is combined with the compile-time analysis of regular data accesses to determine which iterations of irregular loops access non-local data. The iterations are then reordered to enable computation-communication overlap. In the case where the irregular access occurs inside nested loops, the loop nest is restructured. We evaluate our techniques by translating OpenMP versions of three benchmarks from two important classes of irregular applications - sparse matrix computations and molecular dynamics. We find that for these applications, on sixteen nodes, versions employing computation-communication overlap are almost twice as fast as baseline OpenMP-to-MPI versions, almost 30% faster than inspector-only versions, almost 25% faster than hand-coded versions on two applications and about 9% slower on the third. Ayon Basumallik, Rudolf Eigenmann |
PPoPP | 2 |
| 2006 | Exploiting reference idempotency to reduce speculative storage overflowabstractRecent proposals for multithreaded architectures employ speculative execution to allow threads with unknown dependences to execute speculatively in parallel. The architectures use hardware speculative storage to buffer speculative data, track data dependences and correct incorrect executions through roll-backs. Because all memory references access the speculative storage, current proposals implement speculative storage using small memory structures to achieve fast access. The limited capacity of the speculative storage causes considerable performance loss due to speculative storage overflow whenever a thread's speculative state exceeds the speculative storage capacity. Larger threads exacerbate the overflow problem but are preferable to smaller threads, as larger threads uncover more parallelism.In this article, we discover a new program property called memory reference idempotency . Idempotent references are guaranteed to be eventually corrected, though the references may be temporarily incorrect in the process of speculation. Therefore, idempotent references, even from nonparallelizable program sections, need not be tracked in the speculative storage, and instead can directly access nonspeculative storage (i.e., conventional memory hierarchy). Thus, we reduce the demand for speculative storage space in large threads. We define a formal framework for reference idempotency and present a novel compiler-assisted speculative execution model. We prove the necessary and sufficient conditions for reference idempotency using our model. We present a compiler algorithm to label idempotent memory references for the hardware. Experimental results show that for our benchmarks, over 60% of the references in nonparallelizable program sections are idempotent. Seon Wook Kim, Chong-liang Ooi, Rudolf Eigenmann, Babak Falsafi, T. N. Vijaykumar |
ACM Trans. Program. Lang. Syst. | 3 |
| 2005 | Towards automatic translation of OpenMP to MPIabstractWe present compiler techniques for translating OpenMP shared-memory parallel applications into MPI message-passing programs for execution on distributed memory systems. This translation aims to extend the ease of creating parallel applications with OpenMP to a wider variety of platforms, such as commodity cluster systems. We present key concepts and describe techniques to analyze and efficiently handle both regular and irregular accesses to shared data.We evaluate the performance achieved by our translation scheme on seven representative OpenMP applications, two from SPEC OMPM2001 and five from the NAS Parallel Benchmarks suite, on two different platforms. The average scalability (execution time relative to the serial version) achieved is within 12% of that achieved by corresponding hand-tuned MPI applications. We also compare our programs with versions deployed for a Software Distributed Shared Memory (SDSM) system and find that the direct translation to MPI achieves up to 30% higher scalability. A comparison with High Performance Fortran (HPF) versions of two NAS benchmarks indicates that our translated OpenMP versions achieve 12% to 89% better performance than the HPF versions. Ayon Basumallik, Rudolf Eigenmann |
ICS | 2 |
| 2004 | Protection mechanisms for application service hosting platformsabstractThe application service hosting platform (ASHP) has recently received tremendous attention from both industry and academia. An ASHP provides a shared high-performance infrastructure to host different application services (AS), outsourced by application service providers (ASP). In this paper, we focus on the protection of ASHP which has inherent requirement of sharing, openness, and mutual isolation. In contrast to a dedicated server platform, which is analogous with a private house, an ASHP is like an apartment building, involving the 'host' - the ASHP infrastructure, and the 'tenants' - the AS. Strong protection and isolation must be provided between the host and the tenants, as well as between different tenants. Unfortunately, traditional OS architecture and mechanisms are not adequate to provide strong ASHP protection. In this paper we first make the case for a new OS architecture based on the virtual OS technology. We then present three protection mechanisms we have developed in SODA, our ASHP architecture. The mechanisms include: (1) resource isolation between AS; (2) virtual switching and firewalling between AS; and (3) kernelized intrusion detection and logging for each AS. For (3), we have developed a system called Kernort inside the virtual OS kernel. Kernort detects network intrusions in real-time and logs AS activities even when the AS has been compromised. Moreover for the privacy of AS, logs are encrypted by Kernort so that the 'landlord' (namely ASHP owner) cannot view them without authorization. We are applying SODA to iShare, an Internet-based distributed resource sharing platform. Xuxian Jiang, Dongyan Xu, Rudolf Eigenmann |
CCGRID | 3 |
| 2004 | Data forwarding through in-memory precomputation threadsabstractIn modern architectures, memory access latency is an increasingly performance-limiting factor. To reduce this latency, we propose concepts and implementation of a new technique that uses an in-memory processor to precompute future, critical load addresses and forward the computed values to the main processor. The acronym for this technique is IMPT for In-Memory Precomputation-based forwarding Threads. IMPT combines the advantages of precomputation-based techniques with the low memory access latency of processing-in-memory. To evaluate IMPT, we use a cycle-accurate simulation of an aggressive out-of-order processor with accurate simulation of bus and memory contention. The results show a performance gain of up to 1.47 (1.21 on average) over an aggressive superscalar processor. The average load access latency decreases by up to 55% (32% on average). Wessam Hassanein, José A. B. Fortes, Rudolf Eigenmann |
ICS | 3 |
| 2004 | Min-cut program decomposition for thread-level speculationabstractWith billion-transistor chips on the horizon, single-chip multiprocessors (CMPs) are likely to become commodity components. Speculative CMPs use hardware to enforce dependence, allowing the compiler to improve performance by speculating on ambiguous dependences without absolute guarantees of independence. The compiler is responsible for decomposing a sequential program into speculatively parallel threads, while considering multiple performance overheads related to data dependence, load imbalance, and thread prediction. Although the decomposition problem lends itself to a min-cut-based approach, the overheads depend on the thread size, requiring the edge weights to be changed as the algorithm progresses. The changing weights make our approach di#erent from graph-theoretic solutions to the general problem of task scheduling. One recent work uses a set of heuristics, each targeting a specific overhead in isolation, and gives precedence to thread prediction, without comparing the performance of the threads resulting from each heuristic. By contrast, our method uses a sequence of balanced min-cuts that give equal consideration to all the overheads, and adjusts the edge weights after every cut. This method achieves an (geometric) average speedup of 74% for floating-point programs and 23% for integer programs on a four-processor chip, improving on the 52% and 13% achieved by the previous heuristics. Troy A. Johnson, Rudolf Eigenmann, T. N. Vijaykumar |
PLDI | 2 |
| 2004 | Rating Compiler Optimizations for Automatic Performance TuningabstractTo achieve maximum performance gains through compiler optimization, most automatic performance tuning systems use a feed-back directed approach to rate the code versions generated under different optimization options and to search for the best one. They all face the problem that code versions are only comparable if they run under the same execution context. This paper proposes three accurate, fast and flexible rating approaches that address this problem. The three methods identify comparable execution contexts, model relationships between contexts, or force re-execution of the code under the same context, respectively. We apply these methods in an automatic offline tuning scenario. Our performance tuning system improves the program performance of a selection of SPEC CPU 2000 benchmarks by up to 178% (26% on average). Our techniques reduce program tuning time by up to 96% (80% on average), compared to the state-of-the-art tuning scenario that compares optimization techniques using whole-program execution. Zhelong Pan, Rudolf Eigenmann |
SC | 2 |
| 2003 | Topic Introduction
Helmar Burkhart, Rudolf Eigenmann, Tomàs Margalef, Thomas Ludwig 0002 |
Euro-Par | 2 |
| 2003 | 1D performance analysis and tracing of technical and Java applications on the Itanium2 processorabstractThis paper presents a detailed workload characterization of important technical and Java/spl trade/ applications used in the industry, on the Itanium2 processor. We present a detailed performance study of four major classes of technical applications: 1- Crash finite element analysis (LS-Dyna3D). 2Structural analysis (Nastran). 3- Computational fluid dynamics (Star-CD). 4Other technical applications (GUPS). The performance of technical applications is compared to a commercial Java server benchmark (SPECjbb2000). The data indicate that the average IPC ratio of technical applications to that of the commercial Java application is from 1.23 to 2.36 (1.74 on average). We analyze the time varying behavior of the applications and collect instruction traces at both the kernel and user levels of representative sections of the code. Wessam Hassanein, Greg Astfalk, Rudolf Eigenmann |
ISPASS | 3 |
| 2001 | Multiplex: unifying conventional and speculative thread-level parallelism on a chip multiprocessorabstractRecent proposals for Chip Multiprocessors (CMPs) advocate speculative, or implicit, threading in which the hardware employs prediction to peel off instruction sequences (i.e., implicit threads) from the sequential execution stream and speculatively executes them in parallel on multiple processor cores. These proposals augment a conventional multiprocessor, which employs explicit threading, with the ability to handle implicit threads. Current proposals focus on only implicitly-threaded code sections. This paper identifies, for the first time, the issues in combining explicit and implicit threading. We present the Multiplex architecture to combine the two threading models. Multiplex exploits the similarities between implicit and explicit threading, and provides a unified support for the two threading models without additional hardware. Multiplex groups a subset of protocol states in an implicitly-threaded CMP to provide a write-invalidate protocol for explicit threads. Chong-liang Ooi, Seon Wook Kim, Il Park 0001, Rudolf Eigenmann, Babak Falsafi, T. N. Vijaykumar |
ICS | 4 |
| 2001 | Reference idempotency analysis: a framework for optimizing speculative executionabstractRecent proposals for multithreaded architectures allow threads with unknown dependences to execute speculatively in parallel. These architectures use hardware speculative storage to buffer uncertain data, track data dependences and roll back incorrect executions. Because all memory references access the speculative storage, current proposals implement this storage using small memory structures for fast access. The limited capacity of the speculative storage causes considerable performance loss due to speculative storage overflow whenever a thread's speculative state exceeds the storage capacity. Larger threads exacerbate the over-flow problem but are preferable to smaller threads, as larger threads uncover more parallelism. In this paper, we discover a new program property called memory reference idempotency. Idempotent references need not be tracked in the speculative storage, and instead can directly access non-speculative storage (i.e., the conventional memory hierarchy). Thus, we reduce the demand fo r speculative storage space. We define a formal framework for reference idempotency and present a novel compiler-assisted speculative execution model. We prove the necessary and sufficient conditions for reference idempotency using our model. We present a compiler algorithm to label idempotent memory references for the hardware. Experimental results show that for our benchmarks, over 60% of the references in non-parallelizable program sections are idempotent. Seon Wook Kim, Chong-liang Ooi, Rudolf Eigenmann, Babak Falsafi, T. N. Vijaykumar |
PPoPP | 3 |
| 2001 | High-level adaptive program optimization with ADAPTabstractCompile-time optimization is often limited by a lack of target machine and input data set knowledge. Without this information, compilers may be forced to make conservative assumptions to preserve correctness and to avoid performance degradation. In order to cope with this lack of information at compile-time, adaptive and dynamic systems can be used to perform optimization at runtime when complete knowledge of input and machine parameters is available. This paper presents a compiler-supported high-level adaptive optimization system. Users describe, in a domain specific language, optimizations performed by stand-alone optimization tools and backend compiler flags, as well as heuristics for applying these optimizations dynamically at runtime. The ADAPT compiler reads these descriptions and generates application-specific runtime systems to apply the heuristics. To facilitate the usage of existing tools and compilers, overheads are minimized by decoupling optimization from execution. Our system, ADAPT, supports a range of paradigms proposed recently, including dynamic compilation, parameterization and runtime sampling. We demonstrate our system by applying several optimization techniques to a suite of benchmarks on two target machines. ADAPT is shown to consistently outperform statically generated executables, improving performance by as much as 70%. Michael Voss, Rudolf Eigenmann |
PPoPP | 2 |
| 2000 | Compiler Techniques for Energy Saving in Instruction Caches of Speculative Parallel MicroarchitecturesabstractWe present a new software scheme, called compiler-assisted I-cache prediction (CIP) for energy reduction in instruction caches. With the help of compiler-supplied information, the processor is able to turn off substantial portions of the I-cache. The necessary cache sets are only turned on during the execution of individual code sections. The CIP scheme is based on the processor's ability to predict code sections that are about to execute and on the compiler's ability to precisely inform the hardware about the size of these code sections. Our techniques grew out of work with optimizing compilers for speculative parallel microarchitectures. The use of this target machine class is further motivated by the fact that speculative processors have the potential to overcome limitations in the compiler parallelization of many applications, especially non-numerical programs. Speculative microarchitectures are also among the most promising emerging architectures that can take advantage of the ever-increasing levels of chip integration. We will show that our new techniques can lead up to 90% I-cache energy savings in general-purpose applications without significant execution overhead. We believe that this is a substantial step towards the goal of making such chips integral parts of mobile computing devices, such as laptops, palm tops, and cellular phones. Seon Wook Kim, Rudolf Eigenmann |
ICPP | 2 |
| 2000 | ADAPT: Automated De-Coupled Adaptive Program TransformationabstractDynamic program optimization offers performance improvements far beyond those possible with traditional compile-time optimization. These gains are due to the ability to exploit both architectural and input data set characteristics that are unknown prior to execution time. In this paper, we propose a novel framework for dynamic program optimization, ADAPT (Automated De-coupled Adaptive Program Transformation), that builds on the strengths of existing approaches. The key to our framework is the de-coupling of the dynamic compilation of new code variants from the dynamic selection of these variants at their points of use. This allows code generation to occur concurrently with program execution, removing dynamic compilation overheads from the critical path. We present a compilation system, based on the Polaris optimizing compiler, that automatically applies this framework to general "plugged-in" optimization techniques. We evaluate our system on three programs from the SPEC floating point benchmark suite by dynamically applying loop distribution, loop unrolling, loop tiling and automatic parallelization. We show that our techniques can improve performance by as much as 70% over statically optimized code. Michael Voss, Rudolf Eigenmann |
ICPP | 2 |
| 2000 | Towards an Integrated, Web-executable Parallel Programming Tool EnvironmentabstractWe present a new parallel programming tool environment that is (1) accessible and executable "anytime, anywhere," through standard Web browsers and (2) integrated in that it provides tools that adhere to a common underlying methodology for parallel programming and performance tuning. The environment is based on a new network computing infrastructure, developed at Purdue University. We evaluate our environment qualitatively by comparing our tool access method with conventional schemes of software download and installation. We also quantitatively evaluate the efficiency of interactive tool access in our environment. We do this by measuring the response times of various functions of the URSA MINOR tool and compare them with those of a Java Applet-based "anytime, anywhere" tool access method. We found that our environment offers significant advantages in terms of tool accessibility, integration, and efficiency. Insung Park, Nirav H. Kapadia, Renato J. O. Figueiredo, Rudolf Eigenmann, José A. B. Fortes |
SC | 4 |
| 1998 | Performance Forecasting: Towards a Methodology for Characterizing Large Computational ApplicationsabstractWe present a methodology that can identify and formulate performance characteristics of a computational application and uncover program performance trends on very large, future computer architectures and problem sizes. Based on this methodology we present "performance forecast diagrams" that predict the scalability of a large seismology application suite on a terabyte data set. We find that the applications scale well up to a large number of processors, given an interconnection network similar to the one of the SGI/Cray Origin architecture. However we find that if we increase the computation-to-communication speed ratio by a factor of 100, the different applications of the seismic suite start exhibiting architectural "sweet spots", at which the communication overhead starts to dominate computation time. The presented methodology has proven to be useful in characterizing large computational applications. It is being applied in a project to create a repository of realistic programs and their characteristics. Rudolf Eigenmann |
ICPP | 2 |
| 1998 | Compiler-Based Tools for Analyzing Parallel Programs
Seon Wook Kim, Insung Park, Michael Voss, Rudolf Eigenmann |
Parallel Comput. | 5 |
| 1998 | Nonlinear and Symbolic Data Dependence TestingabstractOne of the most crucial qualities of an optimizing compiler is its ability to detect when different data references access the same storage location. Such references are said to be data-dependent and they impose constraints on the amount of program modifications the compiler can apply for improving the program's performance. For parallelizing compilers, the most important program constructs to investigate are loops and the array references they contain. In previous work, we have found a serious limitation of current data dependence tests to be that they cannot handle loop bounds or array subscripts that are symbolic, nonlinear expressions. In this paper, we describe a dependence test, called the range test, that can handle such expressions. Briefly, the range test proves independence by determining whether certain symbolic inequalities hold for a permutation of the loop nest. Powerful symbolic analyses and constraint propagation techniques were developed to prove such inequalities. The range test has been implemented in Polaris, a parallelizing compiler developed at the University of Illinois. We present measurements of the range test's performance and compare it with state-of-the-art tests. William Blume, Rudolf Eigenmann |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 1998 | On the Automatic Parallelization of the Perfect BenchmarksabstractThis paper presents the results of the Cedar Hand-Parallelization Experiment conducted from 1989 through 1992, within the Center for Supercomputing Research and Development (CSRD) at the University of Illinois. In this experiment, we manually transformed the Perfect Benchmarks(R) into parallel program versions. In doing so, we used techniques that may be automated in an optimizing compiler. We then ran these programs on the Cedar multiprocessor (built at CSRD during the 1980s) and measured the speed improvement due to each technique. The results presented here extend the findings previously reported. The techniques credited most for the performance gains include array privatization, parallelization of reduction operations, and the substitution of generalized induction variables. All these techniques can be considered extensions of transformations that were available in vectorizers and commercial restructuring compilers of the late 1980s. We applied these transformations by hand to the given programs, in a mechanical manner, similar to that of a parallelizing compiler. Because of our success with these transformations, we believed that it would be possible to implement many of these techniques in a new parallelizing compiler. Such a compiler has been completed in the meantime and we show preliminary results. Rudolf Eigenmann, Jay P. Hoeflinger, David A. Padua |
IEEE Trans. Parallel Distributed Syst. | 1 |
| 1995 | Idiom Recognition in the Polaris Parallelizing CompilerabstractThe elimination of induction variables and the parallelization of reductions in FORTRAN programs have been shown to be integral to performance improvement on parallel computers [7, 8]. As part of the Polaris project [5], compiler passes that recognize these idioms have been implementedandevaluated. Developing these techniques to the point necessary to achieve significant speedups on real applications has prompted solutions to problems that have not been addressed in previous reports on idiom recognition techniques. These include analysis techniques capable of disproving zero-trip loops, symbolic handling facilities to compute closed forms of recurrences, and interfaces to other compilation passes such as the data-dependence test. In comparison, the recognition phase of solving induction variables, which has received most attention so far, has in fact turned out to be relatively straightforward. This paper provides an overview of techniques described in more detail in [12]. William M. Pottenger, Rudolf Eigenmann |
International Conference on Supercomputing | 2 |
| 1994 | An Overview of Symbolic Analysis Techniques Needed for the Effective Parallelization of the Perfect BenchmarksabstractWe have identified symbolic analysis techniques that will improve the effectiveness of parallelizing Fortran compilers, with emphasis upon data dependence analysts. We have done this by comparing the automatically and manually parallelized versions of the Perfect Benchmarks®. The techniques include: symbolic data dependence tests for nonlinear expressions, constraint propagation, array summary information, and run time tests. William Blume, Rudolf Eigenmann |
ICPP (2) | 2 |
| 1994 | The range test: a dependence test for symbolic, non-linear expressionsabstractMost current data dependence tests cannot handle loop bounds or array subscripts that are symbolic, nonlinear expressions (e.g. A(n*i+j), where 0/spl les/j/spl les/n). We describe a dependence test, called the range test, that can handle such expressions. Briefly, the range test proves independence by determining whether certain symbolic inequalities hold for a permutation of the loop nest. Powerful symbolic analyses and constraint propagation techniques were developed to prove such inequalities, The range test has been implemented in Polaris, a parallelizing compiler being developed at the University of Illinois.> William Blume, Rudolf Eigenmann |
SC | 2 |
| 1993 | Toward a Methodology of Optimizing Programs for High-Performance ComputersabstractThis report describes experiences in porting the Perfect Benchmarks programs to the Alliant FX/8 and Cedar machines. Although there is much to learn before we can really say we know how to optimize programs successfully for parallel computers in general and for hierarchical shared-memory architectures in particular, it is hoped that this report will be helpful to those who are beginning to port and transform programs for parallel machines. Perhaps it is even an interesting reference for experts. In addition, this paper summarizes our experience with the programming tools we used and discusses tools that could have helped to increase the productivity of the optimization process. This information is believed to be a useful basis for future tool development projects. Rudolf Eigenmann |
International Conference on Supercomputing | 1 |
| 1993 | The Cedar System and an Initial Performance StudyabstractIn this paper, we give an overview of the Cedar multiprocessor and present recent performance results. These include the performance of some computational kernels and the Perfect Benchmarks. We also present a methodology for judging parallel system performance and apply this methodology to Cedar, Cray YMP-8, and Thinking Machines CM-5. David J. Kuck, Edward S. Davidson, Duncan H. Lawrie, Ahmed H. Sameh, Chuanqi Zhu, Alexander V. Veidenbaum, Jeff Konicek, Pen-Chung Yew, Kyle A. Gallivan, William Jalby, Harry A. G. Wijshoff, Randall Bramley, Ulrike Meier Yang, Perry A. Emrath, David A. Padua, Rudolf Eigenmann, Jay P. Hoeflinger, Greg P. Jaxon, Zhiyuan Li 0001, T. Murphy, John T. Andrews, Stephen W. Turner |
ISCA | 16 |
| 1993 | Common runtime support for high-performance parallel languagesabstractNo abstract available. Geoffrey C. Fox, Sanjay Ranka, Michael L. Scott, Allen D. Malony, James C. Browne, Marina C. Chen, Alok N. Choudhary, Thomas E. Cheatham, Janice E. Cuny, Rudolf Eigenmann, Amr F. Fahmy, Ian T. Foster, Dennis Gannon, Tomasz Haupt, Carl Kesselman, Charles Koelbel, Wei Li 0015, Monica S. Lam, Thomas J. LeBlanc, Jim Openshaw, David A. Padua, Constantine D. Polychronopoulos, Joel H. Saltz, Alan Sussman, Gil Weigand, Katherine A. Yelick |
SC | 10 |
| 1993 | Restructuring Fortran programs for CedarabstractAbstract The paper reports on the status of the Fortran translator for the Cedar computer at the end of March 1991. A brief description of the Cedar Fortran language is followed by a discussion of the Fortran‐77 to Cedar Fortran parallelizer that describes the techniques currently being implemented. A collection of experiments illustrate the effectiveness of the current implementation, and point toward new approaches to be incorporated into the system in the near future. Rudolf Eigenmann, Jay P. Hoeflinger, Greg P. Jaxon, Zhiyuan Li 0001, David A. Padua |
Concurr. Pract. Exp. | 1 |
| 1993 | Automatic program parallelizationabstractAn overview of automatic program parallelization techniques is presented. It covers dependence analysis techniques, followed by a discussion of program transformations, including straight-line code parallelization, do-loop transformations, and parallelization of recursive routines. Several experimental studies on the effectiveness of parallelizing compilers are surveyed.> Utpal Banerjee, Rudolf Eigenmann, Alexandru Nicolau, David A. Padua |
Proc. IEEE | 2 |
| 1993 | The M3 Multiprocessor LaboratoryabstractAn integrated programming environment for the M/sup 3/ multiprocessor is discussed. Three tools support the software development cycle of a parallel program, including the programming, configuration, and debugging/performance measurement phases. Programmer support for performance analysis has been a primary motivation for the system. The sources of performance loss are identified and the ways in which this information is gathered and analyzed are described. As a case study, a fast maze router algorithm is used to show the functionality of the different tools. The M/sup 3/ environment is compared with other state-of-the-art projects.> Helmar Burkhart, Rudolf Eigenmann, Heinz Kindlimann, Michael Moser, Heinz Scholian |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 1992 | Performance Analysis of Parallelizing Compilers on the Perfect Benchmarks ProgramsabstractThe speedups of the Perfect Benchmarks codes that result from automatic parallelization are reported. The performance gains caused by individual restructuring techniques have also been measured. Specific reasons for the successes and failures of the transformations are discussed, and potential improvements that result in measurably better program performance are analyzed. The most important findings are that available restructurers often cause insignificant performance gains in real programs and that only few restructuring techniques contribute to this gain. However, it can be shown that there is potential for advancing compiler technology so that many of the most important loops in these programs can be parallelized.> William Blume, Rudolf Eigenmann |
IEEE Trans. Parallel Distributed Syst. | 2 |
| 1991 | An Effectiveness Study of Parallelizing Compiler Techniques
Rudolf Eigenmann, William Blume |
ICPP (2) | 1 |
| 1991 | Restructuring Fortran Programs for Cedar
Rudolf Eigenmann, Jay P. Hoeflinger, Greg P. Jaxon, Zhiyuan Li 0001, David A. Padua |
ICPP (1) | 1 |
| 1991 | Parallelization and Performance of Conjugate Gradient Algorithms on the Cedar Hierarchical-Memory MultiprocessorabstractWe analyze the computational structure of the Conjugate Gradient algorithm and we describe its parallel implement ation on the Cedar hierarchicalmemory multiprocessor.The analysis will cover both explicit manual parallelization and automatic compilation.We report performance measurements taken on Cedar, which allow us a number of conclusions about the Cedar architecture, the programming methodology for hierarchical computer structures, and the contrast of manual vs automatic parallelization. Ulrike Meier, Rudolf Eigenmann |
PPoPP | 2 |