A language and system for the construction and tuning of parallel programs
- 1 April 1988
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 14 (4), 455-471
- https://doi.org/10.1109/32.4669
Abstract
The programming of efficient parallel software typically requires extensive experimentation with program prototypes. To facilitate such experimentation, any programming system that supports rapid prototyping of parallel programs should provide high-level language primitives with which programs can be explicitly, statically, or dynamically tuned with respect to performance and reliability. When using such primitives, programmers should not need to interact explicitly or even be aware of the different software tools involved in program construction and tuning, such as compilers, linkers, and loaders. In addition, such language primitives should be able to refer conveniently to the information about the executing program and the parallel hardware required for tuning. Such information may include monitoring data about the current or previous program or even hints regarding appropriate tuning decisions. Language primitives and an associated programming system for program tuning are presented in this paper. The primitives and system have been implemented, and have been tested with several parallel applicationson a network of UNIX@ workstations.Keywords
This publication has 29 references indexed in Scilit:
- Monitoring distributed systemsACM Transactions on Computer Systems, 1987
- Understanding and Automating Algorithm DesignIEEE Transactions on Software Engineering, 1985
- A 15 Year Perspective on Automatic ProgrammingIEEE Transactions on Software Engineering, 1985
- The Eden System: A Technical ReviewIEEE Transactions on Software Engineering, 1985
- Experience with Traits in the Xerox Star WorkstationIEEE Transactions on Software Engineering, 1984
- The Refinement Paradigm: The Interaction of Coding and Efficiency Knowledge in Program SynthesisIEEE Transactions on Software Engineering, 1981
- Task Allocation in Distributed Data ProcessingComputer, 1980
- MedusaCommunications of the ACM, 1980
- StarOS, a multiprocessor operating system for the support of task forcesPublished by Association for Computing Machinery (ACM) ,1979
- Languages for representing software specifications and designsACM SIGSOFT Software Engineering Notes, 1978