Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

COOL: An Object-Based Language for Parallel Programming

Published: 01 August 1994 Publication History

Abstract

Effectively using shared-memory multiprocessors requires substantial programming effort. We present the programming language COOL (Concurrent Object-Oriented Language), which was designed to exploit coarse-grained parallelism at the task level in shared-memory multiprocessors. COOL's primary design goals are efficiency and expressiveness. By efficiency we mean that the language constructs should be efficient to implement and a program should not have to pay for features it does not use. By expressiveness, we imply that the program should flexibly support different concurrency patterns, thereby allowing various decompositions of a problem. COOL emphasizes the integration of concurrency and synchronization with data abstraction to ease the task of creating modular and efficient parallel programs. It is an extension of C++, which was chosen because it supports abstract data type definitions and is widely used.

References

[1]
1. C.A.R. Hoare, "Monitors: An Operating System Structuring Concept," Comm. ACM, Vol. 17, No. 10, Oct. 1974, pp. 459-557.
[2]
2. P.B. Hansen, "The Programming Language Concurrent Pascal," IEEE Trans. Software Eng., Vol. SE-1, No. 2, June 1975, pp. 199-207.
[3]
3. B.W. Lampson and D.D. Redell, "Experience with Processes and Monitors in Mesa," Comm. ACM, Vol. 23, No. 2, Feb. 1980, pp. 105- 117.
[4]
4. N. Wirth, "Modula: A Language for Modular Multiprogramming," Software Practice and Experience, Vol. 7, No. 1, Jan. 1977, pp. 3-36.
[5]
5. B. Beck, "Shared-Memory Parallel Programming in C++," IEEE Software, Vol. 7, No. 4, July 1990, pp. 38-48.
[6]
6. B. Bershad, E. Lazowska, and H. Levy, "Presto: A System for Object-Oriented Parallel Programming," Software Practice and Experience, Vol. 18, No. 8, Aug. 1988, pp. 713-732.
[7]
7. L. Cardelli et al., "Modula-3 Report," Tech. Report 31, Digital Systems Research Ctr., Palo Alto, Calif., Aug. 1988.
[8]
1. B. Stroustrup, The C++ Programming Language , Addison-Wesley, Reading, Mass., 1986.
[9]
2. C.A.R. Hoare, "Monitors: An Operating System Structuring Concept," Comm. ACM, Vol. 17, No. 10, Oct. 1974, pp. 459-557.
[10]
3. D. Lenoski et al., "The Stanford Dash Multiprocessor," Computer, Vol. 25, No. 3, Mar. 1992, pp. 63-79.
[11]
4. J.P. Singh, W.-D. Weber, and A. Gupta, "Splash: Stanford Parallel Applications for Shared Memory," Computer Architecture News, Vol. 20, No. 1, Mar. 1992, pp. 5-44.
[12]
5. E. Lusk et al., Portable Programs for Parallel Processors, Holt, Rinehard, and Winston, New York, 1967.
[13]
6. E. Rothberg and A. Gupta, "Techniques for Improving the Performance of Sparse Matrix Factorization on Multiprocessor Workstations," Proc. Supercomputing 90, IEEE CS Press, Los Alamitos, Calif., Order No. 2056 (microfiche only), 1990, pp. 232-243.
[14]
7. R. Chandra, A. Gupta, and J.L. Hennessy, "Data Locality and Load Balancing in COOL," ACM Sigplan, Symp. Principles and Practice of Parallel Programming, ACM Press, New York, 1993, pp. 249-259.

Cited By

View all
  • (2022)A Comprehensive Exploration of Languages for Parallel ComputingACM Computing Surveys10.1145/348500855:2(1-39)Online publication date: 18-Jan-2022
  • (2021)Fluid: a framework for approximate concurrency via controlled dependency relaxationProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454042(252-267)Online publication date: 19-Jun-2021
  • (2019)Proactive work stealing for futuresProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295735(257-271)Online publication date: 16-Feb-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Computer
Computer  Volume 27, Issue 8
August 1994
80 pages

Publisher

IEEE Computer Society Press

Washington, DC, United States

Publication History

Published: 01 August 1994

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)A Comprehensive Exploration of Languages for Parallel ComputingACM Computing Surveys10.1145/348500855:2(1-39)Online publication date: 18-Jan-2022
  • (2021)Fluid: a framework for approximate concurrency via controlled dependency relaxationProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454042(252-267)Online publication date: 19-Jun-2021
  • (2019)Proactive work stealing for futuresProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295735(257-271)Online publication date: 16-Feb-2019
  • (2019)Efficient race detection with futuresProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295732(340-354)Online publication date: 16-Feb-2019
  • (2018)Race detection and reachability in nearly series-parallel DAGsProceedings of the Twenty-Ninth Annual ACM-SIAM Symposium on Discrete Algorithms10.5555/3174304.3175277(156-171)Online publication date: 7-Jan-2018
  • (2015)Capsule-oriented programmingProceedings of the 37th International Conference on Software Engineering - Volume 210.5555/2819009.2819117(611-614)Online publication date: 16-May-2015
  • (2013)Understanding "cool" in human-computer interaction research and designProceedings of the 25th Australian Computer-Human Interaction Conference: Augmentation, Application, Innovation, Collaboration10.1145/2541016.2541032(53-62)Online publication date: 25-Nov-2013
  • (2009)Reinventing scheduling for multicore systemsProceedings of the 12th conference on Hot topics in operating systems10.5555/1855568.1855589(21-21)Online publication date: 18-May-2009
  • (2009)On the exploitation of loop-level parallelism in embedded applicationsACM Transactions on Embedded Computing Systems10.1145/1457255.14572578:2(1-34)Online publication date: 9-Feb-2009
  • (2009)Hierarchical place treesProceedings of the 22nd international conference on Languages and Compilers for Parallel Computing10.1007/978-3-642-13374-9_12(172-187)Online publication date: 8-Oct-2009
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media