| K. M. Chandy and C. Kesselman, CC++ : A declarative concurrent object oriented programming notation, in Research Directions in Object Oriented Programming, The MIT Press, 1993, pp. 281--313. |
....is sometimes because it doesn t support the operations (operator overloading, for example) and sometimes because it does the work for you (automatic garbage collection, for example) In recent years numerous variations on the theme of C for parallel computing have appeared. See, for example [8, 17, 23, 28, 31, 55]. 21 2.4.3 C# C# [20] which is an important part of the new Microsoft .NET platform, is a modern, object oriented and type safe programming language based on C and C . Header files, Interface Definition Language, and complicated interfaces are not needed in C#. C# is supposed to o#er an ....
K. M. Chandy and C. Kesselman. CC++: A declarative concurrent object-oriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, page 24. MIT Press, 1993.
....are provided. In addition to the data parallel model, HPC provides a low level shared memory model in that it defines Java style thread classes for exploiting thread parallelism. High level task parallelism may also be exploited within HPC . Specifically, HPC adopts CC s global pointers [53] for remote method invocations and provides the collective operations, such as barrier synchronization, available in the multithreading libraries also across multiple contexts. Communication in HPC takes place either transparently within the PSTL or as a result of remote method invocations. ....
M. Chandy and C. Kesselman. CC++: A Declarative Concurrent Object Oriented Programming Notation. In G. Agha, P. Wegner, and A. Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, pages 218--313. MIT Press, 1993.
....development may provide different levels of abstraction [9] High abstraction levels such as functional languages leave many decisions related to the program behavior to the parallelization framework and therefore attain only moderate performance. Intermediate abstraction levels, such as CC [10], skeletons [11] 12] 13] and Mentat [14] leave the specification of the parallel program behavior to the programmer but free him from managing communications, threads, synchronization, flow control, and pipelining. They have the potential of facilitating parallel programming and at the same time ....
K. M. Chandy, C. Kesselman, CC++: A Declarative Concurrent Object Oriented Programming Notation, Research Direction in Concurrent Object-Oriented Programming, MIT Press, pp. 281- 313, 1993
....a good programming language should provide as much support as possible to minimize the impact of these hazards. Many existing programming languages that provide explicit parallelism fail in this respect, because they provide only very primitive constructs. For example, Occam[13] Java[6] and CC [3] all provide constructs that make it very easy for the programmer to cause deadlock or race conditions. Languages such as HPF[10] are not dangerous in this respect, but, because of their limited parallel programming model, make it more di#cult to avoid parallelization overhead and to maximize ....
....the scalar expression is evaluated once, and the result is used repeatedly to fill the fields of a tuple with the same length as the other operand. For example, the following program contains a binary tuple promotion from from int to [int,int] public class promotuple [int,int] a = [2,3]; final int i = 2; i is subject to binary tuple promotion [int,int] b = i a; System.out.println( b[0] b[0] b[1] b[1] b[0] 4, b[1] 6 14 Tuples A tuple is a list of elements. The list is of fixed size, and each element can be of any type. Tuples can be constructed by ....
[Article contains additional citation context not shown here]
K. Mani Chandy and C. Kesselman. CC++: A declarative concurrent object oriented programming notation. Technical report, California Institue of Technology, September 1992.
....as a concurrent object and multiple 1 We are not saying that numeric programs do not benefit from languages like Schematic. In fact, it is widely known that many numerics benefit from support of irregular data structures [8, 12, 13] and this leads to many proposals of extensions to C [6, 7, 11, 19]. The reason why we did not include numerics from the main target applications is just that in our initial implementation, floating point numbers have boxed (hence slow) representation for the simplicity. We are also working on a similar, but statically typed language called ABCL f [31] which ....
....description of many algorithms. The problem has been recognized for a long time and in fact many languages provide some solutions to the problem. Until recently, few of them guarantees the instantaneousness of a method invocation when the programmer specifies not to serialize certain methods [7, 9, 35]. In such languages, it was up to the programmer that guarantees the desired result on all possible interleavings. More recent languages such as SYMPAL [3] and UFO [26, 27] propose more complete solutions. They allow concurrent accesses to a single object, while guaranteeing the instantaneousness. ....
[Article contains additional citation context not shown here]
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent objectoriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, chapter 11, pages 281--313. The MIT Press, 1993.
....of collective methods as well as the reduction of the computed results [17] Therefore existing topologies can be reused for globally synchronized operations and specialized collective operation patterns can also be implemented with modest effort. While many approaches like ICC [9] and CC [7] as well as ARTS are based on some language extensions, Proceedings of IPDPS 2000, pp. 483 491, ISBN 0 7695 0574 0, c 2000 IEEE 9 we have shown that it is in principle possible to provide a high level data parallel programming abstraction without any language extension. Function templates and ....
K. M. Chandy and C. Kesselman. CC++: A Declarative Concurrent Object-Oriented Programming Notation. In Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.
....solution to the above problems, there must be some way in which data, may be on a local or remote processing node, can be referenced. This is one of the hardest problems in distributed or grid computing. Typical methods for referencing data objects use pointers into a remote process memory space [4, 12] or use an object broker [22] The fundamental limitation of these approaches is that if the remote machine needs to be restarted, then the object to which the reference points may not be recreated, and if it is then it most likely will not be recreated at the same memory location. Therefore the ....
K. Mani Chandy and Carl Kesselman. CC++: A Declarative Concurrent Object-Oriented Programming Notation. Technical report, Caltech, 1993. MIT Press. 15
.... support to handle difficult and error prone tasks like processor synchronization and data transport between (heterogeneous) processors (e.g. host to DSP) Many parallel programming systems exist ranging from librarybased systems (PVM [15] MPI [9] to language based systems (HPF [6] CC [5], Orca [2] The latter systems are easy to program because of the parallelizing compiler that hides the complex interface to the parallel hardware. The performance, however, is often compromised because of the layered approach (OS runtime system compiler) taken to achieve portability. The ....
K. Chandy and C. Kesselman. CC++: A declarative concurrent object oriented programming notation. In Research Directions in Concurrent Object-Oriented Programming, pages 281--313. MIT press, 1993.
....might choose to maintain global information by using expensive remote caching strategies such as all to all communication or eager updates, which increase trac in the network and reduce the network bandwidth available to the application. 2. 2 Related Work Languages like Split C [32] and CC [33] have integrated global pointers at the language level and have shown that global pointers can be used successfully to build ecient distributed data structures. However, 5 neither language provides direct support for object migration, nor does either language transparently support automatic ....
K. M. Chandy and C. Kesselman, CC++: A Declarative Concurrent Object-Oriented Programming Notation, In Research Directions in Concurrent Object-Oriented Programming, MIT Press, 1993.
....a good programming language should provide as much support as possible to minimize the impact of these hazards. Many existing programming languages that provide explicit parallelism fail in this respect, because they provide only very primitive constructs. For example, Occam[13] Java[6] and CC [3] all provide constructs that make it very easy for the programmer to cause deadlock or race conditions. Languages such as HPF[10] are not dangerous in this respect, but, because of their limited parallel programming model, make it more di#cult to avoid parallelization overhead and to maximize ....
....once, and the result is used repeatedly to fill the fields of a tuple with the same length as the other operand. For example, the following program contains a binary tuple promotion from from int to [int,int] public class promotuple public static void main( String args[ int,int] a = [2,3]; final int i = 2; i is subject to binary tuple promotion [int,int] b = i a; System.out.println( b[0] b[0] b[1] b[1] The program generates the following output: b[0] 4, b[1] 6 14 Chapter 5 Tuples A tuple is a list of elements. The list is of fixed size, and each element can ....
[Article contains additional citation context not shown here]
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object oriented programming notation. Technical report, California Institue of Technology, September 1992.
....to lists, requires prior specific permission and or a fee. LCTES 2001, June 22 23, 2001, Snowbird, Utah, USA. Copyright 2001 ACM 0 12345 67 8 90 01 . 5.00. parallel programming systems exist ranging from librarybased systems (PVM [16] MPI [10] to language based systems (HPF [6] CC [5], Orca [2] The latter systems are easy to program because of the parallelizing compiler that hides the complex interface to the parallel hardware. The performance, however, is often compromised because of the layered approach (OS runtime system compiler) taken to achieve portability. The ....
K. Chandy and C. Kesselman. CC++: A declarative concurrent object oriented programming notation. In Research Directions in Concurrent Object-Oriented Programming, pages 281-313. MIT press, 1993.
....invocation. A barrier is also included to provide synchronization for operations on distributed containers. The following sections describe the components of the run time system. 3. 1 Global Pointers and Global References Global pointers are based on the global type in languages like CC [4], AC [3] and Split C [7] A global pointer to an object of type T is defined as a templated class HPCxxGlobalPtr T p; Global pointers can be passed between contexts to allow a processor to read and modify objects on a remote node. Two basic operations are defined on global pointers. returns ....
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object-oriented programming notation, 1993. In Research Directions in Concurrent Object Oriented Programming, MIT Press.
.... Java is a descendant of C . C and C are used increasingly in scienti c programming; they are already used almost universally by implementers of parallel libraries and compilers. In recent years numerous variations on the theme of C for parallel computing have appeared. See, for example [7, 28, 11, 2, 12, 21]. 3 Java omits various features of C and C that are considered dicult notably, pointers. Poor compiler analysis has often been blamed on these features. The inference is that Java, like Fortran, may be a suitable source language for highly optimizing compilers (although direct evidence ....
K.M. Chandy and C. Kesselman. CC++: A declarative concurrent objectoriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, page 24. MIT Press, 1993. ISBN: 0-262-01139-5.
....some reasons to think that Java may be a good language for scientific and parallel programming. Java is a descendant of C . C and C are used increasingly in scientific programming. In recent years numerous variations on the theme of C for parallel computing have appeared. See, for example [26, 6, 9, 2, 10, 18]. Java omits various features of C and C that are considered difficult notably, pointers. Poor compiler analysis has often been blamed on these features. The inference is that Java, like Fortran, may be a suitable source language for highly optimizing compilers (although direct evidence ....
K.M. Chandy and C. Kesselman. CC++: A declarative concurrent object-oriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, page 24. MIT Press, 1993. ISBN: 0-262-01139-5. 14
....programs to e#cient data parallel programs often require significant reorganization and rewriting of the original program. Task parallel extensions extend C C with new keywords, objects, and library functions, to express concurrency. Systems in this category includes Compositional C (CC )[15], ICC [16] and Charm [34] These keywords can be roughly divided into parallel block and parallel loops. 90 Language constructs that define parallel blocks can be found in number of parallel programming notations. For example, our parbegin parend notion is equivalent to the use of ....
....when failures are present. Calypso [6] Chime [51] and our system, belong to a di#erent group in which load balancing and fault tolerance are naturally supported by the software architecture itself. There is no extra cost for handling failures. 7.2 Relevant Systems 7.2. 1 CC CC [15] addresses task parallelism at a high level and is close to our programming model. CC divides the C extension into two parts, constructs for parallel machines, and constructs for distributed environments. The syntax for parallel programming uses parallel blocks and loops to express ....
K. M. Chandy and C. Kesselman. CC++: A declarative concurrent object-oriented programming notation. In G. Agha, P. Wegner, and A. Yonezawa, editors, Research Directions in Concurrent Object Oriented Programming. MIT Press, 1993.
....space, and request the system to retrieve tuples with specific characteristics. The language Cid[26] combines the notions of future with ideas in the earlier data flow language called Id, in an extension of C. Cilk[8] supports data driven execution, threads and remote function invocations. CC [11] supports parallel execution within an object using threads, and remote method execution using processor objects . Multipol [30] combines standard message passing with user invocable scheduler for executing handlers. The languages and approaches described here overlap in their abilities and ....
K.M. Chandy and C. Kesselman. CC++: A Declarative Concurrent Object-oriented Programming Notation. In G. Agha, P. Wegner, and A. Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, pages 281--313. MIT Press, 1993. ISBN 0-272-01139-5.
....appropriate stubs. We believe that our work is complementary to that of Anderson et al. Flick can leverage the benefits of an efficient transport system to produce optimized communication stubs. For parallel applications, there are a large number of specialized programming languages such as CC [6], Fortran M [15] and Split C [8] In most of these cases the language handles marshaling and unmarshaling of parameters. However, it is our belief that the techniques used by Flick, and possibly even its code, could be incorporated into the compilers for these languages to substantially reduce ....
K. M. Chandy and C. Kesselman. CC++: A declarative concurrent object oriented programming notation. Technical Report CS-TR-92-01, California Institute of Technology, Mar. 1993.
....namely portability, is lost in that approach. C) Pre Compiler and Library. A third approach is to extend the expressive power by means of libraries for data distribution, collective communication, and forall statements. This approach has been taken for various parallel extensions of C , e.g. [3, 6]. However, since Java does neither support templates nor macros, some restrictions apply. Both data distribution and collective communication are best handled by libraries that handle and partition arrays on a distributed parallel machine. Since Java does not support parameterized classes, i.e. ....
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object-oriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, pages 281--313. MIT Press Cambridge, Massachusetts, London, England, 1993.
....a good programming language should provide as much support as possible to minimize the impact of these hazards. Many existing programming languages that provide explicit parallelism fail in this respect, because they provide only very primitive constructs. For example, Occam[11] Java[5] and CC [3] all provide constructs that make it very easy for the programmer to cause deadlock or race conditions. Languages such as HPF[8] are not dangerous in this respect, but, because of their limited parallel programming model, make it more di#cult to avoid parallelization overhead and to maximize ....
....once, and the result is used repeatedly to fill the fields of a tuple with the same length as the other operand. For example, the following program contains a binary tuple promotion from from int to [int,int] public class promotuple public static void main( String args[ int,int] a = [2,3]; final int i = 2; i is subject to binary tuple promotion [int,int] b = i a; System.out.println( b[0] b[0] b[1] b[1] The program generates the following output: b[0] 4, b[1] 6 18 Chapter 6 Tuples A tuple is a list of elements. The list is of fixed size, and each element can ....
[Article contains additional citation context not shown here]
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object oriented programming notation. Technical report, California Institue of Technology, September 1992.
....that defines the mapping of tasks and data onto machine resources. Due to the inherently conflicting nature of these issues, existing parallel programming languages reflect various specific design trade offs. Explicit parallel programming interfaces such as offered by Java threads [8] and CC [3], as well as by message passing interfaces such as MPI [16] offer full parallelizability, yet at a significant expense of programmability and portability. Although for pragmatic reasons in high performance computing explicit languages are still widely used, programming requires a detailed ....
K.M. Chandy and C. Kesselman. CC++: A declarative concurrent object-oriented programming notation. In P. Wegner G. Agha and A. Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, pages 281--313. MIT Press, 1993.
....Vast s memory management. Consequently, the implementation of their protocols tend to be more complex than in our CLIX approach. The Arts platform incorporates many features similar to those found in common middleware layers like CORBA [11] as well as parallel programming languages such as CC [8], ICC [10] Mentat [1] and MPC [13] However, system programming still needs signi cantly more control over runtime issues than languages designed for application level programming usually provide. Arts originated in the area of parallel operating systems and, therefore, it does not rely on ....
K. M. Chandy and C. Kesselman. CC++: A Declarative Concurrent ObjectOriented Programming Notation. In Research Directions in Concurrent ObjectOriented Programming. MIT Press, 1993.
....of projects studying C for parallel hardware. Our work can be distinguished from these projects by our design goals: ffl Support strongly the data parallel paradigm. ffl Tolerate no changes to C . ffl Allow automatic generation of implementations for parallel hardware. Mentat [7] and CC [4] are both dialects of C designed to exploit parallel hardware. Both languages are most effective as SPMD programming environments. Neither language strongly supports the data parallel model as they require the programmer to explicitly perform synchronization and communication through ....
K. Chandy and C. Kesselman. CC++: A declarative concurrent object oriented programming notation. California Institute of Technology, 1992.
....Library such as the Amelia Vector Template Library (AVTL) 6] While C is the most common language for this work, it is not the only way object parallelism may be expressed. There are many other parallel programming models that exploit object oriented concepts. These include Mentat[7] CC [8], CORBA[9] Charm [10] and UC [11] In these systems, the emphasis is on task level parallelism on networked 2 and heterogeneous systems. As will be explained later, the run time architectures for these systems have different requirements than for the data parallel extensions addressed here. ....
K. M. Chandy and C. F. Kesselman. CC++: A declarative concurrent object-oriented programming notation, In Research Directions in Object-Oriented Programming, MIT Press, 1993.
....ray density required to obtain spectral curves with a certain accuracy. This analysis would allow the use of the minimal possible number of rays in data collection and measurement procedures. In addition, its performance could be further maximized through the use of specialized parallel software [46, 221] or hardware [177] The simplified model, whose design based on a fixed number of outgoing rays is very suitable to parallelism, would also benefit from the application of parallel processing techniques. The reconstruction algorithm, presented in Chapter 5, was originally developed to access ....
Chandy, K., and Kesselman, C. CC++: A declarative concurrent objectoriented programming notation. In Research Directions in Concurrent ObjectOriented Programming (Cambridge, Massachusetts, 1993), G. Agha, P. Wegner, and A. Yonezawa, Eds., The MIT Press, pp. 282--313. Chapter 11.
....the University of Washington. The authors claim that this package can easily be ported to new machines. Available from: ftp: csvax.cs.caltech.edu comp CC 11 Email addresses: K. Mani Chandy Gamma mani vlsi.caltech.edu Carl Kesselman Gamma carl vlsi.caltech.edu References: 45] 58] [59] [82] 2.27 Concurrency Class for Eiffel Developer: University of California, Santa Barbara Description: oo. This is an Eiffel library. The base language is not altered. memory model. Each active object has its own address space. Access to active objects is through local proxies, that ....
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object-oriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, pages 281--313. MIT Press Cambridge, Massachusetts, London, England, 1993.
.... CLIX [120] Phi Phi Delta Delta H H A A Phi Phi Delta Delta H H A A y t i v i t c a y r a d n u o b COB [118] Phi Phi Delta Delta H H A A Phi Phi Delta Delta H H A A y t i v i t c a y r a d n u o b Compositional C , CC [54, 67, 68, 91] Phi Phi Delta Delta H H A A Phi Phi Delta Delta H H A A Phi Phi Delta Delta H H A A Phi Phi Delta Delta H H A A Phi Phi Delta Delta H H A A Phi Phi Delta Delta H H A A m y t i v i t c a y r a d n u o b ....
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object-oriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, pages 281--313. MIT Press Cambridge, Massachusetts, London, England, 1993.
....in Arts. Generally spoken, we might say that Arts combines much of the flexibility of distributed system approaches with the performance of parallel execution environments from high performance computing. In the high performance systems area more recent parallel C versions such as CC [6], ICC [7] C [30] and MPC [16] seem to be promising. Nevertheless, system programming still needs significantly more control over runtime issues than languages designed for application level programming usually provide. MPC and C provide powerful meta level programming facilities that ....
K. M. Chandy and C. Kesselman. CC++: A Declarative Concurrent Object-Oriented Programming Notation. In Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.
....or Vast s memory management. Consequently, the implementation of their protocols tend to be more complex than in our CLIX approach. The Arts platform incorporates many features similar to those found in common middleware layers like CORBA as well as parallel programming languages such as CC [7], pC [4] and Mentat [1] However, system programming still needs signi cantly more control over runtime issues than languages designed for application level programming usually provide. Arts originated in the area of parallel operating systems and, therefore, it does not rely on complex ....
K. M. Chandy and C. Kesselman. CC++: A Declarative Concurrent ObjectOriented Programming Notation. In Research Directions in Concurrent ObjectOriented Programming. MIT Press, 1993.
....among a large number of features, it provides support for fine grained control parallelism in a shared memory paradigm along with mechanisms to synchronize and coordinate these tasks. Other approaches which provide support for managing task parallelism at a high level include PVM [30] CC [8] and Strand [12] Most of these approaches do not address the issue of integrating task and data parallelism. 6 Conclusions and Future Research Complex scientific applications, such as multidisciplinary optimization, provide opportunities for exploiting multiple levels of parallelism, but also ....
K. M. Chandy and C. Kesselman. CC++: A declarative concurrent object-oriented programming notation. Technical Report CS-TR-92-01, California Institute of Technology, 1992.
....control interconnections between these processes. A coordination language provides means for process creation and inter process communication which may be combined with sequential computation languages to constitute a parallel programming language (Carriero and Gelernter, 1992) Compositional C (Chandy and Kesselman, 1993) is such a language designed for prototyping. ProSet Linda belongs to this category, too. 6 SUMMARY To build a parallel system, you should start with executable prototypes to validate the requirements and study the feasibility (neglect the execution performance in the first instance) Powerful ....
Chandy, K., and Kesselman, C., CC++: A declarative concurrent object-oriented programming notation, in Research Directions in Concurrent Object-Oriented Programming (G. Agha, P. Wegner, and A. Yonezawa, eds.), The MIT Press, Cambridge, Massachusetts, 1993, pp. 281--313.
....which falls in this class. The individual approaches can be characterized by their handling of address spaces, the facilities for process creation, the available mechanisms for specifying methods, and the associated execution and synchronization models. 3.3. 1 CC Compositional C (CC ) [6] is a set of extensions for the C language. CC provides processor objects, which are instances of specially designated global classes. Processor objects are associated with a unique address space and can be explicitly mapped to physical processors; thus they represent a unit of locality. One ....
K. M. Chandy and C. Kesselman. CC++: A Declarative Concurrent Object-Oriented Programming Notation. In Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.
....endpoint and the methods used to communicate with that endpoint. These multimethod communication techniques have been implemented in the context of the Nexus multithreaded runtime system [15, 16] Nexus has been used to implement a variety of parallel languages and communication libraries [7, 13, 11], including the MPI implementation used extensively in the I WAY wide area computing experiment [10] We use Nexus to study the performance of alternative approaches to the implementation of various multimethod communication structures. We conclude with a case study in which our multimethod ....
K. M. Chandy and C. Kesselman. CC++ : A declarative concurrent object oriented programming notation. In Research Directions in Object Oriented Programming. The MIT Press, 1993.
....Thus pSather is one of the few systems to support notions of locality at the language level. However unlike Gardens, pSather does not support task migration and hence does not have the problem of changing localities to deal with. Many other parallel language and libraries exist such as CC [3], HPC, HPF etc. However these do not support task migration and hence do not run into the same changing locality issues as Gardens does. Some message passing libraries allow the determination of whether a message recipient is local or not. For example with internet sockets it is possible to use ....
K M Chandy and C Kesselman. CC++: A declarative concurrent object-oriented programming notation. MIT Press, Cambridge, Mass., 1993.
....of interconnected nodes. Each node is a shared memory multiprocessor (SMP) and may have several contexts, or virtual address spaces. The central problem associated with multi context computation is the communication and synchronization of events between two contexts. HPC is based on the CC [1] 5 global pointer concept and the library implements this with a GlobalP tr T template as is done in the MPC Template Library [7] A global pointer is a generalization of the C pointer type to support pointers to objects that exist in other address spaces. It is closely linked to the idea ....
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object-oriented programming notation, 1993. In Research Directions in Concurrent Object Oriented Programming, MIT Press.
....approaches are compositional parallel coordination languages with task synchronization mechanisms based on single assignment variables in a global shared name space. Compositional C (CC ) is a parallel programming language based on C relying on the experiences carried out with Strand and PCN [2]. In contrast to Strand, PCN and CC , CAP synchronization points are not named and are implicitly described by the parallel pipeline constructor. CAP completely separates computations and communications by allowing leaf threads to have only input and output parameters (tokens) without ....
....as execution threads. Figure 1 represents a storage server with 3 disks server processor 0 server processor 2 server processor 1 client processor client processor Compute Server[1] Compute Server[0] ReadExtent WriteExtent Parallel storage server ExtentServer [0] Compute Server[2] ExtentServer [1] Extent Server[2] Client Parallel Storage Server Server Interface FIGURE 1. Parallel storage server software architecture Interface Client Server Interface Client Server Interface client processor 3 and 3 processors. Each server processor executes two threads, ....
[Article contains additional citation context not shown here]
K. M. Chandy and C. Kesselman. CC++ : a declarative concurrent object-oriented programming notation. Research directions in Object Oriented Programming. MIT Press, 1993.
....technology motivates implementing a COOP language by extending an existing sequential object oriented language, such as C or Smalltalk, with a notion of process or thread. In particular, given the popularity and portability of C ,a number of COOP languages based on C have proliferated [23, 69, 47, 73, 27, 87, 86, 95]. We describe a few examples below. Compositional C (CC ) 69] extends C with a number of abstractions for process creation and synchronization. Synchronization is done via special shared variables. COOL [27] is targeted for shared memory multiprocessors. Invocation of a parallel function ....
....object oriented language, such as C or Smalltalk, with a notion of process or thread. In particular, given the popularity and portability of C ,a number of COOP languages based on C have proliferated [23, 69, 47, 73, 27, 87, 86, 95] We describe a few examples below. Compositional C (CC ) [69] extends C with a number of abstractions for process creation and synchronization. Synchronization is done via special shared variables. COOL [27] is targeted for shared memory multiprocessors. Invocation of a parallel function creates a thread which executes asynchronously. Threads communicate ....
K. Mani Chandy and Carl Kesselman. CC++: A Declarative Concurrent Object-Oriented Programming Notation. In G. Agha and P. Wegner and A. Yonezawa, editor, Research Direction in Concurrent Object-Oriented Programming, chapter 11, pages 281--313. The MIT press, 1993.
....in a variety of execution environments. A great deal of effort has gone into attempts to compile efficient parallel programs directly from existing sequential languages [EB91, HKT91] Many extensions to add communication and synchronization to existing sequential languages have been proposed [CK92, And91] New languages of many types have been proposed [CM89, And91] But, there does not yet appear to be any widely accepted approach to parallel programming. In this research we suggest that constraint languages can potentially meet many of the requirements for a broadly useful ....
....designed for portability and an implicitly parallel programming style with some optimization directives. In these respects, it is similar to our system. But, the difference lies in the program specification styles: procedural versus declarative. Also, HPF does not address task parallelism. CC [CK92] is a parallel programming language designed by providing extensions to the object oriented language C . It incorporates the fundamental ideas from compositional programming: synchronization variables and parallel composition. 8.2.3 Parallel Logic Programming PCN [CT92] and Strand [FT90] are ....
K. M. Chandy and Carl Kesselman. CC++: A declarative concurrent object oriented programming notation. Technical Report CS-TR-92-01, California Institute of Technology, 1992.
....composition corresponds to creating a thread for each element and allowing them to execute concurrently, with the composition terminating when all of its component threads have terminated. Language constructs consistent with this form of composition include the par and parfor constructs of CC [21, 19], the INDEPENDENT directive of HPF [43] and the PARALLEL DO and PARALLEL SECTIONS constructs of the Fortran X3H5 proposal [3] 2.6.2.1 Parallel execution using HPF An arb model program in which all arb compositions are of the arball form can be transformed into an equivalent program in HPF by ....
K. M. Chandy and C. Kesselman. CC++: A declarative concurrent object oriented programming language. Technical Report CS-TR-92-01, California Institute of Technology, 1992.
....After the algorithm terminates, process i has a sorted list whose elements are larger than the elements of process i Gamma 1 s list but smaller than the elements of process i 1 s list. It is then straightforward to write down this algorithm; figure 4 shows Clike pseudocode, using the CC [11] parfor construct to express exploitable 10 concurrency. Observe that the iterations of each parfor loop are independent (this is part of the computational pattern captured by the archetype) so this algorithm can be executed (and debugged, if necessary) sequentially by replacing the parfor loops ....
K. M. Chandy and C. Kesselman. CC++: A declarative concurrent objectoriented programming notation. In Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.
.... 1, Nexus defines a relatively low level communication API that is then used to support a wide range of higher level communication libraries and languages, based on programming models as diverse as message passing, as in the Message Passing Interface (MPI) 10] remote procedure call, as in CC [5]; striped transfer, as in the Parallel Application Workspace (PAWS) and distributed database updates for collaborative environments, as in CAVERNsoft. Nexus communication services are also used extensively in the implementation of other Globus modules. The communication needs of computational ....
....MPP metacomputing resources) while making e#cient use of underlying networks. In future work, the developers of this system plan to use MDS information to construct communication structures in particular, collective operations that are optimized for wide area execution. Compositional C [5], or CC , is a highlevel parallel programming language based on C . CC defines a global name space through the use of global pointers, dynamic resource allocation, and support for threading and remote procedure call style communication. The Globus implementation of CC uses the same services ....
K. M. Chandy and C. Kesselman. CC++:A declarative concurrent object oriented programming notation. In Research Directions in Object Oriented Programming, pages 281--313. The MIT Press, 1993.
No context found.
K. M. Chandy and C. Kesselman, CC++ : A declarative concurrent object oriented programming notation, in Research Directions in Object Oriented Programming, The MIT Press, 1993, pp. 281--313.
No context found.
Chandy, K.M. and Kesselman, C. 1993. \CC++: A Declarative Concurrent Object-oriented Programming Notation", In Research Directions in Concurrent Object Oriented Programming, MIT Press.
No context found.
K.M. Chandy and C. Kesselman. CC++: A declarative concurrent object-oriented programming notation. In P. Wegner G. Agha and A. Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, pages 281--313. MIT Press, 1993.
No context found.
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object oriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, chapter 11, pages 281--313. MIT Press, Boston, 1993.
No context found.
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object oriented programming notation. Technical report, California Institue of Technology, September 1992.
No context found.
Chandy, K.M. and Kesselman, C. 1993. \CC++: A Declarative Concurrent Object-oriented Programming Notation", In Research Directions in Concurrent Object Oriented Programming, MIT Press.
No context found.
K.M. Chandy and C. Kesselman. CC++: A declarative concurrent object-oriented programming notation. In P. Wegner G. Agha and A. Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, pages 281--313. MIT Press, 1993.
No context found.
K. M. Chandy and C. Kesselman, CC++: A declarative concurrent object oriented programming notation, in Research Directions in Object Oriented Programming, The MIT Press, 1993, pp. 281-313.
No context found.
K. M. Chandy and C. Kesselman. CC++: A Declarative Concurrent Object-Oriented Programming Notation. In Research Directions in Concurrent Object-Oriented Programming. MIT Press, 1993.
No context found.
K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object-oriented programming notation, 1993. In Research Directions in Concurrent Object Oriented Programming, MIT Press.
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