32 citations found. Retrieving documents...
Paul Hudak. Para-Functional Programming. IEEE Computer, pages 60--69, August 1986.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Information Hiding in Parallel Programs - Foster (1992)   (5 citations)  (Correct)

....calculus for specifying interconnections between software chips. The integration of this calculus into a programming notation is not discussed, and the notion of virtual topology is absent. The use of virtual topologies to abstract mapping decisions was first proposed by Martin [22] Hudak [20] and Taylor [26] among others, have used similar ideas to specify mapping decisions in declarative programming systems. In Hudak s scheme, arbitrary integer functions can be used to specify both relative and absolute locations. Taylor uses them to specify relative locations in an infinite ....

Hudak, P., Para-functional programming, IEEE Computer, 60-70, Aug 1986.


An Overview of the STING Operating System - Philbin   (Correct)

....Customization is made easy because each virtual processor and thread can perform self relative operations. Self relative operations are done using the procedures current virtual processor and current thread. The idea of mapping computations to specific processors was first explored by Hudak [5], but since his processors where neither first class nor virtual, user defined topologies were more difficult to implement. Threads The advantage of virtual topologies is that the user can build topology abstractions which model the communications structure of their program. For example, a user ....

Paul Hudak. Para-Functional Programming. IEEE Computer, 19(8):60--70, August 1986.


Parallelism and Non-determinism in Pure Functional Languages - King (1992)   (Correct)

....not yet begun, the runtime system is free to discard any child task. Thus, the runtime system can dynamically manage the system load by ignoring spark requests when the load becomes too high, and accepting spark requests when the load is sufficiently low. 2. 3 Parallel Language Extensions Hudak [12] argues that the compiler and runtime system can do a good job at mapping the program for parallel execution, but that the programmer may know a better, or even optimal, mapping from the program onto a particular set of processors. If the language is extended with a set of annotations , then the ....

....mapping from the program onto a particular set of processors. If the language is extended with a set of annotations , then the programmer can express this mapping directly. This section outlines the form of these annotations. Various proposals have been presented, including ParAlfl ( 10] [12]) Caliban ( 5] 15] and Concurrent Clean ( 16] These systems are all similar in that the program is annotated to indicate how expressions should be mapped to a set of virtual processors. The compiler then maps the virtual processors to those actually available. In all cases, the annotations ....

Paul Hudak, "Para-Functional Programming," in IEEE Computer, 19(8), 1986, pp. 60-9.


Realtime Signal Processing - Dataflow, Visual, and Functional.. - Reekie (1995)   (Correct)

....CHAPTER 2. BACKGROUND MATERIAL 30 such as if e 1 then e 2 else e 3 can have e 1 , e 2 , and e 3 evaluated in parallel. One of e 2 or e 3 will be discarded as soon as the value of e 1 is known. The third choice is programmer controlled parallelism. This can be in the form of annotations [61], or in the form of primitive combinators. Roe [126] for example, points out difficulties with conservative parallel graph reduction, and suggests two new combinators, par and seq: par : ff fi fi par x y = y seq : ff fi fi seq x y = 8 : y if x 6= if x = par e 1 e 2 ....

Paul Hudak. Para-functional programming. IEEE Computer, pages 60--70, August 1986.


Realtime Signal Processing - Dataflow, Visual, and Functional.. - Reekie (1995)   (Correct)

....In speculative evaluation, an expression such as if e 1 then e 2 else e 3 can have e 1 , e 2 , and e 3 evaluated in parallel. One of e 2 or e 3 will be discarded as soon as the value of e 1 is known. The third choice is programmer controlled parallelism. This can be in the form of annotations [61], or in the form of primitive combinators. Roe [126] for example, points out difficulties with conservative parallel graph reduction, and suggests two new combinators, par and seq: par : ff fi fi par x y = y seq : ff fi fi CHAPTER 2. BACKGROUND MATERIAL 31 seq x y = 8 : ....

Paul Hudak. Para-functional programming. IEEE Computer, pages 60--70, August 1986.


The Charm Parallel Programming Language and System.. - Kale, Ramkumar.. (1995)   (8 citations)  (Correct)

....is carried out on the processor that stores the variable or portion of the array being computed) Because it applies only to data parallel computations, this approach is not as general purpose as the ones above. Another example of this class is Hudak s explicitly parallel functional programming [15, 16], where each function call can be mapped to specific processor under the programmer s control. 2 4. Systems such as Multilisp [17] and QLISP [18, 19, 20] allow programmers to explicitly specify the decompositions, while taking over both the tasks of mapping and scheduling. In Multilisp, for ....

