A systematic approach to the design and analysis of linear algebra algorithms

dc.contributor.advisorVan de Geijn, Robert A.en
dc.creatorGunnels, Joseph Andrewen
dc.date.accessioned2011-03-14T21:54:00Zen
dc.date.available2011-03-14T21:54:00Zen
dc.date.issued2001-12en
dc.descriptiontexten
dc.description.abstractOver the last two decades, much progress has been made in the area of the high-performance sequential and parallel implementation of dense linear algebra operations. At what time can we confidently state that we truly understand this problem area and what form might evidence in support of this assertion take? It is our thesis that if we focus this question on the software architecture of libraries for dense linear algebra operations, we can claim to have reached the point where, for a restricted class of problems, we understand this area. In this dissertation, we provide evidence in support of this assertion by outlining a systematic and partially automated approach to the derivation and high-performance implementation of a large class of dense linear algebra operations. We have arrived at a conclusion that the answer is to apply formal derivation techniques from Computing Science to the development of highperformance linear algebra libraries. The resulting approach has resulted in an aesthetically pleasing, coherent code that facilitates performance analysis, intelligent modularity, and the enforcement of program correctness via assertions. In this dissertation, we illustrate this observation by looking at the development of the Formal Linear Algebra Methods Environment (FLAME) for implementing linear algebra algorithms. We believe that traditional methods of implementation do not reflect the natural manner in which an algorithm is either classified or derived. To remedy this discrepancy, we propose the use of a small set of abstractions that can be used to design and implement linear algebra algorithms in a simple and straightforward manner. These abstractions may be expressed in a script language that can be compiled into efficient executable code. We extend this approach to parallel implementations without adding substantial complexity. It should also be possible to translate these scripts into analytical equations that reflect their performance profiles. These profiles may allow software designers to systematically optimize their algorithms for a given machine or to meet a particular resource goal. Given the more systematic approach to deriving and implementing algorithms that is facilitated by better abstraction and classification techniques, this sort of analysis can be shown to be systematically derivable and automated.
dc.description.departmentComputer Sciencesen
dc.format.mediumelectronicen
dc.identifier.urihttp://hdl.handle.net/2152/10503en
dc.language.isoengen
dc.rightsCopyright is held by the author. Presentation of this material on the Libraries' web site by University Libraries, The University of Texas at Austin was made possible under a limited license grant from the author who has retained all copyrights in the works.en
dc.rights.restrictionRestricteden
dc.subjectError-correcting codes (information theory)en
dc.subjectAlgebra--Data processingen
dc.subjectAlgorithmsen
dc.subjectAlgebras, Linear--Data processingen
dc.titleA systematic approach to the design and analysis of linear algebra algorithmsen

Files