Abstract
This paper describes a new implementation of PaiLisp interpreter PaiLisp/MT on a multi-thread architecture. A P-continuation based PaiLisp interpreter called PaiLisp/FX is implemented on Alliant FX/80 [ItoS93]. PaiLisp/FX executes any PaiLisp programs under a non-preemptive scheduling policy and a static task partitioning method called eager task creation(ETC). PaiLisp/MT can be used as an experimental system of granularity adaptive parallel execution of PaiLisp programs to select multiple evaluation strategies. The granularity of programs is estimated by an average execution time and standard deviation of distributions of their execution time according to the granularity of target programs. In case of coarse-grained programs, PaiLisp/MT can execute them under a preemptive scheduling policy and the lazy task creation(LTC). In case of fine-grained programs it can execute them under a non-preemptive scheduling policy and LTC. This kind of adaptation of evaluation strategies can be done according to the granularity of programs and the number of executable processes. Experimental results show that the lazy task creation under the non-preemptive scheduling is very effective for a wide range of parallel programs but the granularity adaptation is useful when a program creates with various degree of granularity.
Preview
Unable to display preview. Download preview PDF.
References
H.Abelson, G.Sussman. Structure and Interpretation of Computer Programs. The MIT Press, 1985.
David L. Black. Scheduling support for concurrency and parallelism in the Mach operating system. CMU Technical Report CMU-CS-90-125, April 1990
S.K.Debray, N.W.Lin, M.Hermenegildo. Task granularity analysis in logic programs. Conference Record of Programming Language Design and Implementation, 174–188, 1990
Marc Feeley. A message passing implementation of lazy task creation. “Parallel Symbolic Computing: Languages, Systems, and Applications, US/Japan Workshop”, Springer LNCS 748, 94–107, 1993.
Marc Feeley. An efficient and general implementation of futures on large scale shared-memory multiprocessors. Dissertation presented to the Faculty of the Graduate School of Arts and Sciences Brandeis University Department of Computer Science. 1993.
R.Gabriel, J.McCarthy. Queue-based multiprocessing Lisp. Conference Record of 1984 ACM Symposium on Lisp and Functional Programming, 25–44, 1984.
R.Halstead,Jr. Implementation of Multilisp: Lisp on a multiprocessor. Conference Record of 1984 ACM Symposium on Lisp and Functional Programming, 9–17, 1984.
R.Halstead,Jr. Multilisp: A language for concurrent symbolic computation. ACM Trans. on Programming Languages and Systems, Vol.4, No.7, 501–538, 1985.
R.Halstead,Jr. New ideas in parallel lisp: language design, implementation, and programming tools. “Parallel Lisp: Languages and Systems, US/Japan Workshop on Parallel Lisp”, Springer LNCS 441, 2–57, 1990.
R.Halstead,Jr., T.Ito. “Parallel Symbolic Computing: Language, Systems and Applications, US/Japan Workshop”, Springer LNCS 748, 1993.
L.Huelsbergen, J.R.Larus, A.Aiken. Using the run-time sizes of data structures to guide parallel-thread creation. Proc. ACM Conf. Lisp and Functional Languages, 79–90, 1994.
T.Ito, T.Tamura, S.Wada. Theoretical comparisons of interpreted/compiled executions of Lisp on sequential and parallel machine models. Information Processing 86, Proceedings of IFIP Congress 86, 349–354, 1986.
T.Ito, R.Halstead,Jr. “Parallel Lisp: Languages and systems, US/Japan Workshop on Parallel Lisp”, Springer LNCS 441, 1990.
T.Ito, M.Matsui. A parallel lisp language PaiLisp and its kernel specification. “Parallel Lisp: Languages and Systems, US/Japan Workshop on Parallel Lisp”, Springer LNCS 441, 58–100, 1990.
T.Ito, T.Seino. On PaiLisp continuation and its implementation. Proceedings of ACM Workshop on Continuations (ed. O.Danvy & C.Talcott), Stanford, 73–90, 1992.
T.Ito, T.Seino. P-continuation based implementation of PaiLisp interpreter. “Parallel Symbolic Computing: Languages, Systems, and Applications, US/Japan Workshop”, Springer LNCS 748, 108–154, 1993.
E.Mohr, D.A.Kranz, R.Halstead,Jr. Lazy task creation: A technique for increasing the granularity of parallel programs. IEEE Trans. Parallel and Distributed Systems, Vol.2, No.3, 264–280, 1991.
B.Reistad, D.K.Gifford. Static dependent costs for estimating execution time. Proc. ACM Conf. Lisp and Functional Languages, 65–78, 1994
J.S.Weening, J.D.Pehoushek. Low-cost process creation and dynamic partitioning in Qlisp. “Parallel Lisp: Languages and Systems, US/Japan Workshop on Parallel Lisp”, Springer LNCS 441, 182–199, 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kawamoto, S.i., Ito, T. (1995). Multi-threaded PaiLisp with granularity adaptive parallel execution. In: Ito, T., Yonezawa, A. (eds) Theory and Practice of Parallel Programming. TPPP 1994. Lecture Notes in Computer Science, vol 907. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026566
Download citation
DOI: https://doi.org/10.1007/BFb0026566
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-59172-6
Online ISBN: 978-3-540-49218-4
eBook Packages: Springer Book Archive