Abstract
NCX is an extended C language for data-parallelism, which is one of the most important computation models to support realistic applications of massively parallel computers. The design criteria of the language include easy shifting from the C language, low-cost implementation of efficient compilers, and high integrity as a programming language. The language is based on the concept of virtual processors, each being powerful enough to execute the full-set C language. Several features for data-parallel computation, such as inter-processor communication, are added to the language so that they obey the design principles of the base language C. The language is intended to be used on various architectures, and is now being implemented for some machines with different architectures. In order to support low-cost but efficient implementation of NCX, a preprocessor, called NICS, has been developed, which performs common, machine-independent analysis and generates intermediate code. This paper overviews the major extended features of NCX, together with some programming examples, and shows that NCX provides sufficient expressive power for data-parallel computation while it is based on the simple and clear notion of virtual processors. This paper also introduces NICS and shows how it can be used in compiler construction.
Preview
Unable to display preview. Download preview PDF.
References
Bagrodia, R., Chandy, K. M., and Kwan, E.: “UC: A Language for the Connection Machine”, Proceedings Supercomputing '90, pp.525–534 (1990).
Hatcher, P. J. and Quinn, M. J.: “Data-Parallel Programming on MIMD Computers”, MIT Press (1991).
High Performance Fortran Forum: “High Performance Fortran Language Specification (Version 1.0 DRAFT)”, Rice University (1992).
Ishihata, H., Horie, T., Inano, S., Shimizu, T., and Kato, S.: “An Architecture of Highly Parallel Computer AP1000”, IEEE Pacific Rim Conf. on Communications, Computers and Signal processing, pp. 13–16 (1991).
Kernighan, B. W. and Ritchie, D. M.: “The C programming language second edition”, Prentice Hall (1988).
MasPar Computer Corporation: “MasPar Parallel Application Language (MPL) User Guide”, Document Part Number 9302–0100 (1991).
Prakash, S., Dhagat, M., and Bagrodia, R.: “Synchronization Issues in Data-Parallel Languages”, Languages and Compilers for Parallel Computing, Springer Lecture Notes in Computer Science, pp.76–95 (1993).
Rose, J. R. and Steele Jr., G. L.: “C: An Extended C Language for Data Parallel Programming”, Proceedings of the 2nd International Conference on Supercomputing (1987).
Stallman, R. M.: “Using and Porting GNU CC”, Free Software Foundation, Inc. (1990).
Thinking Machines Corporation: “C Programming Guide” (1993).
Tichy, W. F., Philippsen, M., and Hatcher, P.: “A critique of the programming language C”, Comm. ACM, 35(6), pp. 21–24 (1992).
Yuasa, T. et.al.: “The Data-parallel C Language NCX Language Specification (Version 3)” (in Japanese), Toyohashi University of Technology, (1993).
Yuasa, T.: “SM-1 and Its Language Systems”, in Parallel Language and Compiler Research in Japan edited by Nicolau, A., Sato, M., and Bic, L., Kluwer Academic Press (to appear).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yuasa, T., Kijima, T., Konishi, Y. (1995). The data-parallel C language NCX and its implementation strategies. In: Ito, T., Yonezawa, A. (eds) Theory and Practice of Parallel Programming. TPPP 1994. Lecture Notes in Computer Science, vol 907. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026583
Download citation
DOI: https://doi.org/10.1007/BFb0026583
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-59172-6
Online ISBN: 978-3-540-49218-4
eBook Packages: Springer Book Archive