Abstract
Distributed systems are an alternative to shared-memory multiprocessors for the execution of parallel applications.Panda is a run-time system that provides architectural support for efficient parallel and distributed programming. It supplies fast user-level threads and a means for transparent and coordinated sharing of objects across a homogeneous network. The paper motivates the major architectural choices that guided our design. The problem of sharing data in a distributed environment is discussed, and the performance of the mechanisms provided by thePanda prototype implementation is assessed.
Similar content being viewed by others
References
Anderson, T.E., Bershad, B.N., Lazowska, E.D., and Levy, H.M. 1992. Scheduler activations: Effective kernel support for the user-level management of parallelism.ACM Trans. Comp. Systems, 10, 1 (Feb.): 53–79.
Assenmacher, H., Breitbach, T., Buhler, P., Hübsch, V., and Schwarz, R. 1993a.Panda—Supporting distributed programming in C++. InProc., 7th European Conf. on Object-Oriented Programming (ECOOP'93) (O. Nierstrasz, ed.), LNCS 707, Springer-Verlag, pp. 361–383.
Assenmacher, H., Breitbach, T., Buhler, P., Hübsch, V., and Schwarz, R. 1993b. ThePanda system architecture—A pico-kernel approach. InProc., fourth Workshop on Future Trends of Distributed Computing Systems (FTDCS'93) (Lisbon, Sept.), IEEE Comp. Soc. Press, pp. 470–476.
Bal, H.E., and Kaashoek, F. 1992. Orca: A language for parallel programming of distributed systems.IEEE Trans. Software Eng., 18, 3 (Mar.); 190–205.
Bershad, B.N., Zekauskas, M.J., and Sawdon, W.A. 1993. The Midway distributed shared memory system. InProc., CompCon '93 (Feb.), pp. 528–537.
Carter, J.B., Bennet, J.K., and Zwaenepoel, W. 1991. Implementation and performance of Munin. InProc., 13th ACM Symp. on Operating Systems Principles (Pacific Grove, Calif., Oct.), pp. 152–164.
Chase, J.S., Amador, F.G., Lazowska, E.D., Levy, H.M., and Littlefield, R.J. 1989. The Amber system: Parallel programming on a network of multiprocessors. InProc., 12th ACM Symp. on Operating Systems Principles (Litchfield Park, Arizona), pp. 147–158.
Coplien, J.O. 1992.Advanced C++ Programming Styles and Idioms. Addison-Wesley, Reading, Mass., pp. 133–134.
Draves, R.P., Bershad, B.N., Rashid, R.F., and Dean, R.W. 1991. Using continuations to implement thread management and communication in operating systems. InProc., 13th ACM Symp. on Operating Systems Principles (Pacific Grove, Calif., Oct.).
Fleisch, B.D., Hyde, R.L., and Juul, N.C. 1993. Moving distributed shared memory to the personal computer: The Mirage+ experience. Tech. Rept. UCR-CS-93-6, Dept. of Comp. Sci., Univ. of Calif., Riverside.
Gehani, N.H., and Roome, W.D. 1988. Concurrent C++: Concurrent programming with class(es).Software—Practice and Experience, 18, 12 (Dec.): 1157–1177.
Jul, E., Levy, H., Hutchinson, N., and Black, A. 1988. Fine-grained mobility in the Emerald system.ACM Trans. Comp. Systems, 6, 1 (Feb.): 109–133.
Keleher, P., Dwarkadas, S., Cox, A., and Zwaenepoel, W. 1993. TreadMarks: Distributed shared memory on standard workstations and operating systems. Tech. Rept. COMP TR93-214, Dept. of Comp. Sci., Rice Univ., Houston, Tex.
Liedtke, J. 1993. Improving IPC by kernel design. InProc., 14th ACM Symp. on Operating Systems Principles (Dec.), pp. 175–188.
Marsh, B.D., Scott, M.L., LeBlanc, T.J., and Markatos, E.P. 1991. First-class user-level threads. InProc., 13th Symp. on Operating Systems Principles (Pacific Grove, Calif., Oct.), pp. 110–121.
Misra, J. 1991. Loosely-coupled processes. InProc., Parallel Architectures and Languages, Europe (PARLE'91) (E.H.L. Aarts, J. van Leeuwen, and M. Rem, eds.), LNCS 506, Springer-Verlag, Berlin/New York. pp. 1–26.
Nierstrasz, O.M., and Papathomas, M. 1990. Viewing objects as patterns of communicating agents. InProc., European Conf. on Object-Oriented Programming and ACM Conf. on Object-Oriented Programming: Systems, Languages, and Applications (Ottawa, Canada, Oct. 21–25), ACM, pp. 38–42.
Nitzberg, N., and Lo, V. 1991. Distributed shared memory: A survey of issues and algorithms.IEEE Comp. (Aug.): 52–60.
Rao, V.N., and Kumar, V. 1993. On the efficiency of parallel backtracking.IEEE Trans. Parallel and Distr. Systems, 4, 4 (Apr.): 427–437.
Saleh, H., and Gautron, P. 1991. A concurrency control mechanism for C++ objects. InProc., ECOOP'91 Workshop on Object-Based Concurrent Computing (Geneva, July 15–16), LNCS 612, Springer-Verlag, pp. 95–210.
Scott, M.H., LeBlanc, T.J., and Marsh, B.D. 1990. Multi-model parallel programming in Psyche. InProc., 2nd ACM Symp. on Principles and Practice of Parallel Programming (Mar.), pp. 70–78.
Shapiro, M. 1986. Structure and encapsulation in distributed systems: The proxy principle. InProc., 6th Internat. Conf. on Distributed Computer Systems (May), pp. 198–204.
Stroustrup, B. 1986.The C++ Programming Language. Addison-Wesley, Reading, Mass.
Tanenbaum, A.S., Kaashoek, M.F., and Bal, H.E. 1992. Parallel programming using shared objects and broadcasting.IEEE Comp. (Aug.): 10–19.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Assenmacher, H., Breitbach, T., Buhler, P. et al. Parallel programming inPanda . J Supercomput 9, 71–90 (1995). https://doi.org/10.1007/BF01245398
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF01245398