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...
Main Authors: | , |
---|---|
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 |