| Thinking Machines Corporation, CM-5 C* Programming Guide (1993). |
....at level and put out the result. The parallel classification algorithm is sketched in more details in Fig. 7. The proposed system has been implemented on a single instruction multiple data (SIMD) architecture with an hypercube interconnection structure, i.e. a TMC Connection Machine 200 [10], 9] configurated with 4096 1 bit processors. We adopted Fig. 6. a) The pyramidal architecture and (b) the interlayer and intralayer connectivity of the processors. the mapping scheme reported in [34] to embed the pyramidal interconnection structure in the hypercube. The entire system, i.e. ....
Thinking Machines Corporation, Nov. 1990. C* Programming Guide, Version 6.0.
....programming models that have recently emerged, 13] gives an overview of existing ones the data parallel paradigm is of particular interest. Customized languages have been de ned in this area, extending classical expressions such as C or Fortran. Typical data parallel languages, such as C [15] or HPF [6] include a similar core of data parallel constructs, but they are associated with di erent semantics. Thus, it is interesting to carry out a formal semantic study about the data parallelism underlying concept, focussing on the essence independently to any language. We proceed then as ....
Thinking Machines Corp. C* Programming Guide, November 1990.
....with sequential programming. This paper deals with these questions and aims to introduce a new theory, in particular because there exists di erent intuitive semantics for data parallelism and data locality. Hence let us consider standard data parallel programming languages such as HPF [6] or C [10]: both allow data locality to be expressed as a relationship between indices of arrays and indices of so called virtual processors, but these languages di er for expressing this relationship: In HPF, alignment between two arrays, by using the ALIGN directive, provides a way to inform the ....
....(I=1:9,J=1:9) B(I,J) A(I 1,J) A(I,J 1) END FORALL . This program in HPF obviously aligns matrices A and B and implicitely expresses communications at execution time to execute the assignment. Here is an equivalent program in C , where A and B are declared of the same shape: shape [10][10]matrix; real: matrix A, B . where ( pc coord(0) 0) pc coord(1) 0) B = 1] A [ 1]A; Expressions of data distribution are very close on this example since facilities exist in these two languages to express that some index in two arrays refers to the same virtual ....
[Article contains additional citation context not shown here]
Thinking Machines Corp. C* Programming Guide, November 1990.
....add (A ; B) matrix = i,j) 1 =i =n 1 =j =n) add = a;b) a b The data field (A ; B) represents a grid of virtual processors storing local values of A and B. The result C is aligned on the same shape and n scalar additions can run in parallel, as this data parallel code says [Thi90] : shape [n] n] matrix; float:matrix A, B, C; C = A B; 5.2 Global operations A functional operation in Pei clearly defines a global operation on all the elements of a data field : it applies some function f , defined as x P (x) f(x) on these elements, whose type is scalar or sequence of ....
Thinking Machines Corp. C* Programming Guide, November 1990.
....real code. 1 Introduction To use parallel computing e ectively, many e orts have targeted the improvement of parallel languages in terms of readability, and their compilation to gain more performance. One major improvement certainly was the introduction of data parallel languages such as C [Thi90] or High Performance Fortran (HPF) HPF93] This programming model allow to write portable programs, much more rapidly and clearly than in the message passing paradigm. Some projects have also designed functional languages for that model (Nesl [Ble95] and Sisal [MSA 85] for example) to get ....
Thinking Machines Corporation. C* Programming Guide, November 1990.
....[13] 3.6 Other Data Mapping Models We have given above a model of data distribution. Other models have been proposed in the literature. For comparing them to our model, we nd it convenient to re use the notion of virtual processors and templates as de ned in our model. The language C [35], the only real language in this list, is an adaptation of the C language for the Connection Machine. Its data distribution relies on the notion of a shape, that corresponds to a template in our model. Aligning two arrays A and B can only be done by having them have the same shape: so they must ....
Thinking Machines Corp. C* Programming Guide, November 1990.
....the first block. One advantage of this scheme is that it distributes the workload on processors more evenly than a simple block or even block cyclic mapping scheme would. Note that it is difficult to express such a mapping scheme in a parallel language, such as HPF, C , Nesl, or Data Parallel C [19, 29, 2, 8]. The algorithm was implemented on the Fujitsu AP1000, a distributed memory MIMD machine, in C using the message passing library supplied with that machine. 3 Shapely Data Types A shapely data type is a data type that can be separated into two components, the shape and the data. In [12] the ....
Thinking Machines Corporation, Cambridge, Massachusetts. C* Programming Guide, May 1993.
....that the memory is virtual. Demand paging is the most common implementation of virtual memory, but it is not the only possibility. As we shall show, there are alternatives that are more e#cient for data parallel programs. 1. 3 C Our work is based on the data parallel programming language C [TMC93] C is an extension of C originally developed by Thinking Machines Corporation for their SIMD computer, the CM 2, and later adapted to the CM 5. Since then several groups [LH92, Big96] have reimplemented C to run on stock hardware. C extends C for parallel operations on data distributed over ....
....Although every operation on a parallel memory address searches the region map to locate the address region, a single search returns information about all positions in a parallel operand. This ViC representation of parallel addresses di#ers from that used by Thinking Machines and other compilers [TMC93, Big96] which combine data and metadata pointers in an extended pointer structure. These compilers allow shape aliasing, where data from a variable of one shape is used with another shape. Shape aliasing is an unsafe operation that depends on details of parallel memory implementation. ViC does ....
[Article contains additional citation context not shown here]
Thinking Machines Corporation. C* Programming Guide, May 1993.
....the distribution onto physical processors, communications management, etc. In some sense, it reveals that the concepts for expressing data locality are of main interest in data parallel programming. As examples, let us consider standard data parallel programming languages like HPF [1] and C [6]: they both provide their own way of expressing data locality: alignment of arrays for HPF, and shape of parallel variables for C . In a previous article [7] we proposed a theory which o ers a notion of data locality in which those of HPF and C could join up. The purpose of the article ....
Thinking Machines Corp. C* Programming Guide, November 1990.
....it reveals that the concepts for expressing data locality are of main interest in parallel programming and even may be viewed as the essence of parallelism in comparaison with sequential programming. As examples, let us consider standard data parallel programming languages like HPF [4] and C [10]: they both provide their own way of expressing data locality: alignment of arrays for HPF, and shapes of parallel variables for C . In a previous article [11] we proposed a theory which offers a notion of data locality in which those of HPF and C could join up. The purpose of the article was, ....
Thinking Machines Corp. C* Programming Guide, November 1990.
....in a pidgin data parallel language close to the one given by D. Hillis and G. Steele in [12] Widely applying stepwise refinement development techniques we obtained clear, complete and readable high level algorithms. In the second step, we coded these algorithms into the C programming language [24]. To evaluate the resulting code, the running time of some usual operations has been measured on a Connection Machine with 16K processors [13] The use of complex data structures over vectorial computers was considered porting a subset of the library to a Convex vectorial machine citeConvexC. To ....
Thinking Machines Corporation. C # Programming Guide, 1991.
....it reveals that the concepts for expressing data locality are of main interest in parallel programming and even may be viewed as the essence of parallelism in comparaison with sequential programming. As examples, let us consider standard data parallel programming languages as HPF [7] and C [13]: both allow data locality to be expressed and then exploited by the compiler. Locality in both of these languages is stated via a more or less explicit correspondance between indices of arrays and virtual processors. However, these languages use two different concepts for expressing this ....
Thinking Machines Corp. C* Programming Guide, November 1990.
....is described. The simulator, GRAD CM2, is an extension of the serial simulator GRADSIM [8] and offers similar features, including several classical optimization algorithms: fixed step descent, conjugate gradient, and pseudo Newtonian (BFGS) The simulator is written in the C programming language [6] and runs on the Connection Machine model CM 2. Section 2 provides an overview of the simulator. Section 3 surveys the C modules and compilation options which comprise GRAD CM2. Timing performances are reported in Section 4, followed by final remarks in Section 5. 2 Overview GRAD CM2 was ....
Thinking Machine Corporation. C* Programming Guide, November 1990.
....terminates when all its subsets terminate, at which point the subsets rejoin to continue with the following statement. Variants of both the synchronous and asynchronous form of the forall statement have been introduced by previously proposed languages, such as Blaze, C , Occam, Sisal, VAL, LISP [17, 26, 21, 15, 16, 25] and others [3] Note also that vector instructions are simple instances of the synchronous forall. None of the languages mentioned above include both forms of the forall statement, even though both are necessary for writing readable and portable parallel programs. The synchronous form is often ....
....There are basically two approaches: the data oriented approach takes the layout of data as given and schedules processes where the data resides. The process oriented approach first schedules the processes and then moves the data to them. In some languages for parallel machines, such as C [26] and Blaze [17] the burden of co locating data and processes is placed entirely on the programmer. In high level languages, the task is shared among programmer and compiler. The simple vector operations in Fortran 90 [18] for example, allow both approaches. The Fortran 90 compiler described by ....
Thinking Machines Corporation, Cambridge, Massachusetts. C* Programming Guide, Version 6.0, 1990.
....terminates when all its subsets terminate, at which point the subsets rejoin to continue with the following statement. Variants of both the synchronous and asynchronous form of the forall statement have been introduced by previously proposed languages, such as Blaze, C , Occam, Sisal, VAL, LISP [11, 17, 14, 9, 10, 16] and others [3] Note also that vector instructions are simple instances of the synchronous forall. None of the languages mentioned above include both forms of the forall statement, even though both are necessary for writing readable and portable parallel programs. The synchronous form is often ....
Thinking Machines Corporation, Cambridge, Massachusetts. C* Programming Guide, Version 6.0, November 1990.
....techniques, different from those for sets. There has been a good deal of work on data parallel techniques and languages that are all or in part data parallel: there exist parallel extensions of FORTRAN, like High Performance Fortran [43] and PTRAN [3, 24] parallel extensions of C, like C [69],C [45] of Lisp, like CM List [39] and Paralation Lisp [60, 51] and applicative parallel programming languages, like NESL [8, 10, 11] Sisal [31, 62, 30] Crystal [21] Proteus [54, 34, 59] and Data parallel ML [32, 37, 38] None of these have been concerned with query constructs and their ....
Thinking Machines Corporation, Cambridge, Massachusetts. C* Programming Guide, May 1993.
....Further, the syntax and semantics of I O operations should fit the programming paradigm of the language, so the programmer does not move from one view to another to perform I O. In this paper, we present a view of data parallel I O suited to languages such as Dataparallel C [4] and C [11]. These languages associate a virtual processor (VP) with each unit of parallel data, and parallelism is achieved through the simultaneous application of the identical operation by VPs on their data. Programmers using Dataparallel C and C see a VP s view of the computation. This view makes ....
Thinking Machines Corporation. C* Programming Guide, June 1991.
....cache coherence protocol. In the distributed memory machines, messages are sent and received by software. The second trend is toward increasingly sophisticated and varied parallel programming languages and models. These include data parallel languages like High Performance Fortran [HPFF 93] C [TMC 90] and Dino [Rosing 91] shared virtual memory systems such as Ivy [Li Hudak 86] Munin [Carter et al. 91] and Midway [Bershad et al. 93] dataflow languages such as Id [Nikhil 88] and stream based systems like Strand [Foster Taylor 90] and PCN [Foster et al. 92] These systems have one thing ....
....many data parallel languages. Early data parallel languages include Dino [Rosing et al. 90, Rosing 91] Kali [Koelbel et al. 90] and C [Rose Steele 87] The current generation of data parallel languages is more mature, and offers a richer set of directives to control data distribution [TMC 89, TMC 90, Fox et al. 91, Chapman et al. 92] A consortium of researchers and vendors is now developing a standardized language called High Performance Fortran (HPF) with some data parallel features [HPFF 93] HPF will be supported by all the major parallel system vendors, and will provide a common ....
[Article contains additional citation context not shown here]
Thinking Machines Corporation. C* Programming Guide (version 6.0), August 1990.
....code essentially emulates the virtual processors by virtual loops. Basically, for a sequential machine, it consists of embedding each data parallel instruction in a loop that enumerate all virtual processors. This technique is often used in compiling explicit data parallel languages like C [25]. Figure 5 illustrates this approach. Part of an array Virtual processor Process Physical processor A(4,6) Block,Cyclic) DISTRIBUTE Figure 5: Array A is distributed onto a 2 Theta 3 grid of 6 virtual processors. Virtual processors are emulated by virtualization loops. The physical machine ....
Thinking Machine Corporation, Cambridge MA. C programming guide, 1990.
....otherwise stated, we assume in our experiments that the underlying interconnection network is reliable (e.g. it does not lose, duplicate, or corrupt packets without signalling an error) and provides FIFO ordering. Chapter 3 DATA PARALLEL LANGUAGES We have chosen C [Rose Steele Jr. 87, TMC 90] a data parallel language, as the high level parallel language for our experiments. There exists a significant body of work on C as well as other data parallel languages such as Force [Jordan 87] Dino [Rosing et al. 90] Kali [Koelbel Mehrotra 91] Vienna Fortran [Chapman et al. 92] or ....
....a brief comparison between C and High Performance Fortran (HPF) in Section 3.2, demonstrating the similarity of the two languages. 3.1 The C Language Several languages featuring data parallel execution have been proposed over the last years. For this work, we chose the new revision of C [TMC 90, TMC 91a] as a representative data parallel language. As we will see shortly, C s communication operations are typical of what we would expect from other data parallel languages, hence our findings should extend to those languages as well. We particularly highlight the similarity between C and ....
Thinking Machines Corp., 245 First St., Cambridge MA 02142. C* Programming Guide, Version 6.0, November 1990.
....memory data parallel compilation view Classical data parallel language compilers distribute the parallel work onto a virtual machine whose processors are called virtual processors. These virtual processors do not belong to the data parallel languages and are different, for example, from C [33] virtual processors. They are an abstraction of the real machine for the compilers. The compilers assume virtual processors to be mapped one per node because a node of the distributed memory is assumed to only contain one processor. As virtual processor are mapped into a process and some parallel ....
....several virtual processes per node. As also shown in [28] the virtual process approach fits very well in the last level of the HPF model. The C model, without machine dependent functionalities, is simpler because the programmer can not specify the distribution of his her shapes. By definition [33], each C virtual processor is an independent processor. In MIMD machines, the shapes are distributed in block by some compilers to increase grain. Then, each block emulates the C virtual processors in virtualization loops. We decide that the virtualizations loops are themselves executed by some ....
Thinking Machines Corp. C* programming guide, November 1990. Version Number 6.0.
....communication constructs. Language restrictions on communication guards (no output guards) are precisely tuned to reflect the behavior of the communication protocol. RR n3044 4 Luc Boug e Another example is the Connection Machine CM 2 architecture [32] and the (new) C programming language [30] . The SIMD control of the execution model and the virtual processor facility of the CM 2 sequencer are reflected, respectively, in the semantics of the where construct and the shape definition. These concepts were even more crucial for the C ParIS and the Lisp languages, which were so closely ....
....by the SEQ of PAR paradigm, that is, a sequential composition of actions on objects with parallel access. In this section, we shortly describe five fundamental semantic concepts related to this paradigm. All of them can be found more or less explicitly in programming languages such as C [30] for the CM 2 [32] and CM 5 [33] MPL [25] for the MasPar MP 1 [2] HyperC [27] a language originally designed for the POMP massively parallel SIMD machine [23] Fortran 90 and its derived companions CM Fortran [31] for the CM 2 and CM 5, MP Fortran for the MasPar MP 1 [26] and the recent High ....
Thinking Machine Corporation, Cambridge MA. C* Programming Guide, 1990.
No context found.
Thinking Machines Corporation, CM-5 C* Programming Guide (1993).
No context found.
Thinking Machines Corp., C Programming Guide, November 1990.
No context found.
Thinking Machines Corporation. C* Programming Guide, May 1993.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC