Hostname: page-component-586b7cd67f-dlnhk Total loading time: 0 Render date: 2024-11-23T16:28:13.667Z Has data issue: false hasContentIssue false

Worst case scheduling for parallel functional programs1

Published online by Cambridge University Press:  07 November 2008

F. Warren Burton
Affiliation:
School of Computing Science, Simon Fraser University, Burnaby, British Columbia, CanadaV5A 1S6 (e-mail: burton@cs.sfu.ca)
V. J. Rayward-Smith
Affiliation:
School of Information Systems, University of East Anglia, Norwich NR4 7TJ, UK (e-mail: vjrs@sys.uea.ac.uk)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Many of the details that a programmer must manage when programming in a procedural language are handled by the implementation in a functional language. In a parallel functional language, we would expect the assignment of processes to processors and the scheduling of processes to be handled by the implementation. The partitioning of a program into processes may be handled by the implementation as well.

We will assume that a parallel functional program may create processes dynamically, and that processes may synchronize in an arbitrary manner. It does not matter whether processes are defined in the source program or generated by the implementation.

On parallel systems where each processor has some local memory, it is common practice not to move processes once they have started to execute. We will show that if each process must be executed on a single processor, then no fully automatic scheduling strategy can ensure good performance.

We also will show that if all processes are sequential processes (i.e. do not contain internal parallelism), and if a process may be moved whenever it resumes execution following synchronization with another process, then good performance can be assured, at least in theory.

Type
Articles
Copyright
Copyright © Cambridge University Press 1994

References

Warren Burton, F. (1988) Storage management in virtual tree machines. IEEE Trans. Comput., 37 (3): 321328, 03.CrossRefGoogle Scholar
Warren Burton, F., McKeown, G. P. and Rayward-Smith, V. J. (1992) On process assignment in parallel computing. Info. Process. Lett.Google Scholar
Warren Burton, F., McKeown, G. P., Rayward-Smith, V. J. and Sleep, M. R. (1981) Parallel processing and combinatorial optimization. Proc. Conf. on Combinatorial Optimization, Stirling, Scotland, 08, 1936.Google Scholar
Coffman, E. G. Jr., editor, (1976) Computer and Job-Shop Scheduling Theory. John Wiley and Sons.Google Scholar
Eager, D. L., Lazowska, E. D. and Zahorjan, J. (1986) Adaptive load sharing in homogeneous distributed systems. IEEE Trans. Softw. Eng., 12 (5): 662675, 05.CrossRefGoogle Scholar
Eager, D. L., Zahorjan, J. and Lazowska, E. D. (1989) Speedup versus efficiency in parallel systems. IEEE Trans. Comput., 38 (3): 408423, 03.CrossRefGoogle Scholar
Jaffe, J. M. (1980) Bounds on the scheduling of typed task systems. SIAM J. Comput., 9: 541551.CrossRefGoogle Scholar
Ten-Hwang Lai, T.-H. and Sprague, A. (1985) Performance of parallel branch-and-bound algorithms. IEEE Trans. Comput., 34(10): 962964, 10.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.