Abstract
Ultralightweight Thread (uThread) is a library package designed and optimized for user-level management of parallelism in a single application program running on distributed-memory computers. Existing process management systems incur an unnecessarily high cost when used for the type of parallelism exploited within an application. By reducing the overhead of ownership protection and frequent context switches, uThread encourages both simplicity and performance. In addition, uThread provides various scheduling support to balance the system load. The uThread package reduces the cost of parallelism management to nearly the lower bound. This package has been successfully running on most distributed-memory computers, such as the Intel iPSC/860, Touchstone Delta. NCUBE, and TMC CM-5.
Similar content being viewed by others
References
Accetta, M., Baron, R., Golub, D., Rashid, R., Tevanian, A., and Young, M. 1986. Mach: A new kernel foundation for UNIX development. InProc., Summer 1986 USENIX Conf., pp. 93–112.
Almasi, G.S., and Gottlieb, A. 1994.Highly Parallel Computing. Benjamin/Cummings Publishing Co.
Anderson, T.E., Bershad, B.N., Lazowska, E.D., and Levy, H.M. 1992. Scheduler activations: Efficient kernel support for the user-level management.ACM Trans. Comp. Systems, 10, 1 (Feb.): 53–79.
Athas, W.C. 1987. Fine grain concurrent computations. Ph.D. thesis, Dept. of Comp. Sci., Calif. Institute of Technology, Pasadena, Calif.
Bershad, B.N., Anderson, T.E., Lazowska, E.D., and Levy, H.M. 1990. Lightweight remote procedure call.ACM Trans. Comp. Systems, 8, 1 (Feb.): 37–55.
Chapin, S.J. 1993. Scheduling support mechanisms for autonomous, heterogeneous, distributed systems. Ph.D. thesis, Purdue University, West Lafayette, Ind.
Cooper, E.C., and Draves, R.P. 1988. C threads. Tech. Rept. CMU-CS-88-154, School of Comp. Sci., Carnegie Mellon Univ., Pittsburgh, Penn.
Dean, R., 1993. Using continuations to build a user-level threads library. InProc., Third USENIX Mach Conf., pp. 137–151.
Eager, D.L., Lazowska, E.D., and Zahorjan, J. 1986a. A comparison of receiver-initiated and sender-initiated adaptive load sharing.Performance Eval., 6, 1 (Mar.): 53–68.
Eager, D.L., Lazowska, E.D., and Zahorjan, J. 1986b. Adaptive load sharing in homogeneous distributed systems.IEEE Trans. Software Eng., SE-12, 5(May): 662–674.
Koller, J. 1988. The MOOSE n operating system and dynamic load balancing. InProc., Fourth Conf. on Hypercube Concurrent Computers and Applications, pp. 599–602.
Lin, F.C.H., and Keller, R.M. 1987. The gradient model load balancing method.IEEE Trans. Software Eng., 13, 1 (Jan.): 32–38.
Marsh, B.D., Scott, M.L., LeBlanc, T.J., and Markatos, E.P. 1991. First-class user-level threads. InACM Symp. on the Principles of Operating Systems (inACM Operating System Review), pp. 483–490.
Mullender, S.J., Rossum, G. van, Tanenbaum, A.S., Renesse, R. van, and Staveren, H. van. 1990. Amoeba—A distributed operating system for the 1990s.IEEE Comp., 23, 5 (May): 44–53.
Noakes, M.D., Wallach, D.A., and Dally, W.J. 1993. The J-machine multicomputer: An architecture evaluation. InProc., 20th Annual Internat. Symp. on Computer Architecture, pp. 224–235.
Papadopoulos, G.M., and Culler, D.E. 1990. Monsoon: An explicit token-store architecture. InProc., 17th Annual Internat. Symp. on Computer Architecture.
Powell, M.L., Kleiman, S.R., Barton, S., Shah, D., Stein, D., and Weeks, M. 1991. Sunos multi-thread architecture. InProc., Winter 1991 USENIX Conf., pp. 65–79.
Rozier, M. 1992. Chorus. InProc., USENIX Workshop on Microkernels and Other Kernel Architectures.
Salmon, J., Callahan, S., Flower, J., and Kolawa, A. 1988. MOOSE: A multi-tasking operating system for hypercubes. InProc., Third Conf. on Hypercube Concurrent Computers and Applications, vol. 1, pp. 391–396.
Shu, W. 1994a. Dynamic scheduling of medium-grained processes on distributed memory computers. InProc., 27th Hawaii Internat. Conf. on System Sciences, pp. 435–444.
Shu, W., 1994b. Runtime incremental parallel scheduling on distributed memory computers. Tech. Rept. 94-25, Dept. of Comp. Sci., State Univ. of New York at Buffalo.
Singhal, M., and Shivaratri, N.G. 1994.Advanced Concepts in Operating Systems: Distributed, Database, and Multiprocessor Operating Systems. McGraw-Hill.
Stein, D., and Shah, D. 1992. Implementing lightweight threads. InProc., Summer 1992 USENIX Conf., pp. 1–9.
Tanenbaum, A.S. 1992.Modern Operating Systems. Prentice-Hall, Englewood Cliffs, NJ.
von Eicken, T., Culler, D.E., Goldstein, S.C., and Schauser, K.E. 1992. Active messages: A mechanism for integrated communication and computation. InProc., 19 Annual Internat. Symp. on Computer Architecture, pp. 256–266.
Willebeek-LeMair, M., and Reeves, A.P. 1993. Strategies for dynamic load balancing on highly parallel computers.J. Parallel and Distr. Comp., 9, 4 (Sept.): 979–993.
Wu, M.Y., and Gajski, D.D. 1990. Hypertool: A programming aid for message-passing systems.IEEE Trans. Parallel and Distr. Systems, 1, 3 (Jul.): 330–343.
Yang, T., and Gerasoulis, A. 1992. PYRROS: Static task scheduling and code generation for message-passing multiprocessors. InProc., 6th ACM Internat. Conf. on Supercomputing.
Author information
Authors and Affiliations
Additional information
This research was supported by NSF grants CCR-9109114.
Rights and permissions
About this article
Cite this article
Shu, W. Run-time support for user-level ultralightweight threads on distributed-memory computers. J Supercomput 9, 91–103 (1995). https://doi.org/10.1007/BF01245399
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF01245399