Title :
Programming without bothering about data structures?
Author_Institution :
Leiden Univ., Netherlands
Abstract :
It is sound programming practice to define the data structures to be computed on before the actual programming effort starts. Actually, this step is crucial to obtaining efficient and portable code. Parallel codes, and more specifically computational science and engineering codes, are no exception to this rule. On the other hand, it is also well known that specific data structure selections can prevent compiler analysis and thereby prohibit program optimization. This problem is best illustrated by the representation of a sparse code in either Fortran with indirect addressing, or in another language with pointer structures. In this situation software maintenance and the effort of producing sparse computation codes become complicated, and most compiler optimizations get disabled. The paper considers how these two opposing interests can be expected to increase in importance for computational science and engineering. Especially in CSE, the need for high performance will push programmers to use more advanced data structures, and optimizing compiler technology will also be stressed more and more
Keywords :
data structures; engineering computing; mathematics computing; optimising compilers; programming; software maintenance; software portability; Fortran; compiler analysis; compiler optimizations; computational science codes; data structures; engineering codes; high performance; indirect addressing; optimizing compiler; parallel codes; pointer structures; portable code; program optimization; programming; software maintenance; sparse code; Acoustical engineering; Code standards; Concurrent computing; Data mining; Data structures; Optimizing compilers; Program processors; Programming profession; Software maintenance; Sparse matrices;
Journal_Title :
Computational Science & Engineering, IEEE