Skip to main content
Log in

Programming language constructs for highly parallel operations on lists

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

A data structure called strips is described for representing linked lists, which enables unit time access of random list elements. Running parallel prefix on strips effectively converts a list into an array. When combined with nondeterministic statement sequencing and data operations, loops for performing iterations over lists, and insertions and deletions on lists can be parallelized yielding very efficient algorithms. The strips-based representation also allows efficient serial operations on lists, which is important both when loops cannot be parallelized or when there is more parallelism than processors.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Ahuja, S., Carriero, N., and Gelertner, D. 1986. Linda and friends. Computer, 19(8): 26–34.

    Google Scholar 

  • Allen, J. R., Kennedy, K. 1982. A program to Convert Fortran to parallel form. Rep. MASC-TR82–6, Rice University, Houston, Texas, March 1982.

    Google Scholar 

  • Chen, M. E. 1986. Very-High-Level Programming in Crystal. Dept. of Computer Science, Yale University, New Haven, Conn., Dec. 1986.

    Google Scholar 

  • Cytron, R. 1984. Compile Time Scheduling and Optimization for Asynchronous Machines. Dept. of Computer Science, University of Illinois, Urbana, Oct. 1984.

    Google Scholar 

  • Daley, W. J., Chao, L., Chien, S., Hassoun, S., Horwat, W., Kaplan, J., Song, P., Totty, B., and Wills, S. 1987. Architecture of a message driven processors. In Conference Proceedings—14th Annual Symposium on Computer Architecture (Pittsburgh, June 2–5), IEEE Computer Society Press, pp. 189–196.

  • Dietz, H. and Klappholz, D. 1985. Refined C: A sequential language for parallel processing. In Conference Procedings—1985 International Conference on Parallel Processing (St. Charles, Ill., Aug. 20–23), IEEE Computer Society Press, pp. 442–449.

  • Gelertner, D. 1986. Introduction to special issue on domesticating parallelism. Computer, 19(8): 12–16.

    Google Scholar 

  • Halstead, R. H., 1985. Multilisp: A language for concurrent symbolic computation. ACM Trans. Programming Languages Systems, 7(4): 501–538.

    Google Scholar 

  • Harrison, W. L. III, and Padua. D. A. 1986. Representing S-expressions for the efficient evaluation of LISP on parallel processors. In Conference Proceedings—1986 International Conference on Parallel Processing(St. Charles, Ill., Aug. 19–22), IEEE Computer Society Press, pp. 703–710.

  • Hillis, W. D., and Steele, G. L. Jr. 1986. Data parallel algorithms. Commun. Assoc. Comput. Mach., 29(12): 1170–1183.

    Google Scholar 

  • Hudak, P. 1986. Para-functional programming. Computer, 19(8): 60–70.

    Google Scholar 

  • Cole, R., and Vishkin, U. 1986. Deterministic coin tossing and accelerating cascades: micro and macro techniques of designing parallel algorithms. Proceedings 18th Annual Association for Computing Machinery Symposium on Theory of Computing—1986, pp. 206–219.

  • Ladner, R. E., and Fisher, M. J. 1980. Parallel prefix computations. J. Assoc. Comput. Mach. 27(4): 831–838.

    Google Scholar 

  • Lee, G., Kruskal, C. P., and Kuck, D. J. 1985. An empirical study of automatic restructuring of nonnumeric programs for parallel processors. IEEE Trans. Comput. C-34(10): 927–933.

    Google Scholar 

  • Nicolau, A. 1985. Percolation Scheduling: A Parallel Compilation Technique. Tech. Rpt., Dept. of Computer Science, Cornell University, Ithaca, N.Y.

    Google Scholar 

  • Nikhil, R. S., Pingali, K., and Arvind. 1986. Id Nouveau. CSG Memo 265, Computational Structures Group, LCS, MIT, Cambridge, Mass.

    Google Scholar 

  • Padua, D. A., and Wolfe, M. J. 1986. Advanced compiler optimizations for supercomputers. Commun. Assoc. Comput. Mach., 29(12): 1184–1201.

    Google Scholar 

  • Padua, D. A., Kuck, D. J., and Lawrie, D. H. 1980. High-speed multiprocessors and compilation techniques. IEEE Trans. Comput. C29(9): 763–776.

    Google Scholar 

  • Schwartz, J. T. 1980. Ultracomputers. ACM Trans. Programming Languages Systems, 2(4): 484–521.

    Google Scholar 

  • Schwartz, J. T., Dewar, R. B. K., Dubinsky, E., and Schonberg, E. 1986. Programming with Sets: An Introduction to SETL. Springer-Verlag, New York.

    Google Scholar 

  • Smith, B. 1987. The Horizon Architecture. Lecture, Argonne National Laboratory.

  • Solworth, J. A. 1988. The Microflow architecture. In Conference Proceedings—1988 International Conference on Parallel Processing (St. Charles, Ill., Aug. 16–20), IEEE Computer Society Press, to appear.

  • Steele, G. L. 1980. Destructive Reordering of CDR-coded Lists. AI memo 587, MIT, Cambridge, Mass.

    Google Scholar 

  • Steele, G. L., and Hillis, W. D. 1986. Connection Machine Lisp: Fine-grained parallel symbolic processing. In Conference Proceedings—1986 ACM Conf. on Lisp and Func. Lang. (Cambridge, Mass., Aug.), pp. 279–297.

  • Tarjan, R. E. 1975. Efficiency of a good, but not linear set union algorithm. J. Assoc. Comput. Mach., 22: 215–225.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported in part under ONR Grant N00014-86-K-0215 and under NSF Grant DCR-8503610.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Solworth, J.A. Programming language constructs for highly parallel operations on lists. J Supercomput 2, 331–347 (1988). https://doi.org/10.1007/BF00129783

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00129783

Keywords

Navigation