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.
Similar content being viewed by others
References
Ahuja, S., Carriero, N., and Gelertner, D. 1986. Linda and friends. Computer, 19(8): 26–34.
Allen, J. R., Kennedy, K. 1982. A program to Convert Fortran to parallel form. Rep. MASC-TR82–6, Rice University, Houston, Texas, March 1982.
Chen, M. E. 1986. Very-High-Level Programming in Crystal. Dept. of Computer Science, Yale University, New Haven, Conn., Dec. 1986.
Cytron, R. 1984. Compile Time Scheduling and Optimization for Asynchronous Machines. Dept. of Computer Science, University of Illinois, Urbana, Oct. 1984.
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.
Halstead, R. H., 1985. Multilisp: A language for concurrent symbolic computation. ACM Trans. Programming Languages Systems, 7(4): 501–538.
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.
Hudak, P. 1986. Para-functional programming. Computer, 19(8): 60–70.
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.
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.
Nicolau, A. 1985. Percolation Scheduling: A Parallel Compilation Technique. Tech. Rpt., Dept. of Computer Science, Cornell University, Ithaca, N.Y.
Nikhil, R. S., Pingali, K., and Arvind. 1986. Id Nouveau. CSG Memo 265, Computational Structures Group, LCS, MIT, Cambridge, Mass.
Padua, D. A., and Wolfe, M. J. 1986. Advanced compiler optimizations for supercomputers. Commun. Assoc. Comput. Mach., 29(12): 1184–1201.
Padua, D. A., Kuck, D. J., and Lawrie, D. H. 1980. High-speed multiprocessors and compilation techniques. IEEE Trans. Comput. C29(9): 763–776.
Schwartz, J. T. 1980. Ultracomputers. ACM Trans. Programming Languages Systems, 2(4): 484–521.
Schwartz, J. T., Dewar, R. B. K., Dubinsky, E., and Schonberg, E. 1986. Programming with Sets: An Introduction to SETL. Springer-Verlag, New York.
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.
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.
Author information
Authors and Affiliations
Additional information
This work was supported in part under ONR Grant N00014-86-K-0215 and under NSF Grant DCR-8503610.
Rights 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
Issue Date:
DOI: https://doi.org/10.1007/BF00129783