Update-in-Place Analysis for True Multidimensional Arrays

Applicative languages have been proposed for defining algorithms for parallel architectures because they are implicitly parallel and lack side effects. However, straightforward implementations of applicative-language compilers may induce large amounts of copying to preserve program semantics. The un...

Full description

Bibliographic Details
Main Authors: Steven M. Fitzgerald, Rodney R. Oldehoeft
Format: Article
Language:English
Published: Hindawi Limited 1996-01-01
Series:Scientific Programming
Online Access:http://dx.doi.org/10.1155/1996/493673
id doaj-163331f3c27742d1914e0db53730fb75
record_format Article
spelling doaj-163331f3c27742d1914e0db53730fb752021-07-02T06:54:38ZengHindawi LimitedScientific Programming1058-92441875-919X1996-01-015214716010.1155/1996/493673Update-in-Place Analysis for True Multidimensional ArraysSteven M. Fitzgerald0Rodney R. Oldehoeft1Department of Computer Science, California State University, Northridge, CA 91350-8281, USADepartment of Computer Science, Colorado State University, Fort Collins, CO 80523, USAApplicative languages have been proposed for defining algorithms for parallel architectures because they are implicitly parallel and lack side effects. However, straightforward implementations of applicative-language compilers may induce large amounts of copying to preserve program semantics. The unnecessary copying of data can increase both the execution time and the memory requirements of an application. To eliminate the unnecessary copying of data, the Sisal compiler uses both build-in-place and update-in-place analyses. These optimizations remove unnecessary array copy operations through compile-time analysis. Both build-in-place and update-in-place are based on hierarchical ragged arrays, i.e., the vector-of-vectors array model. Although this array model is convenient for certain applications, many optimizations are precluded, e.g., vectorization. To compensate for this deficiency, new languages, such as Sisal 2.0, have extended array models that allow for both high-level array operations to be performed and efficient implementations to be devised. In this article, we introduce a new method to perform update-in-place analysis that is applicable to arrays stored either in hierarchical or in contiguous storage. Consequently, the array model that is appropriate for an application can be selected without the loss of performance. Moreover, our analysis is more amenable for distributed memory and large software systems.http://dx.doi.org/10.1155/1996/493673
collection DOAJ
language English
format Article
sources DOAJ
author Steven M. Fitzgerald
Rodney R. Oldehoeft
spellingShingle Steven M. Fitzgerald
Rodney R. Oldehoeft
Update-in-Place Analysis for True Multidimensional Arrays
Scientific Programming
author_facet Steven M. Fitzgerald
Rodney R. Oldehoeft
author_sort Steven M. Fitzgerald
title Update-in-Place Analysis for True Multidimensional Arrays
title_short Update-in-Place Analysis for True Multidimensional Arrays
title_full Update-in-Place Analysis for True Multidimensional Arrays
title_fullStr Update-in-Place Analysis for True Multidimensional Arrays
title_full_unstemmed Update-in-Place Analysis for True Multidimensional Arrays
title_sort update-in-place analysis for true multidimensional arrays
publisher Hindawi Limited
series Scientific Programming
issn 1058-9244
1875-919X
publishDate 1996-01-01
description Applicative languages have been proposed for defining algorithms for parallel architectures because they are implicitly parallel and lack side effects. However, straightforward implementations of applicative-language compilers may induce large amounts of copying to preserve program semantics. The unnecessary copying of data can increase both the execution time and the memory requirements of an application. To eliminate the unnecessary copying of data, the Sisal compiler uses both build-in-place and update-in-place analyses. These optimizations remove unnecessary array copy operations through compile-time analysis. Both build-in-place and update-in-place are based on hierarchical ragged arrays, i.e., the vector-of-vectors array model. Although this array model is convenient for certain applications, many optimizations are precluded, e.g., vectorization. To compensate for this deficiency, new languages, such as Sisal 2.0, have extended array models that allow for both high-level array operations to be performed and efficient implementations to be devised. In this article, we introduce a new method to perform update-in-place analysis that is applicable to arrays stored either in hierarchical or in contiguous storage. Consequently, the array model that is appropriate for an application can be selected without the loss of performance. Moreover, our analysis is more amenable for distributed memory and large software systems.
url http://dx.doi.org/10.1155/1996/493673
work_keys_str_mv AT stevenmfitzgerald updateinplaceanalysisfortruemultidimensionalarrays
AT rodneyroldehoeft updateinplaceanalysisfortruemultidimensionalarrays
_version_ 1721336662874652672