1997
Authors
Rinard, MC; Diniz, PC;
Publication
ACM Transactions on Programming Languages and Systems
Abstract
This article presents a new analysis technique, commutativity analysis, for automatically parallelizing computations that manipulate dynamic, pointer-based data structures. Commutativity analysis views the computation as composed of operations on objects. It then analyzes the program at this granularity to discover when operations commute (i.e., generate the same final result regardless of the order in which they execute). If all of the operations required to perform a given computation commute, the compiler can automatically generate parallel code. We have implemented a prototype compilation system that uses commutativity analysis as its primary analysis technique We have used this system to automatically parallelize three complete scientific computations: the Barnes-Hut N-body solver, the Water liquid simulation code, and the String seismic simulation code. This article presents performance results for the generated parallel code running on the Stanford DASH machine. These results provide encouraging evidence that commutativity analysis can serve as the basis for a successful parallelizing compiler.
1997
Authors
Diniz, P; Rinard, M;
Publication
Conference Record of the Annual ACM Symposium on Principles of Programming Languages
Abstract
As parallel machines become part of the mainstream computing environment, compilers will need to apply synchronization optimizations to deliver efficient parallel software. A new framework for synchronization optimizations and a new set of transformations for programs that implement critical sections using mutual exclusion locks are described. Also introduced is a new synchronization algorithm, lock elimination, for reducing synchronization overhead.
1997
Authors
Marcal, ARS; Slater, MT;
Publication
IEE Conference Publication
Abstract
A system for near real time processing of NOAA-AVHRR satellite data is described. The system allows for the final imagery, geometrically corrected and calibrated, to be obtained only a few minutes after the satellite pass. An application example is presented: the production of snow cover weekly composites for Scotland during the winter of 1996.
1997
Authors
Soares, AL; Mendonça, JM;
Publication
SIGGROUP Bull. - ACM SIGGROUP Bulletin
Abstract
1997
Authors
Dearden, AM; Harrison, MD;
Publication
Computer Journal
Abstract
This paper describes a generic model for case memory systems expressed using the Z notation. A case memory system is an essential part of any case-based reasoning system, and provides a mechanism for storing old cases, and for assessing the relationship between the stored cases and a new problem. Using the model, characteristics that have been claimed for specific case memory systems in the literature, e.g. responsiveness to a reasoner's goals or use of past experience in case assessment, are expressed formally in terms of constraints on the means by which case relations are computed. The model supports precise reasoning about the characteristics of specific systems and offers insight into the variety of options available to software or knowledge engineers seeking to reuse a case memory system, to select a case memory system shell or to develop a new system.
1997
Authors
Diniz, P; Rinard, M;
Publication
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
Abstract
This paper presents dynamic feedback, a technique that enables computations to adapt dynamically to different execution environments. A compiler that uses dynamic feedback produces several different versions of the same source code; each version uses a different optimization policy. The generated code alternately performs sampling phases and production phases. Each sampling phase measures the overhead of each version in the current environment. Each production phase uses the version with the least overhead in the previous sampling phase. The computation periodically resamples to adjust dynamically to changes in the environment. We have implemented dynamic feedback in the context of a parallelizing compiler for object-based programs. The generated code uses dynamic feedback to automatically choose the best synchronization optimization policy. Our experimental results show that the synchronization optimization policy has a significant impact on the overall performance of the computation, that the best policy varies from program to program, that the compiler is unable to statically choose the best policy, and that dynamic feedback enables the generated code to exhibit performance that is comparable to that of code that has been manually tuned to use the best policy. We have also performed a theoretical analysis which provides, under certain assumptions, a guaranteed optimality bound for dynamic feedback relative to a hypothetical (and unrealizable) optimal algorithm that uses the best policy at every point during the execution.
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.