Newsgroups: comp.parallel From: furnish@dino.ph.utexas.edu (Geoffrey Furnish) Subject: ANNOUNCE: AC++ 1.0 for the CM-5 Organization: Institute for Fusion Studies, University of Texas at Austin Date: Thu, 9 Jun 1994 10:40:23 GMT AC++ for the CM-5 This is to announce the availability of a new compiler for the CM-5, called "AC++". AC++ is an adaptation of GCC to support the CM-5 vector units from either C or C++. If you want to program the CM-5 in either C or C++, and need to use the vector units, this tool may be of interest to you. In particular, AC++ provides the full benefit of C++ object oriented programming without sacrificing the numeric performance of the CM-5 vector units. If you used GCC and CDPEAC before, you might prefer this. If you have been wondering when you'd ever be able to program the CM-5 in an object oriented language AND use the vector units, this tool may be of interest to you. AC++ is based on AC, the vector unit capable version of GCC done by Bill Carlson of the Supercomputing Research Center. AC provides access to the CM-5 vector units from C code. AC++ adds that capability to C++ code as well. The AC/AC++ language consists of standard C/C++, plus language extensions to support direct manipulation of the CM-5 vector units. A new type qualifier "aux" is provided to specify that a variable is to have an instance in each of the four vector units on a node. (Hence the 'A' in the name). For instance, aux int ai; declares an integer variable ai which has a value in each vector unit. 'aux' can qualify any of the built in types, int, long, float, double, as well as pointers to them and arrays of them. You can also have aux structs. Operations on aux vectors use the vector units. For example: aux int v[10]; ... v = v + 7; will operate on the vector units to add 7 to each element of v in each vector unit. The manual describes the language extensions and the use thereof, in detail. History and Availability: AC was done by Bill Carlson at SRC. Development of AC++ was funded by Thinking Machines Corporation. The result of this work, AC++ 1.0, is available via anonymous ftp from think.com. /anonymous@think.com:/cm/ac++/ac++-1.0.0.tar.gz Note however, that AC++ is NOT a product of Thinking Machines Corporation. In particular, Thinking Machines is graciously making space available for the distribution of AC++ on their ftp site, but provides no representation of the compiler's capabilities or support for its use. Contents: The above file, ac++-1.0.0.tar.gz contains the full source for the AC++ compiler, a precompiled version of libg++, and a manual. If you are the sort of person who builds new versions of GCC on your workstation, then you can probably handle building AC++. Otherwise, ask your site administrator to install it for you. The manual is provided in Postscript and in Emacs info format. The manual refers to AC++ as "Thinking Machines AC++", but as noted above, this should only be understood as the Thinking Machines "distribution" of AC++, not as a product of Thinking Machines Corporation. Thinking Machines is also preparing (as a courtesy) an improved version of the manual for use in CMView. Ask your site administrator to get it when available. Current Status: AC++ 1.0 is based on AC release "f1", which in turn is based on GCC 2.3.3. It is noteworthy that both GCC and AC, have advanced considerably since the versions on which AC++ is based. The basic C and C++ language support in AC++ 1.0 is identical to that of GCC 2.3.3. If you don't know the history of GCC very well, a short summary would be that GCC 2.3.3 has: C support: excellent. C++ support: classes, virtual functions, etc all work. multiple inheritance works. overloading works if you don't push it too hard. iostremas work. templates are pretty flaky. exceptions aren't supported. Future of AC++: The future of AC++ is uncertain. Thinking Machines has opted not to fund additional development of AC++ at this time. It would obviously be desriable to get AC++ up to current revs of GCC and AC. If you or your organization would like to see further development of AC++, you are welcome to contact me. We might be able to work something out. Of course it is under GPL, so you can always take the source and run with it... Of course you have my permission :-), to contact your favorite supercomputer vendor through your normal customer feedback channels, and inform them of what you do and don't want in the form of languages and programming support environments. Support for AC++: There is no formal support channel for AC++. If a guaranteed support mechanism is important to you or your site, you are welcome to contact me. We might be able to work something out. Of course you can also contact your favorite supercomputer vendor and inform them of what services would be most valuable to you... Conclusion: AC++ provides a C++ compilation environment for programming the CM-5, with language extensions for accessing the vector units. With this tool it is possible to develop high performance codes for the CM-5 using C++. The compiler is available without cost via anonymous ftp. The compiler supports a reasonable set of C++ features, including virtual functions, mulitple inheritance, and method overloading as well as C++ style i/o. -- Geoffrey Furnish UT Institute for Fusion Studies, furnish@dino.ph.utexas.edu 512-471-6147