P. Hudak. Para-functional programming. In Computer, volume 19, Number 8, August 1986.


Prototyping an Intensity-Based Vision Recognition System - Scaife (1995)   (Correct)

....ways. Note, firstly that it is much easier to deduce implicit parallelism from functional languages than imperative languages. 4 Imperative languages often require programmer annotations to guide the compiler in generating parallel constructs. While this is also possible for functional languages [Hud86] a much neater approach is to make use of the implicit parallelism which arises from the property of referential transparency. The problem then becomes one of controlling this parallelism in the most effective way. With referential transparency, data shared between concurrent tasks are far less ....

Paul Hudak. Para-Functional Programming. Computer, 19(8):60--70, August 1986.


Language Constructs for Modular Parallel Programs - Foster (1993)   (Correct)

....can be defined and composed with other structures to build concurrent programs. However, resource allocation and locality are not addressed. Virtual computers have been used to achieve portability by hiding information concerning the size and topology of a physical computer. Martin [26] Hudak [23], and Taylor [29] have investigated notations for specifying process mapping on a (potentially infinite) processing surface. In data parallel languages [30, 18] data distribution is specified with respect to a virtual computer, as proposed here; however, hierarchies cannot be defined. While these ....

P. Hudak, "Para-functional programming," IEEE Computer, pp. 60--70, 1986.


Architectural CCS - Krishnan   (Correct)

....distributed nature of processes. Their primary concern is the logical construction of processes without considering the architecture the process is executing on. The idea of location has also been 12 L 1 L 2 L 3 Communication Medium Figure 6: Distributed System Model used in other languages [Hud86]. We use the same syntax as in [KHCB91b] but give a different semantics. In the semantics for CCS, any two processes can synchronise. This cannot be permitted in the distributed case. A local transition depending on behaviour at a remote site is unrealistic. Consider, for example, the CCS process ....

P. Hudak. Parafunctional Programming. IEEE Computer, 19(8):60--71, 1986.


Compiling a Functional Language to Efficient SACLIB C - Schreiner (1993)   (Correct)

....is the data type array and the extension of iterated compositions to array objects. Overloading and a module concept are also probable candidates for further extensions. However the next steps will be the extension of the language by support for parallel programming in a para functional style [Hud86] 1. A unary type constructor Task and the operations start : a b, a) Task( b) wait : Task( a) a, Task( a) Task( a) waitone : Task( a) a stop : Task( a) Bool that will be directly translated into the corresponding Paclib functions pacStart, pacWait, pacWaitOne, ....

Paul Hudak. Para-Functional Programming. IEEE Computer, 19(8):60--70, August 1986.


High-Level Abstractions for Efficient Concurrent Systems - Jagannathan, Philbin   (Correct)

....are multiplexed on a physical processor in the same way that threads are multiplexed on a virtual processor. Separating the virtual machine abstraction from a specific hardware configuration allows us to map virtual topologies (in terms of virtual processors) onto any concrete architectural surface[12, 16]. Physical processors context switch virtual processors because of preemption, or because a VP specifically requests a context switch (e.g. because of an I O call initiated by its current thread) We discuss virtual processors in greater detail in the following sections. State transitions on ....

Paul Hudak. Para-Functional Programming. IEEE Computer, 19(8):60--70, August 1986.


Models and Languages for Parallel Computation - Skillicorn, Talia (1996)   (51 citations)  (Correct)

....information about suitable ways to partition the computation into pieces and place them [129] The same reduction rules apply, so that the communication and synchronization induced by this placement follows in the same way as in pure graph reduction. An example of this kind of languages is Paralf [118]. Paralf is a functional language based on lazy evaluation, that is an expression is evaluated on demand. However, Paralf allows a user to control the evaluation order by explicit annotations. In Paralf communication and synchronization are implicit, but it provides a mapping notation to specify ....

P. Hudak. Para-functional programming. IEEE Computer, 19, No.8:60--70, 1986.


Algorithm + Strategy = Parallelism - Trinder, Hammond, Loidl, Jones (1998)   (1 citation)  (Correct)

