skip to main content
10.1145/62115.62122acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
Article
Free access

Compiling C* programs for a hypercube multicomputer

Published: 01 January 1988 Publication History

Abstract

A data parallel language such as C* has a number of advantages over conventional hypercube programming languages. The algorithm design process is simpler, because (1) message passing is invisible, (2) race conditions are nonexistent, and (3) the data can be put into a one-to-one correspondence with the virtual processors. Since data are mapped to virtual processors, rather than physical processors, it is easier to move algorithms implemented on one size hypercube to a larger or smaller system. We outline the design of a C* compiler for a hypercube multicomputer. Our design goals are to minimize the amount of time spent synchronizing, limit the number of interprocessor communications, and make each physical processor's emulation of a set of virtual processors as efficient as possible. We have hand translated three benchmark programs and compared their performance with that of ordinary C programs. All three programs—matrix multiplication, LU decomposition, and hyperquicksort—achieve reasonable speedup on a commercial hypercube, even when solving problems of modest size. On a 64-processor NCUBE/7, the C* matrix multiplication program achieves a speedup of 27 when multiplying two 64 × 64 matrices, the hyperquicksort program achieves a speedup of 10 when sorting 16,384 integers, and LU decomposition attains a speedup of 7 when decomposing a 256 × 256 system of linear equations. We believe the degradation in machine performance resulting from the use of a data parallel language will be more than compensated for by the increase in programmer productivity.

References

[1]
Anonymous. Introduction to data level parallelism. Technical Report 86.14, Thinking Machines Corporation, 1986.
[2]
C. A. Grasso and M. J. quinn. Art {/0 system for NCUBE node processors. Technical Report PCL-87-10, University of New Hampshire, 1987.
[3]
W. D. Hillis. The Connection Machine. The MIT Press, Cambridge, MA, 1985.
[4]
W. D. Hillis and G. L. Steele Jr. Data parallel algorithms. Communications of the ACM, 29( 12):1170-1183, December 1986.
[5]
B. W. Kernighan and D. Ritchie. The C Proqrammin# Language. Prentice-Hall, Englewood Cliffs, N J, 1978.
[6]
D. A. Padua and M. J. Wolfe. Advanced compiler optimizations for supercomputers. Commurtications of the ACM, 29(12):1184-1201, December 1986.
[7]
J. F. Palmer. A VLSI parallel supercompurer. In M. T. tteath, editor, Hypercube Mul. ticomputers 1986, pages 19-26, SIAM Press, Philadelphia, PA, 1986.
[8]
M. J. Quinn. Ar~alysis and benchmarking of two parallel 8ortin9 alqorithms: hyperquicksort and quickmerge. Technical Report PCL-88-13, University of New Hampshire, 1988.
[9]
M. J. Quhm. Analysis and implementation of branch-and-bound algorithms on a hypercube multicomputer. Technical Report PCL-88-15, University of New Hampshire, 1988.
[10]
M. J. Quinn. Designin~ Eff~cier~t Al9orithms for Parallel Computers. McGraw-Hill, New York, NY, 1987.
[11]
J. R. Rose and (3. L. Steele Jr. C*: An extended C languaye for data parallel program. rainy. Technical Report PL 87-5, Tl~inking Machines Corporation, 1986.
[12]
J. Salmon. CUBtX: programnaing hypercubes without programming hosts. In M. T. Heath, editor, Hypercube Multiprocessors 1987, pages 3-9, SIAM Press, Philadelphia, PA, 1987.
[13]
R. Sedgewick. hnplementing quicksort programs. Communications of the A CM, 21(10):S47-857, October 1978.
[14]
B. Stroustrup. The C++ Programmia9 Language. Addison-Wesley, Reading, MA, 1986.
[15]
S. J. Sulsky. gypercube implementations .for the solution of linear systems of equations. Master's thesis, University of New Halnpshire, 1987.
[16]
B. Wagar. Hyperquicksort~a fast sorting algorithln for hypercubes. In M. T. Heath, editor, Hypercube Multiprocessors 1987, pages 292-299, SIAM Press, Philadelphia, PA, 1987.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPEALS '88: Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
January 1988
246 pages
ISBN:0897912764
DOI:10.1145/62115
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 23, Issue 9
    Proceedings of the ACM/SIGPLAN PPEALS 1988
    Sept. 1988
    246 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/62116
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1988

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

PPEALS88
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)92
  • Downloads (Last 6 weeks)13
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media