ACM Home Page
Please provide us with feedback. Feedback
Array resizing for scientific code debugging, maintenance and reuse
Full text PdfPdf (187 KB)
Source Workshop on Program Analysis for Software Tools and Engineering archive
Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering table of contents
Snowbird, Utah, United States
Pages: 32 - 37  
Year of Publication: 2001
ISBN:1-58113-413-4
Authors
Corinne Ancourt  CRI - ENSMP, 35 rue Saint Honoré, 77305 Fontainebleau Cedex, France
Thi Viet Nga Nguyen  CRI - ENSMP, 35 rue Saint Honoré, 77305 Fontainebleau Cedex, France
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 21,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/379605.379656
What is a DOI?

ABSTRACT

Software debugging, maintenance and reuse have to deal with many problems from Fortran scientific codes that do not fully respect the standard specification. Our study on Linpack, PerfectClub and SPEC95 benchmarks and several industrial software reveals a large number of unprecise variable declarations that prevent program analysis, verification and parallelization. Furthermore, they decrease the readability of programs and make reverse-engineering more difficult.This paper presents two different methods to compute the exact size of arrays in Fortran codes that have pointer-type \verb+REAL A(1)+ or assumed-size \verb+REAL A(*)+ declarations.The first method uses the relationship between actual and formal arguments from parameter-passing rules. New array declarations in the called procedure are computed with respect to the declarations in the calling procedures.The second approach is based on an array region analysis that gives information about the set of array elements accessed during the execution of code. This approach to array resizing could be applied to other languages without array declaration such as MATLAB and APL in order to reduce the execution overhead of dynamic test and resizing.Our two approaches are combined to yield very good results for Linpack, PerfectClub and SPEC95 benchmarks.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Programming Language FORTRAN,ANSI X3.9-1978, ISO 1539-1980. American National Standard Institute, 1983.
 
2
 
3
4
 
5
 
6
7
 
8
R. Keryell, C. Ancourt, F. Coelho, B. Creusile, F. Irigoin, and P. Jouvelot. PIPS: A workbench for building interprocedural parallelizers, compilers and optimizers. Technical Report A/289/CRI, Ecole des Mines de Paris, May 1996.
 
9
A. Kubota, I. Miyoshi, K. Maeyama, S. Goto, S. Mori, H. Nakashima, and S. Tomita. TINPAR: A parallelizing compiler for message passing multiprocessors. In International Symposium on Parallel and Distributed Supercomputing, pages 214-223, September 1995.
10
 
11
 
12
T. V. N. Nguyen, F. Irigoin, C. Ancourt, and R. Keryell. Efficient intraprocedural array bound checking. Technical Report A/316/CRI, Ecole des Mines de Paris, November 2000.
13
 
14
 
15
R. W.Hockney. The Science of Computer Benchmarking. SIAM, 1996.


Collaborative Colleagues:
Corinne Ancourt: colleagues
Thi Viet Nga Nguyen: colleagues