320 likes | 447 Views
Tacit Assumptions in the Field of Mathematical Software. Albert M. Erisman Seattle Pacific University Dedicated to John K. Reid at the celebration of his 70 th birthday. Overview . Two stories Six Assumptions and their implications
E N D
Tacit Assumptions in the Field of Mathematical Software Albert M. Erisman Seattle Pacific University Dedicated to John K. Reid at the celebration of his 70th birthday
Overview • Two stories • Six Assumptions and their implications • Some questions for those working in the field of mathematical software
July 1972
The Model for Mathematical Software (User Viewpoint) • I need to build a mathematical model • The algorithm at the heart of the model is • The most complex part of the simulation • The part that drives performance and reliability of the entire simulation • By using a standard piece of mathematical software rather than writing this part of the code myself, I can • Save time and money • Improve the reliability of the simulation • Draw on expertise I don’t have • Early weakness in that model • Mathematical software was primarily “shareware” • Often it was questionable in its performance and reliability • These factors led to the field of mathematical software
Tacit Assumptions A tacit assumption or implicit assumption is an assumption that includes the underlying agreements or statements made in the development of a logical argument, course of action, decision, or judgment that are not explicitly voiced nor necessarily understood by the decision maker or judge. [Wikipedia]
Assumption 1 • Scientists and engineers develop their own mathematical simulation codes.
Today’s Reality • For most standard computations (structures, electromagnetics, electronics, chemical process simulation, linear programming, …) most scientists and engineers use standard software developed in their fields enabling • commonality and comparison of results • cost and time savings • The mathematical software in that simulation is largely invisible to the user
Questions for Mathematical Software Developers • Who is the customer for the mathematical software?
Assumption 2 Mathematical software was exchanged for free. • There were no were no intellectual property issues, • This software could readily be used as building blocks for larger simulations.
The Transition • IBM started the trend limiting distribution of math software in 1969 • The change created a business opportunity for mathematical software libraries (NAG, IMSL)
Today’s Reality • A great deal of this software both costs money and has IP restrictions on its use. • IP restrictions often inhibit the use of the mathematical software in the resulting simulation code.
Questions for Mathematical Software Developers • If reuse (and remix) is the goal, are the standard practices for the distribution of software standing in the way of its reuse? • How do these realities get taken into account in the distribution and restrictions on mathematical software? • If the software is exchanged for free without restriction, who pays the salaries of the developers?
Assumption 3 • Mathematical software was designed for scalar computers. • Reducing the computation time for the mathematical software directly translated into a reduction in computational time for the simulation.
Simulation Performance Algorithm performance Algorithm performance
Today’s Reality • Mathematical simulations on parallel computers raise new questions. • Should the algorithms be optimized for the parallel computer, or should the simulation be optimized? • Are these the same?
Questions for Mathematical Software Developers • Should the algorithm developer try to achieve maximal parallelization for the algorithm, or • Should the developer create software that will support the best parallelization of the resulting simulation code? • What other issues should we be thinking about?
Assumption 4 • Mathematical software was primarily used in simulation applications run on mainframe computers (and vector computers). • The changes in this hardware could be readily applied to the libraries, simplifying the challenge for the user in migrating his or her code from one machine to another. • The frequency of use of the mathematical software could easily be measured on the mainframes.
Today’s Reality • This started to change with the coming of the PC. • With today’s powerful microchips and larger memories, mathematical simulations are done on all kinds of devices including hand held and onboard. • The architectures are very diverse leading the challenges in creating standard code with ideal performance across these platforms.
Questions for Mathematical Software Developers • How might the mathematical software be distributed and managed in such a way that users can tailor it for their own environments? • Who troubleshoots problems with the software when a user changes the code?
Assumption 5 Mathematical software was generally written in Fortran or Algol, since most scientific computation was done in these languages.
Today’s Reality • The diversity of platforms may call for many versions (and languages of implementation) of the same algorithm • No single version, even with machine dependent adaptations, may be suitable.
Questions for Mathematical Software Developers • Questions of tailoring and troubleshooting persist as the software is adapted to different computing environments and programming languages
Assumption 6 • The structure of libraries was driven by a mathematical taxonomy: special functions, solution of linear algebraic equations, curve and surface fitting, ordinary differential equations, etc. • Completeness of coverage could be measured by the most commonly used entries in this taxonomy without too much knowledge about the details of the various simulations.
Today’s Reality • Problem characteristics in a particular simulation may dictate algorithm variations that don’t neatly fit the “general purpose” mathematical taxonomy • Complex symmetric (not hermitian) matrix solutions • Sparse matrices with specific patterns • Fixed step ODE solvers • Very specialized curve and surface fitting tools
Simulation Library
Questions for Mathematical Software Developers • How is an external library adapted to specific applications contexts, where that library may need new functionality driven by specific applications? • How does a library organize and support important but non-standard algorithms?
Comment • Assumptions 2 (IP issues), 4 (diversity of environments) and 6 (specialized requirements) kept us from adopting a commercial library as our foundation at Boeing. We studied the issue four or five times from 1980 till 2001.
Continued Need • In spite of the changing assumptions in the field of mathematical software, the need for mathematical software persists and grows • Once confined to simulations, math software is now at the heart of robotics, elevator operations, flight controls, GPS devices, etc. • However, the world in which this software is needed is much more complex, with • Many users migrating to “off the shelf” software • New applications requiring non-standard algorithms • Significant reuse questions • Diverse environments challenging the measure of use, standards of delivery, and the stability of the software
Conclusions • Mathematical software was started with a collection of tacit assumptions in the 1960s • These assumptions are no longer valid • As in the case of land ownership and airplanes, or IP issues and remix capability, this calls for rethinking basic issues • I offer these questions for your consideration
Acknowledgments • I would like to thank Thomas Grandine from Boeing for help in the preparation of these ideas • Ronald F. Boisvert, “Mathematical Software: Past, Present and Future,” Mathematics and Computers in Simulation, vol. 54, 2000, pp. 227-241 • Unknown remix artist