....in turn to the initial value. Moreover, each function application is created as a separate process. pipeline fs x = result where result = foldr ( id fs) x moreover (chain arc (map ( fs) arc (last fs) x) arc (head fs) result) Para Functional Programming Para functional programming (Hudak, 1986; Hudak, 1988; Hudak, 1991) extends functional programming with explicit parallel scheduling control clauses, which can be used to express quite sophisticated placement and evaluation schemes. These control clauses effectively form a separate language for process control. For ease of comparison ....

Hudak, P., "Para-Functional Programming", IEEE Computer, 19(8), (1986), pp. 60--71.


On the Analysis of List-Based Functional Programs for Automatic.. - Schreiner (1993)   (1 citation)  (Correct)

....arguments (the classification process becomes trivial then) Moreover, we can provide sequential and parallel versions of these higher order functions and let the user explicitly select those cases where he wants to utilize parallelism. This leads to the approch of para functional programming [Hudak, 1986] where the user can by explicit annotations influence the evaluation order in functional programs without changing the correctness. The disadvantage of this approach is the fact that the program source is forced into a particular structure (a composition of higher order functions) Moreover, it ....

Paul Hudak. Para-Functional Programming. IEEE Computer, 19(8):60--70, August 1986.


Partitioning and Distribution Strategies as First Class Objects - Panwar, Agha   (Correct)

....encapsulation and inheritance. Some language models, such as Linda [10] abstract away from the underlying architecture to such an extent that specification of placement strategies may not be feasible. Other languages use annotations for deciding the placement of tasks on processors (for example, [29, 18]) Languages that use annotations for specifying PDS s mix the concurrency specifcation with that of the architecture specific PDS code thereby making the programs less portable across architectures. A number of researchers are experimenting with a data parallel programming paradigm. For ....

P. Hudak. Para-functional programming. IEEE Computer, pages 60--70, August 1986.


Automatic Spark Strategies and Granularity for a.. - Hammond, Mattson.. (1994)   (3 citations)  (Correct)

....In the medium term, we therefore expect to be able to provide direct comparisons between GRIP and other architectures, but this is not practical at present. There are many other approaches to parallel implementation of functional languages, e.g. skeletons [4] explicit parallel control functions [12, 11], or load distribution annotations [1] Our approach has the advantages of program simplicity, runtime flexibility, and automatic scalability, at the cost of losing direct programmer control. Clearly, large grained tasks are tremendously important. While local sparking gave a much better ....

Hudak P, "Para-functional programming", IEEE Computer 19(8), (August 1986).


A Customizable Substrate for Concurrent Languages - Jagannathan, Philbin (1992)   (13 citations)  (Correct)

.... Furthermore, since VPs can be mapped onto specific physical processors, the ability to manipulate virtual processors as first class data values gives sting programmers a great deal of flexibility in expressing different parallel algorithms that are defined in terms of specific processor topologies[16]. More significantly, since VPs can be closed over different virtual policy managers, different groups of threads created by an application may be subject to different scheduling regimes. Virtual machines or VPs can be tailored to handle different scheduling protocols or policies. We discuss the ....

Paul Hudak. Para-Functional Programming. IEEE Computer, 19(8):60--70, August 1986.


Distributed Execution of Actor Programs - Agha, Houck, Panwar (1992)   (3 citations)  (Correct)

....on distributed memory architectures. Furthermore, in some cases, the structure of a problem is crystalline and well understood by the programmer. In these cases, the use of annotations for specifying processor locations for expression evaluation to guide the runtime system has been suggested (e.g. [10]) However, in the context of actors, explicit message passing primitives imply that a separate syntax to specify such annotations is superfluous. The organization of this paper is as follows. In Section 2 we give a brief overview of the actor model. Section 3 outlines multi send constructs to ....

P. Hudak. Para-functional programming. IEEE Computer, pages 60--70, August 1986.


Strategic SPMD - Hammond (1998)   (1 citation)  (Correct)

