This Article 
 Bibliographic References 
 Add to: 
Experience with Multiple Processor Versions of Concurrent C
March 1989 (vol. 15 no. 3)
pp. 335-344

Concurrent C, a superset of C providing parallel programming facilities, is considered. A uniprocessor version of Concurrent C was first implemented. After experience with this version, the Concurrent C implementation was extended to run on two types of multiple processor systems: a set of computers connected by a local area network (the distributed version) and a shared-memory multiprocessor (the multiprocessor version). Experience with implementing and using these versions of Concurrent C is described. Specifically, the language changes triggered by the multiple processor implementations, some sample programs, a comparison of the execution times on various systems, and the suitability of these multiple processor architectures are discussed.

[1] WE 321SB VMEbus Single Board Computer User Manual, AT&T Corp., Doc. 451-007, Apr. 1986.
[2] R. F. Cmelik, "Concurrent Make: The design and implementation of a distributed program in Concurrent C," AT&T Bell Laboratories, Murray Hill, NJ, 1986.
[3] R. F. Cmelik, N. H. Gehani, and W. D. Roome, "Fault tolerant Concurrent C," inProc. 18th Int. Symp. Fault-Tolerant Computing, Tokyo, Japan, 1988.
[4] S. I. Feldman, "Make--A program for maintaining computer programs"Software Practice Experience, vol. 9, pp. 225-265, 1979.
[5] N. H. Gehani and W. D. Roome, "Concurrent C,"Software-Practice and Experience, vol. 16, no. 9, pp. 821-844, Sept. 1986.
[6] N. Gehani,Ada Concurrent Programming. Englewood Cliffs, NJ: Prentice-Hall, 1984, p. 65.
[7] B. W. Kernighan and D. M. Ritchie,The C Programming Language. Englewood Cliffs, NJ: Prentice-Hall, 1978.
[8] M. D. P. Leland and W. D. Roome, "The silicon database machine," inProc. Database Machines: Fourth International Workshop, D. J. DeWitt and H. Boral, Eds. New York: Springer-Verlag, 1985, pp. 169-189.
[9] W. D. Roome, "The CTK: An efficient multiprocessor kernel," AT&T Bell Laboratories, Murray Hill, NJ, 1986.
[10] B. Smith-Thomas, "Managing I/O in concurrent programming: The Concurrent C window manager," AT&T Bell Laboratories, Murray Hill, NJ, 1985.
[11] UNIX Programmer's Manual (4.2 BSD), Comput. Sci. Div., Dept. Elec. Eng. Comput. Sci., Univ. Calif., Berkeley, CA, 1983.

Index Terms:
multiple processor versions; Concurrent C; parallel programming; uniprocessor version; local area network; shared-memory multiprocessor; execution times; C language; local area networks; multiprocessing programs; multiprocessing systems; parallel programming.
R.F. Cmelik, N.H. Gehani, W.D. Roome, "Experience with Multiple Processor Versions of Concurrent C," IEEE Transactions on Software Engineering, vol. 15, no. 3, pp. 335-344, March 1989, doi:10.1109/32.21761
Usage of this product signifies your acceptance of the Terms of Use.