Goals of the future software development



next up previous contents
Next: Opportunities Up: Goals Previous: Limitations of current

Goals of the future software development

In order to overcome current limitations and develop a software technology suitable for problem solving with HPCS, it is essential to recognize that software complexity grows with both hardware sophistication and application domain and neither the new hardware nor the new application domains can be modeled by means of control-flow. Therefore, the complex software required in the future can only be achieved by developing a mathematical methodology for complex problem solving that unifies parallel and sequential program development and integrates software tools used for this purpose. The core of the computing system is the hardware itself, and the outermost layer is the end user software. But there are many intermediate layers including operating systems, language compilers, networking protocols, etc. Only when each layer of this hierarchy of computing systems is appropriately constructed can further developments be effectively completed. Although this structuring is visible in the current software, it grew up in an ad hoc manner and lacks the capability to integrate the layers and to unify the paradigms for program development. That is, the fundamental problem of the current software technology is actually generated by the contradiction between the current system software and the application software. This contradiction is particularly visible in the context of the HPCS whose computation paradigms are not necessarily sequential and which are controlled by a system software derived from sequential machines. This contradiction is aggravated by the tremendous development of the HPCS, both as a means to advance their mission and as a national resource to enhance American productivity and competitiveness [17].

The resolution of this conflict cannot be obtained by patching the conventional system software, rather investment in the development of a new system software suitable for the HPCS is necessary for that. As one can see from the analysis of the current situation presented in [17], the time for making such an investment has arrived. The research areas to be emphasized are the discovery of new and unifying concepts for program development and implementation mechanisms, and the creation of a mathematical methodology for system software design and implementation. Scalability of the system software tools and the incremental nature of the application software developed with them are probably the major characteristics of these models.

The goals we stress in this paper relate to the development of tools that support each layer of the overall software system. These layers emphasize different levels of abstraction, with inner layers being closely intertwined with the hardware and outer layers being strongly oriented to the problem domain. To serve effectively, the software must strive to match the appropriate level of abstraction. We advocate software design that permits the end users to focus their attention on the problem domain, and leaves the mapping of the computation into whatever hardware platform is being used to the lower levels of the system that are optimized for that particular hardware.


next up previous contents
Next: Opportunities Up: Goals Previous: Limitations of current