Abstract
Satin is a system for running divide and conquer programs on distributed memory systems (and ultimately on wide-area metacomput- ing systems). Satin extends Java with three simple Cilk-like primitives for divide and conquer programming. The Satin compiler and runtime sys- tem cooperate to implement these primitives efficiently on a distributed system, using work stealing to distribute the jobs. Satin optimizes the overhead of local jobs using on-demand serialization, which avoids copy- ing and serialization of parameters for jobs that are not stolen. This optimization is implemented using explicit invocation records. We have implemented Satin by extending the Manta compiler. We discuss the performance of ten applications on a Myrinet-based cluster.
Chapter PDF
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
H. E. Bal, R. Bhoedjang, R. Hofman, C. Jacobs, K. Langendoen, T. Rühl, and F. Kaashoek. Performance Evaluation of the Orca Shared Object System. ACM Transactions on Computer Systems, 16(1):1–40, Feb. 1998.
J. Baldeschwieler, R. Blumofe, and E. Brewer. ATLAS: An Infrastructure for Global Computing. In Proceedings of the Seventh ACM SIGOPS European Workshop on System Support for Worldwide Applications, 1996.
R. A. F. Bhoedjang, T. Rühl, and H. E. Bal. User-Level Network Interface Protocols. E Computer 31(11):53–60, Nov. 1998.
A. Bik, J. Villacis, and D. Gannon. javar: A prototype Java restructuring compiler. currency: Practice and Experience 9(11):1181–1191, November 1997.
R. Blumofe and P. Lisiecki. Adaptive and reliable parallel computing on networks of workstations. In Proceedings of the USENIX 1997 Annual Technical Conference on UNIX and Advanced Computing Systems Anaheim, California, 1997.
R. D. Blumofe, C. F. Joerg, B. C. Kuszmaul, C. E. Leiserson, K. H. Randall, and Y. Zhou. Cilk: An efficient multithreaded runtime system. In Proceedings of the 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP’95, pages 207–216, Santa Barbara, California, July 1995.
J. Darlington. Alice: a multi-processor reduction machine for the parallel evaluation of applicative languages. In Arvind, editor, 1st Conference on Functional Programming Languages and Computer Architecture, pages 65–76, Wentworth-by-the-Sea, Portsmouth, New Hampshire, 1981.
The Distributed ASCI Supercomputer (DAS). http://www.cs.vu.nl/das/.
B. Freisleben and T. Kielmann. Automated Transformation of Sequential Divide-and-Conquer Algorithms into Parallel Programs. Computers and Artificial Intelligence, 14(6):579–596, 1995.
K. S. Gatlin and L. Carter. Architecture-cognizant divide and conquer algorithms. In SuperComputing’ 99, November 1999.
D. Lea. A java fork/join framework. In ACM Java Grande 2000 Conference, San Francisco, California, June 2000.
J. Maassen, R. van Nieuwpoort, R. Veldema, H. Bal, and A. Plaat. An Efficient Implementation of Java’s Remote Method Invocation. In ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 173–182, Atlanta, GA, May 1999.
E. Mohr, D. Kranz, and R. Halstead. Lazy task creation: a technique for increasing the granularity of parallel programs. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 185–197, June 1990.
M. Philippsen and M. Zenger. JavaParty—Transparent Remote Objects in Java. Concurrency: Practice and Experience, pages 1225–1242, Nov. 1997.
R. Rugina and M. Rinard. Automatic parallelization of divide and conquer algorithms. In Seventh ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 72–83, Atlanta, May 4–6 1999. Massachusetts Institute of Technology.
Sun MicroSystems, Inc. Java (TM) Object Serialization Specification, 1996. ftp://ftp.javasoft.com/docs/jdk1.1/serial-spec.ps.
J. Waldo. Remote procedure calls and Java Remote Method Invocation. IEEE Concurrency, pages 5–7, July-September 1998.
I. Watson, V. Woods, P. Watson, R. Banach, M. Greenberg, and J. Sargeant. Flagship: A parallel architecture for declarative programming. In 15th IEEE/ACM Symp. on Computer Architecture, pages 124–130, Honolulu, Hawaii, 1988. ACM SIGARCH newsletter, 16(2).
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
van Nieuwpoort, R.V., Kielmann, T., Bal, H.E. (2000). Satin: Efficient Parallel Divide-and-Conquer in Java. In: Bode, A., Ludwig, T., Karl, W., Wismüller, R. (eds) Euro-Par 2000 Parallel Processing. Euro-Par 2000. Lecture Notes in Computer Science, vol 1900. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44520-X_96
Download citation
DOI: https://doi.org/10.1007/3-540-44520-X_96
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67956-1
Online ISBN: 978-3-540-44520-3
eBook Packages: Springer Book Archive