| Array resizing for scientific code debugging, maintenance and reuse |
| Full text |
Pdf
(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 |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 2, Downloads (12 Months): 21, Citation Count: 3
|
|
|
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
|
Yunheung Paek , Jay Hoeflinger , David Padua, Simplification of array access patterns for compiler optimizations, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.60-71, June 17-19, 1998, Montreal, Quebec, Canada
|
| |
14
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
15
|
R. W.Hockney. The Science of Computer Benchmarking. SIAM, 1996.
|
|