Abstract
C** is a new data-parallel programming language based on a new computation model called largegrain data parallelism. C** overcomes many disadvantages of existing data-parallel languages, yet retains their distinctive and advantageous programming style and deterministic behavior. This style makes data parallelism well-suited for massively-parallel computation. Large-grain data parallelism enhances data parallelism by permitting a wider range of algorithms to be expressed naturally.
C** is an object-oriented programming language that inherits data abstraction features from C++. Existing scientific programming languages do not provide modern programming facilities such as operator extensibility, abstract datatypes, or object-oriented programming. C**- and its sequential subset C++-support modern programming practices and enable a single language to be used for all parts of large, complex programs and libraries.
This work was supported by the National Science Foundation under grants CCR-9101035 and CDA-9024618.
Preview
Unable to display preview. Download preview PDF.
References
Guy E. Blelloch. Vector Models for Data-Parallel Computing. MIT Press, 1990.
Guy E. Blelloch. NESL: A Nested Data-Parallel Language. Technical Report CMU-CS-92-103, Department of Computer Science, Carnegie Mellon University, January 1992.
Guy E. Blelloch and Gary W. Sabot. Compiling Collection-Oriented Languages onto Massively Parallel Computers. Journal of Parallel and Distributed Computing, 8:119–134, 1990.
Timothy A. Budd. An APL Compiler for a Vector Processor. ACM Transactions on Programming Languages and Systems, 6(3):297–313, July 1984.
Craig M. Chase, Alex L. Cheung, Anthony P. Reeves, and Mark R. Smith. Paragon: A Parallel Programming Environment for Scientific Applications Using Communication Structures. In Proceedings of the 1991 International Conference on Parallel Processing (Vol. II Software), pages II-211–218, August 1991.
Andrew A. Chien and William J. Dally. Concurrent Aggregates (CA). In Second ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming (PPOPP), pages 187–196, February 1990.
Philip J. Hatcher and Michael J. Quinn. Data-Parallel Programming on MIMD Computers. MIT Press, 1991.
W. Daniel Hillis and Guy L. Steele, Jr. Data Parallel Algorithms. Communications of the ACM, 29(12):1170–1183, December 1986.
Jenq Kuen Lee and Dennis Gannon. Object Oriented Parallel Programming Experiments and Results. In Proceedings of Supercomputing 91, pages 273–282, Albuquerque, NM, November 1991.
Christos Papadimitriou. The Theory of Database Concurrency Control. Computer Science Press, 1986.
John R. Rose. C*: A C++-like Language for Data-Parallel Computation. Technical Report PL-87-8, Thinking Machines Corporation, December 1987. Appeared in Usenix C++ Workshop Proceedings.
John R. Rose and Guy L. Steele Jr. C*: An Extended C Language for Data Parallel Programming. In Proceedings of the Second International Conference on Supercomputing, pages 2–16, Santa Clara, California, May 1987.
Guy L. Steele Jr. Making Asynchronous Parallelism Safe for the World. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 218–231, January 1990.
Thinking Machines Corporation. C* Reference Manual, Version 4.0, August 1987.
Thinking Machines Corporation. Supplement to C* Reference Manual, Version 4.3, May 1988.
Thinking Machines Corporation. C* Reference Manual, Version 6.0 Pre-Beta, July 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Larus, J. (1993). C**: A large-grain, object-oriented, data-parallel programming language. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1992. Lecture Notes in Computer Science, vol 757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57502-2_56
Download citation
DOI: https://doi.org/10.1007/3-540-57502-2_56
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57502-3
Online ISBN: 978-3-540-48201-7
eBook Packages: Springer Book Archive