| N. Carriero and D. Gelernter. How to write parallel programs: 46, 1992. |
....provide sufficient detail of issues and an actual implementation to enable a software developer to quickly implement a tuplespace. Our implementation of the generative communication model is an implementation of Linda tuplespace, the best known implementation of the generative communication model [23, 10]. We have built a Linda optimizing compiler based on the SUIF compiler infrastructure[45] and a distributed tuplespace runtime system. This paper focuses more directly on the distributed tuplespace runtime system, called Deli (University of Delaware Linda) More details on the Linda optimizing ....
....issues and the solutions taken by other researchers, the details of our own implementation, and a comparison of prominent implementations. LINDA TUPLESPACE Linda is a coordination language consisting of a small number of primitive operations that are added into existing sequential languages [23, 10]. These operations perform the communication and synchronization necessary for parallel programming. The following subsections describe the basic Linda model, and an improvement that addresses the efficiency of the associative tuplespace memory. Basic Linda Model Communication between processes ....
Nicholas Carriero and David Gelernter. How to Write Parallel Programs, A First Course. The MIT Press, 1992.
.... We consider the basic ideas to be sufficient in and of themselves and have worked to develop them as a practical basis for concurrent programming [19] The integration of sequential and concurrent programs has been the focus of a number of other systems, notably large grain dataflow and Linda [2, 6]. However, we insist upon a clear separation of sequential and concurrent components in order to conveniently apply source to source transformation techniques and build programming abstractions. Previous work on reusable abstractions in parallel program design include the Argonne monitor macros ....
Carriero, N., and Gelernter, D., How to Write Parallel Programs, MIT Press, 1990.
....3D environment. JavaSpaces. As noted in Section 4, each instance of MUG in a collaborative design session is a MUG Client. Each MUG Client performs operations that map entries or templates onto JavaSpaces services. JavaSpaces is the Java based implementation of a Tuple Space paradigm [2]. With MUG, we have created a synchronized 3D tuple space in which teams of designers can work. A single MUG Client can interact with as many spaces as it needs to. Identities are accessed from the security subsystem and passed as parameters to method invocations. Notifications go to event ....
Nicholas Carriero and David Gelernter. How To Write Parallel Programs, A First Course. The MIT Press, 2nd edition, 1991.
....code [Ba89] Ni91] The major DSM design issues are granularity of shared data, coherence protocol and support for heterogeneity [Ni91] Ivy [Li86] classically assumes shared data is totally unstructured, using hardware dependent page based granularity. Linda s shared data is a tuple space [Ah89][Ca90], defining application dependant tuple29 based granularity. Munin [Ct91] structures its shared data on the basis of variables in the source language. Most sharing schemes commit to either a page or a data object as a unit of granularity, but not both. However, depending on the data usage patterns, ....
Carriero, N. and Gelernter, D., How to Write Parallel Programs, MIT Press, 1990.
....strategy for modelling, we will first start by presenting the interface of the system given by the top level coordination entity called LiftSystem context. A useful approach for building systems composed of many computing entities is to use the high level concept of coordination programming [15]. The term coordination theory refers to theories about how coordination can occur in various kinds of systems. We state that coordination is managing dependencies among activities.Taking a step further in this direction, it appears that coordination patterns are likely to be applied from the ....
Nicholas Carriero and David Gelernter. How to Write Parallel Programs. MIT Press, Cambridge and London, 1990.
....MIMD, but it does not provide synchronization primitives or asynchronous communication between routines. Calypso has yet to be implemented on networks of heterogeneous workstations. 2.4. 5 Piranha Piranha [52] is based on the Linda system developed at Stony Brook and Yale by Gelernter and Carriero [26, 27, 29, 30, 55]. Linda also being the base of the Persistent Linda system we describe in section 2.4.6, it is necessary for us to briefly review Linda. Linda Linda is a set of extensions which can be added to any programming language. The extensions consist of six operations which provide a means for process ....
Nicholas Carriero and David Gelernter. How to Write Parallel Programs, A First Course, MIT Press, 1991.
....effort this can be done portably [23] and in return for this investment we gain a much easier programming environment that speeds code development and improves extensibility and maintainability. We also gain a significant performance enhancement from increased asynchrony of execution of processes [24]. Message passing forces processes to cooperate (e.g. by responding to requests for a particular datum) Inevitably, this involves waiting for a collaborating process to reach the same point in the algorithm, which is only partially reduced by the use of complex buffering and asynchronous ....
Carriero N and Gelernter D. How To Write Parallel Programs. A First Course. The MIT Press, Cambridge, MA, 1990.
....at a time until every task has been executed. It is easy to see that faster machines generally do more of the work. For this reason, the self scheduling programming model has been used widely, and in the literature, it is called the master slave [17] the manager worker [18] and the bag of tasks [11] programming models. The self scheduling programming model is a good starting point, but does not solve all the problems associated with Web based computing. First, it does not address machine and network failures. Second, a very slow machine can slow down the progress of faster machines when it ....
N. Carriero and D. Gelernter. How To Write Parallel Programs. MIT Press, 1991.
....at a time until every task has been executed. It is easy to see that faster machines generally do more of the work. For this reason, the self scheduling programming model has been used widely, and in the literature, it is called the master slave [13] the manager worker [14] and the bag oftasks [10] programming models. 7 The self scheduling programming model is a good starting point, but does not solve all the problems associated with Web based computing. First, it does not address machine and network failures. Second, a very slow machine can slow down the progress of faster machines when ....
N. Carriero and D. Gelernter, How to write parallel programs, MIT Press, 1991.
....knowledge base by exploiting the inherent suitability of the heuristic search paradigm for distributed parallel execution. In particular, we plan to investigate in detail the network Linda uncoupled process approach for distribution of the problem space search over an ensemble of processors [CG90] In this model, independent tasks execute independently in a virtual shared memory environment called tuple space. Linda parallelism is attractive because it places very few restrictions on 29 the distribution granularity, the programming language selected for the base system software, and the ....
N. Carriero and D. Gelernter. How to Write Parallel Programs. The MIT Press, Cambridge, MA, 1990.
....is a viable alternative to programs based on parallel search. We consider a widespread hardware architecture, i.e. a network of general purpose workstations (SUN) We have programmed and tested several distributed chess programs using a parallel programming language, namely Network C Linda [CarGel90]. All the programs are based on a software architecture consisting of a set of independent agents having different chess knowledge; the agents coordinate themselves in the choice of a move. This idea is quite novel in computer chess, even if we were inspired by some ideas of Schaeffer s ....
....37.6 , Black wins 26.8 , Draw 35.5 ) These simple experiments allowed us to gain confidence in GNUChess as a benchmark adversary in the experiments we will describe in the rest of the paper. 3. 2 Linda Linda is a parallel programming model that has been embedded in several sequential languages [CarGel90]; it is based on the concept of tuple space, a dataspace that is logically shared among several process but that can be physically distributed over a network. Linda is more precisely defined as a coordination language, i.e. as a set of languageindependent operators for parallel programming. ....
[Article contains additional citation context not shown here]
N.Carriero, D.Gelernter, How to write parallel programs. A first course, The MIT Press, 1990.
.... and his colleagues considered messages to be unserialized actors i.e. messages (unlike serialized actors) could not change their local state (e.g. see [19] A number of coordination models and languages [11, 17] use a globally shared tuple space as a means of coordination and communication [10]. A predecessor of Linda, using pattern based data storage and retrieval was the Scienti c Community Metaphor [27] Sprites, the Scienti c Community s computational agents, share a monotonically increasing knowledge base; on the other hand, Linda allows communication objects (tuples) to be removed ....
N. Carriero and D. Gelernter. How to Write Parallel Programs. MIT Press, 1990.
.... hardware architecture, i.e. a network of workstations, that is easily available in our department, and also free of computing load for long periods (nights and weekends) We have programmed and tested several distributed chess programs using a parallel programming language, namely Network C Linda [CarGel90]. All the programs are based on a software architecture consisting of a set of independent agents having different chess knowledge; the agents coordinate themselves in the choice of a move. This idea is quite novel in computer chess, even if we were inspired by some ideas of Schaeffer s ....
....4, that reached 28 on all 5000 positions. These simple experiments allowed us to gain confidence in GNUChess as a benchmark adversary in the experiments we will describe in section 4. 3. 2 Linda Linda is a parallel programming model that has been embedded in several sequential languages [CarGel90]; it is based on the concept of tuple space, a dataspace that is logically shared among several process but that can be physically distributed over a network. Linda is more precisely defined as a coordination language, i.e. as a set of language independent operators for parallel programming. ....
[Article contains additional citation context not shown here]
N.Carriero, D.Gelernter, How to write parallel programs. A first course, The MIT Press, 1990.
....up the mapping process by doing it in parallel. Even though the non trivial aspects of scheduling algorithms are not known to be in NC, there is still scope for investigating the use of parallelism at a coarser granularity. For example, one might use a form of speculative parallelism (see Carriero and Gelerntner [1990]) by running several different scheduling algorithms in parallel, possibly on different processors, and comparing partial results. As a second example, randomized optimization techniques, such as simulated annealing, can usefully be implemented in parallel. Helerstrom andKanal [1990] ....
Carriero, N. and Gelernter, D. (1990). How to Write Parallel Programs. MIT Press, Cambridge Mass.
....we provide preliminary performance results and conclude with a discussion of the significance of the JavaNOW system. 2 Overview of JavaNOW and its Relation to Linda, PVM and MPI In many respects, JavaNOW can be viewed as a hybrid system: some PVM (Parallel Virtual Machine [59] some Linda [13], some MPI (Message Passing Interface [44] 46] and some experimental components. From a usage standpoint, JavaNOW provides a simple facility for starting tasks that is reminiscent of the PVM software. From a programming standpoint, JavaNOW has much in common with Linda and MPI, having a small ....
N. Carriero and D. Gelernter. How to write parallel programs, The MIT Press, Cambridge, Massachusetts, pp. 45-49.
....up the mapping process by doing it in parallel. Even though the non trivial aspects of scheduling algorithms are not known to be in NC, there is still scope for investigating the use of parallelism at a coarser granularity. For example, one might use a form of speculative parallelism (see Carriero and Gelerntner [1990]) by running several different scheduling algorithms in parallel, possibly on different processors, and comparing partial results. As a second example, randomized optimization techniques, such as simulated annealing, can usefully be implemented in parallel. Helstrom and Kanal [1990] and Udiavar ....
Carriero, N. and Gelernter, D. (1990). How to Write Parallel Programs. MIT Press, Cambridge Mass.
....algorithm will be transformed into an efficient implementation. In a first step, the ProSet Linda prototype is transformed into a C Linda implementation [21] With Linda, it is easy to program with different styles, e.g. with distributed data structures, active data structures and message passing [2]. The C Linda implementation will be programmed in a message passing style to serve as a preliminary step for a message passing implementation with an MPI library (Message Passing Interface [11] We then use the CHIMP MPI (Common High Level Interface to Message Passing) 1] implementation at the ....
N. Carriero and D. Gelernter. How to write parallel programs. MIT Press, 1990.
....much faster than the sequential best first algorithm, but can produce better results within the same or even a shorter time. The f( function for the 6 0 10 20 30 40 50 60 70 80 90 0 5 10 15 20 25 Number of workers (a) T=6 T=5 T=4 T=3 T=2 0 2 4 6 8 10 12 14 16 0 5 10 15 20 25 Number of workers (b) T=6 T=5 T=4 T=3 T=2 Figure 5: The experimental results for the ProSet Linda implementation of the parallel best first search algorithm. estimated new state evaluations directs the workers to search the tree depth first, which ....
....than the sequential best first algorithm, but can produce better results within the same or even a shorter time. The f( function for the 6 0 10 20 30 40 50 60 70 80 90 0 5 10 15 20 25 Number of workers (a) T=6 T=5 T=4 T=3 T=2 0 2 4 6 8 10 12 14 16 0 5 10 15 20 25 Number of workers (b) T=6 T=5 T=4 T=3 T=2 Figure 5: The experimental results for the ProSet Linda implementation of the parallel best first search algorithm. estimated new state evaluations directs the workers to search the tree depth first, which increases the probability ....
[Article contains additional citation context not shown here]
N. Carriero and D. Gelernter. How to write parallel programs. MIT Press, 1990.
....Dining Philosophers Problem The dining philosophers problem is a classical problem in parallel programming which has been posed by (Dijkstra, 1971) It is often used to test the expressivity of new parallel languages. The ProSet Linda solution in Figure 1 is derived from the C Linda version in (Carriero and Gelernter, 1990). In the C Linda version, the philosophers first fetch their left and then their right chopsticks. In the ProSet Linda version, this order is not specified. This is accomplished by the use of multiple templates for one fetch statement. The fetch statement suspends until a matching tuple is ....
....executed. The program works for arbitrary n 1. To prevent deadlock, only four philosophers (or one less than the total number of philosophers) are allowed into the room at any time to guarantee to be at least one philosopher who is able to make use of both, his left and his right chopstick. In (Carriero and Gelernter, 1990) this is demonstrated with the pigeonhole principle: in every distribution of the n chopsticks among the n Gamma 1 philosophers with table tickets, there must be at least one philosopher who gets two chopsticks. 4 program DiningPhilosophers; visible constant n : 5, Number of philosophers ....
Carriero, N., and Gelernter, D., How to write parallel programs, The MIT Press, Cambridge, Massachusetts, 1990.
....described with syntax diagrams or with Backus Naur Form. Therefore, they appear to be good candidates for a formal treatment. To discuss the advantages of formal specifications in the development of a new language, we briefly evaluate the development of the parallel programming language C Linda [4]. The definition of C Linda has been presented informally [4] and has included several ambiguities. 23] summarizes four basic types of process creation used in implementations of C Linda s eval operation. These are different interpretations of the informal specification of the eval operation. ....
....they appear to be good candidates for a formal treatment. To discuss the advantages of formal specifications in the development of a new language, we briefly evaluate the development of the parallel programming language C Linda [4] The definition of C Linda has been presented informally [4] and has included several ambiguities. 23] summarizes four basic types of process creation used in implementations of C Linda s eval operation. These are different interpretations of the informal specification of the eval operation. Additional discussions of problems with the semantics of the ....
[Article contains additional citation context not shown here]
Carriero N, Gelernter D. How to write parallel programs. MIT Press, 1990.
....# Standardization: This occurs when entities have to follow pre established standard procedures in a number of situations. In this form little coordination is needed, until the procedure itself needs to change 2 . In the book How to write parallel programs by Carriero and Gelernter[2] it is shown that different forms of parallelism, and therefore different kinds of interaction, may favor different paradigms for interaction. The authors discuss three different forms of parallelism in parallel programs (and in distributed systems) result parallelism, specialist parallelism and ....
N. Carriero and D. Gelernter, How to write parallel programs, The MIT Press, 1990.
.... was first used by May et al. 20] to describe a strategy for the parallel execution of programs that consist of a single task to be executed on a collection of initial data [16] Descriptions of farms and their use can be found in several introductory books on parallel programming [9] 27] [7]. Examples of its use for simulation, biological sequence comparisons, and signal analysis can be found in [11] 24] 3] One common approach to supporting the processor farm paradigm on multicomputers is to use a runtime kernel to handle the distribution of tasks and the gathering of results. ....
N. Carriero and D. Gelernter, How to Write Parallel Programs. MIT Press, 1990.
....from tuple space concurrently. Synchronization is done implicitly. Reading access to tuples in tuple space is associative and not based on physical addresses, but rather on their expected content described in templates. This method is similar to the selection of entries from a data base. Refer to [5] for a full account to programming with Linda. ProSet supports multiple tuple spaces. Several library functions are provided for handling multiple tuple spaces dynamically. ProSet provides three tuple space operations: deposit, fetch and meet. The deposit operation deposits a tuple into a tuple ....
N. Carriero and D. Gelernter. How to write parallel programs. MIT Press, 1990.
....matched tuple remains in tuple space (Figure 4) Additionally, many Linda dialects provide non blocking extraction operations, multiple tuple spaces and support for process creation. Some Linda dialects allow formals in deposited tuples which match with appropriate actuals in templates. Refer to [5] for a full account to parallel programming in Linda. Comparisons of Linda with other approaches to parallel programming may be found in [4, 21] A coordination language like Linda provides means for process creation and inter process communication which may be combined with computation languages ....
N. Carriero and D. Gelernter. How to write parallel programs. MIT Press, Cambridge, MA, 1990.
....memory. The next step is to organize the shared memory into a set of 2 variables and data structures that are needed by more than one process (Munin [CBZ91] Midway [BZ91] Finally, processes on multiple machines can share an abstract space filled with shared objects (Orca [BKT92] Linda [CG90]) considering objects as data structures with a set of operations associated with them. All these systems have a similar programming model, where parallel (distributed) programs are composed of a set of processes that access some kind of shared information. The aim of our work is to advance one ....
Carriero, N, Gelernter, D.: "How to Write Parallel Programs". The MIT Press. 1990.
....addressing future work. 2 A Declarative, Executable Specification Language: LO As a specification language for our DPS protocols we use LO [3] a declarative concurrent language which amalgamates aspects of concurrent languages based on generative communication, such as CHAM [6] Gamma [5] Linda [8], Swarm [25] as well as of concurrent logic programming languages [9, 10, 15, 19, 32] LO s logical primitives for agent coordination and communication make it particularly suitable for our purposes; on the other hand, our approach is compatible with other choices of a specification language. The ....
....of constraints is achieved via the global flow of messages while each individual broker agent encapsulates its own local problem solver. Thus, our approach can also be seen as a contribution to merging the two paradigms of Concurrent Constraint Programming and of Coordination Languages [8], where a coordination language is seen as the layer for glueing together independent software components to perform a global activity. An early contribution in this direction (dating well before the programming paradigms of both Concurrent Constraint Programming and Coordination Languages) can be ....
Carriero, N., Gelernter, D.: How To Write Parallel Programs. A First Course. Cambridge, MA: MIT Press, 1990
....formulation of an abstract model of group communication which reflects characteristics of different existing models for communication. We are influenced by models based on generative (or associative) communication, generally realized by data spaces (e.g. Swarm (Roman and Cunningham 1990) Linda (Carriero and Gelernter 1990) , CHAM (Berry and Boudol 1990) Gamma (Ban tre and M tayer 1990) UNITY (Chandy and Misra 1988) and by models based on message passing, e.g. Actors (Agha 1986) The LO model (Andreoli et al. 1992) also combines both aspects: intra pool communication realizes a form of active reading, by ....
....to communicate with each other at a given time. It is interesting to look at how this metaphor compares with the notion of coordination in computer science. From a programming language perspective, coordination has been defined the process of building programs by gluing together active pieces (Carriero and Gelernter 1990) . More recently, the term has been given a more pro active reading where coordinators are viewed as specialized agents responsible for effectively managing the interactions among heterogeneous objects (Andreoli et al. 1994b) From a systemic standpoint, we could similarly view coordination as ....
[Article contains additional citation context not shown here]
N. Carriero and D. Gelernter. How To Write Parallel Programs. A First Course. Cambridge, MA: MIT Press, 1990.
....and run time are calculated by the algorithm designer. Through familiarity of required layouts and efficiency on the MCCM I hope the conversion will be automated. There are a variety of languages designed to perform a similar job such as Spot [SOCH91] Data Parallel C [HATC91] Linda [CARR90], and Ensembles [GRIS90] ALV90] but these are low level languages. The PRAM is the ideal means to develop parallel algorithms, and the MCCM provides a way of more accurately accessing their cost. Many machines are roughly equivalent to the MCCM because they provide a general interconnection ....
....in [VALI90b] and message passing languages such as OCCAM [INMO84] and Ensembles [GRIS90] ALVE90] are all attempts to provide user control of parallelism. There are architecture independent languages (PICL [GEIS90] Data Parallel C [HATC91] proposed parallel programming environments (C Linda [CARR90], C and Presto [BERS88] Amber [CHAS89] new types of approaches for parallelism (functional programming) and parallelizing compilers to make parallel code more efficient. There has been mixed success such as Harrison III and Ammarguellat s study [HARR90] where parallelizing compilers out ....
[Article contains additional citation context not shown here]
N. Carriero and D. Gelernter, How To Write Parallel Programs, A First Course. Cambridge, MA: The MIT Press, 1990.
....level (where there may be more than one process on each physical processor) such as that defined by NX or Vertex on the iPSC and nCUBE machines, the commercially available Express communication environment, or the PARMACS message passing macros. Higher level abstractions, for example, Linda [3,10], MetaMP [15] or Shared Objects [13] would lie above this level. Each level could be built using the level beneath, provided that the overhead in doing this was sufficiently low that the cumulative overhead incurred at the higher levels was small. These successive software levels form a series ....
N. Carriero and D. Gelernter, "How to Write Parallel Programs,"ACM Computing Surveys, 21 (1989).
....and those which encapsulate parallelism in a set of libraries, so that the syntax of the original serial language is unaltered. There are many examples of syntaxbased systems. Four based on C are DataparallelC [16] Concert C [13] CHARM [21] originally called the Chare Kernel) and C Linda [8, 9]. The first of these allows users to specify domains, which are collections of identical records on which operations may be performed concurrently. Concert C allows the user to create typed ports and use them to communicate between processes. These ports can be passed like data from process to ....
N. Carriero and D. Gelernter. How to Write Parallel Programs. MIT Press, Cambridge, Mass., 1990.
....Section 8 is provides a summary of this work and comparison with other approaches. 2 SMS Paradigm In the past two decades, many attempts have been made to provide programming tools to simplify the task of code development for parallel computing environments. Most surveys of this field [1] [2] [3]classify such attempts by the nature of the programming model which is to be assumed by the application programmer using them. This programming model is an idealization of a physical hardware environment, which may or may not be a close mapping of the actual hardware on which it is to be used. ....
N. Carriero & D. Gelerntner, "How to Write Parallel Programs," ACM Comput. Surv. 21 (September 1989), 323--358.
....the specification level. Moreover, PROLOG works on a set of facts, it permits adding or withdrawing facts with the assert, and the retract predicate, resp. The maintenance of a fact base as a set of facts is important to our approach, and an alternative would have been to use Linda s tuple spaces [CaGe]. In one of its extensions [Has] this would A Language for Specifying Hyperdocuments . Page 4 even permit multiple tuple spaces, thus enabling information hiding by dedicating tuple spaces to particular purposes. This, however, increases the descriptive overhead (explicit control structures ....
Carriero, N., Gelernter, D.: How to Write Parallel Programs. The MIT Press, 1990
....receive data process data send data SLAVES A communication interface can be realized as message passing or shared memory interface. The message passing approach models interactions by explicit sending and receiving of messages. In the shared memory model an abstract global tupel space is used [5]. In the following, only the message passing model is considered. The most important programming paradigms for distribution and parallelization based on message passing are Master Slave (s. fig. 2) and SPMD (single program multiple data) The basic constructs of the Master Slave paradigm are ....
Carriero, F. C. and Gelernter, D.: How to write parallel programs. The MIT Press, Cambridge, MA, 1991
....Strand and PCN provide explicit parallel constructs. Other explicitly parallel approachs include Linda and message passing libraries such as p4 and PVM. Linda extends sequential languages with operations for creating processes and for manipulating a shared associative store called tuple space [5]. Like Strand and PCN, Linda utilizes a data driven execution model in which the actions of sending and receiving data are decoupled and processes execute when data are available. A significant advantage of Linda is that the programmer need learn only a small set of tuple space operations. On ....
Carriero, N., and Gelernter, D., How to Write Parallel Programs, MIT Press, 1990.
....and reusability of programs. It also allows the parallelism in a program to be expressed in a natural way, implying that the programmer need only be knowledgeable about the application, not about parallel programming. The formulation of parallel computation can involve the following steps (Carriero and Gelernter, 1989; Browne, 1985, 1986) 1) Choose the model of computation that is most natural for the problem. 2) Write a program using the method that is most natural for that abstract machine. 3) If the resulting program is not acceptably efficient, transform it methodically into a more efficient version by ....
....In Appendix C, a review of the 14 tools referenced in this section is presented. These tools are representative of the current spectrum of parallel programming environments. 7. 1 Styles of Parallel Computation There are many ways to classify parallel computation (Bal, Steiner and Tanenbaum, 1989; Carriero and Gelernter, 1989; Chang and Smith, 1990; King, Chou and Ni, 1990) Here we describe the ones that we believe best summarizes the different approaches to achieve parallelism. King, Chou and Ni (1990) characterize parallel computation from two perspectives: from the way the computation is partitioned and ....
[Article contains additional citation context not shown here]
N. Carriero and D. Gelernter. How to Write Parallel Programs, ACM Computing Surveys, 1989, vol. 2, no. 3, pp. 323-357.
....languages; for instance, in [ABD82] we find an algorithm based on semaphore primitives; in [Eli90] the Orca language was used. In this paper we will use Linda, a coordination language that consists of a small set of parallel programming primitives that can be added to any sequential language [CarGel90]. These primitives associatively access a tuple space shared among processes. There are several possible software architectures that can all be programmed in Linda; one of the most useful is the master worker model. According to this model tasks created during the parallel evaluation of a program ....
N.Carriero, D.Gelernter, How to write parallel programs. A first course, MIT Press, 1990.
....or a set of actions, among multiple processing components that operate simultaneously. The expected result is a more efficient completion of the solution to the problem. Its main advantage is the ability to handle tasks of a scale that would be unrealistic or not cost effective for other systems [2,3,8,9]. The power of parallelism relies on issues concerning with partitioning a big problem in order to deal with complexity. The partitioning is necessary to divide a big problem into smaller sub problems that are possible to understand, and perhaps work on them separately, at a more comfortable ....
....how to use each pattern. 3. Classification of Architectural Patterns for Parallel Programming Architectural patterns for parallel programming can be classified following the characteristics of parallel systems as the classification criteria. Pancake [9] Foster [3] and Carriero and Gelernter [2] have studied and proposed classifications according to the characteristics of parallel applications, and their relation with performance. All of them agree that in parallel programming, the nature of the problem to be solved is tightly related with the structure and behaviour of the program that ....
[Article contains additional citation context not shown here]
Nicholas Carriero and David Gelernter. How to Write Parallel Programs. A Guide to the Perplexed. Yale University, Department of Computer Science, New Heaven, Connecticut. May 1988.
....to improve the handling of message tuples, and describes a compiler transformation to take advantage of this alternative handling. Experimental evidence revealing significant improvements is also presented. 2 Linda The best known implementation of the generative communication model is Linda 1 [13, 2]. Our work is based on Linda although it applies more generally to any generative communication model implementation. Linda is a coordination language consisting of a small number of primitives that are added into existing sequential languages to create a parallel dialect of that existing language ....
Nicholas Carriero and David Gelernter. How to Write Parallel Programs, A First Course. The MIT Press, 1992.
....on the MC3 Transputer system) iPSC C Synchronous and asynchronous message passing in a Unix environment is taught on the Intel hypercube using the iPSC 860 C library calls. Parallel programs are developed, tested, executed and benchmarked on the iPSC 860. C Linda The tuple space concept [Carr 90] and its use for process synchronisation, communication and dynamic task creation is investigated on the Sequent Balance and the Intel iPSC 860. PCN The language concept of pcn (program composition notation) Chan 91] is introduced, and implementations of parallel algorithms are executed within ....
N. Carriero and D. Gelernter. How to Write Parallel Programs. The MIT Press, 1990.
.... 41 37 826551, e mail: fhirsb, aguilar, kroneg cfruni52.bitnet Introduction The emerging generation of supercomputers will be suitable for massive parallel applications. To orchestrate the communication needed to coordinate concurrent tasks, we are currently developing a new coordination language [1] called CoLa. Specifically CoLa is aimed to provide a high programming abstraction level for massively parallel computing, especially for applications in the field of distributed artificial intelligence. CoLa is embedded in classical programming languages and combines both declarative as well as ....
N. Carriero, D. Gelernter. How to Write Parallel Programs, A First Course, MIT Press, Cambridge 1992.
....the most important criterion in evaluating a parallel application is how well it performs compared to the sequential implementation, it is crucial for a design model to be able to model timing flow at the design stage. A parallel application that performs poorly is said to have a performance bug [6]. The identification and elimination of program bugs, including performance bug, should be carried out at the earliest stage possible since the cost for removing a bug becomes much more expensive at later stages of program development. The traditional ad hoc approach of implementation followed by ....
Carriero, N. and Gelernter, D., "How to Write Parallel Programs," The MIT Press, 1990.
No context found.
N. Carriero and D. Gelernter. How to write parallel programs: 46, 1992.
No context found.
N. Carriero and D. Gelernter. How to Write Parallel Programs. MIT Press, Cambridge, Ma, U.S.A., 1990.
No context found.
N. Carriero and D. Gelernter. How to Write Parallel Programs. MIT Press, Cambridge, Ma, U.S.A., 1990.
No context found.
N. Carriero and D. Gelernter. How to write parallel programs. MIT Press, 1990.
No context found.
N. Carriero and D. Gelernter. How to Write Parallel Programs. MIT Press, Cambridge, MA, 1990.
No context found.
N. Carriero and D. Gelernter. How to write parallel programs. ACM Computing Surveys, 21(3):323, September 1989.
No context found.
N. Carriero and D. Gelernter. How to write parallel programs. ACM Computing Surveys, 21(3):323, September 1989.
No context found.
Carriero, N. and D. Gelernter, How to Write Parallel Programs, The MIT Press, Cambridge, Massachusetts, 1992.
No context found.
N. Carriero and D. Gelernter. How to write parallel programs. ACM Computing Surveys, 21(3):323, September 1989.
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