....is identical to a par b except that it is intended to spark a on processor n, consequently affecting the load balance. We deliberately leave the operational semantics of these processor identifiers vague (and avoid using topological operators such as the para functional operators left and right [Hud86,MiHu95] in order to allow alternative behaviours to be chosen by the runtime system if required, but our expectation is that these will normally map to independent processors in a good implementation of SPMD. The definition of parOn is not a novel feature: para functional programmers are ....

....by the runtime system if required, but our expectation is that these will normally map to independent processors in a good implementation of SPMD. The definition of parOn is not a novel feature: para functional programmers are accustomed to specifying processor locations using the on annotation [Hud86] and Clean possesses a similar annotation amongst many others [Ser98] The difference between those approaches and ours is simply one of emphasis: we are using these annotations to give additional hints to the dynamic runtime system, whereas in these other approaches, the annotations provide ....

Hudak, P., "Para-Functional Programming", IEEE Computer, 19(8), 1986, pp. 60--71.


On the Automatic Parallelization of List-Based Functional Programs - Schreiner (1992)   (Correct)

.... or stream parallelism) This classification process may be also essentially simplified by providing higher order functions that correspond to functional patterns and may be applied by the user to express parallelization points in a program (this leads to the idea of para functional programming [5]) 9 Conclusions The main idea expressed in this paper is that the automatic parallelization of functional languages should concentrate on typical patterns that often occur in listprocessing functions (this idea can be generalized for other recursively defined data structures e.g. trees as ....

Paul Hudak. Para-Functional Programming. IEEE Computer, 19(8):60--70, August 1986.


Functional Skeletons Generate Process Topologies in Eden - Galán, Pareja, Peña (1996)   (2 citations)  (Correct)

....in parallel is worthwhile or not. Several solutions have been proposed, ranging between two extremes: one of them is to leave the responsibility of deciding when and how to evaluate in parallel to the programmer. This is usually expressed by means of annotations within the functional program [Hud86, Kel89, PvE93] Another is to leave such decisions to the compiler [Bra93] Functional skeletons [Col89, DFH 93, Ski93] constitute a compromise between these two extremes: on one hand, a skeleton is a parameterized algorithmic scheme which can be instantiated with particular functions as ....

....142 B. M. Cole [Col89] proposed in an imperative framework the skeleton principle, and suggested a first collection of them, and how to predict the resulting program efficiency. Two early attempts of describing process topologies in a functional framework are Para Functional Programming [Hud86] and the language Caliban [Kel89] In both cases annotations are used by the programmer to indicate that an expression should be evaluated in parallel. In the Hudak approach, even the processor responsible for that evaluation is given in the annotation. Normally, a concrete underlying ....

P. Hudak. Para-Functional Programming. IEEE Computer, 19(8):60--69, August 1986.


GpH: An Architecture-independent Functional Language - Trinder, Barry, Jr.. (1998)   (2 citations)  (Correct)

....of GOFFIN, it may be possible to extend an existing parallel Haskell compiler with the necessary coordination mechanism, as for Eden. Para Functional Approaches: Para functional approaches extend a functional language with control annotations to support dynamic placement and distribution [Hud86] Communication is, however, implicit, as in the evaluation strategy approach. The para functional approach thus inverts the coordination language approach by incorporating the coordination language into the computation language rather than vice versa. The result is a more tightly coupled dynamic ....

....incorporating the coordination language into the computation language rather than vice versa. The result is a more tightly coupled dynamic semantics than can be obtained with a coordination language approach. The earliest para functional languages incorporated a separate annotation language (e.g. Hud86, Hud91, Sch95] but Mirani and Hudak s first class schedules [MiHu95] use monads to attach schedules to expressions. This allows schedules to be constructed as normal functional language expressions of type Schedule, and permits the use of standard higher order functions etc. Compared with ....

P. Hudak, "Para-Functional Programming", IEEE Computer, 19(8), 1986, pp. 60--71.


Compiling Technique Based on Dataflow Analysis for Functional.. - Valid Eiichi   (Correct)

....data to processors in multicomputers are obvious to programmers, it is difficult to express them in programs. As a paradigm to solve the above problem without losing the merit of functional programming languages, parafunctional programming, such as ParAlfl from Yale university, has been offered [10, 11]. This is a method to extend a functional programming language by introducing metalinguistic devices such as annotations in the language. Since ways of processing and mapping functions and data structure to processors are individual for the semantics of programs, it is expected that the problem ....

Paul Hudak, "Para-Functional Programming", IEEE Computer 19,8,60 (1986).


Evaluating Parallel Algorithms: Theoretical and Practical Aspects - Natvig (1996)   (Correct)

No context found.

Paul Hudak. Para-Functional Programming. IEEE Computer, pages 60--69, August 1986.


PRP - Parallel Recursive Procedures - Maus, Aas (1995)   (Correct)

No context found.

Hudak P. Para-Functional Programming. IEEE Computer. August 1986. p 60-70.

First 50 documents

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