17 citations found. Retrieving documents...
Nikhil, R. S. ID Version 90.0 Reference Manual. Computation Structures Group Memo 284-1, Laboratory for Computer Science, Massachusetts Institute of Technology, July 1990.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
A Time-Stamping Algorithm for Efficient Performance Estimation of.. - Yale (2001)   (1 citation)  (Correct)

....generates a dynamic stream of instructions that are processed with a set of time stamping rules that estimate the timing behavior of the code on the simulated processor. The first time stamp based processor simulator that we know of was first used for the GITA tagged token dataflow processor [13]. Austin and Sohi s paragraph tool for performing analysis on Dynamic Dependency Graphs shares some similarities with this work, but was not specifically designed to provide estimates of superscalar processor performance [2] This work describes how timestamping can be used to simulate modern ....

Rishiyur S. Nikhil, P. R. Fenstermacher, and J. E. Hicks. Id World Reference Manual (for LISP Machines). Unnumbered technical report, Massachusetts Institute of Technology, Laboratory for Computer Science, Computation Structures Group, 1988.


A Gentle Introduction to Haskell 98 - Hudak, Peterson, Fasel (1999)   (84 citations)  (Correct)

....favorite sorting algorithm: quicksort [ quicksort (x:xs) quicksort [y y xs, y x ] x] quicksort [y y xs, y =x] To further support the use of lists, Haskell has special syntax for arithmetic sequences, which are best explained by a series of examples: 1. 10] [1,2,3,4,5,6,7,8,9,10] [1,3. 10] 1,3,5,7,9] 1,3. 1,3,5,7,9, infinite sequence) More will be said about arithmetic sequences in Section 8.2, and infinite lists in Section 3.4. 2.4.2 Strings As another example of syntactic sugar for built in types, we note that the literal string hello is actually ....

....initial request to be submitted, in turn allowing the first response to be generated; the engine is now primed, and the recursion takes care of the rest. As an example of this program in action, if we define: init = 0 next resp = resp process req = req 1 then we see that: take 10 reqs ) [0,1,2,3,4,5,6,7,8,9] As another example of the use of lazy patterns, consider the definition of Fibonacci given earlier: fib = 1 : 1 : a b (a,b) zip fib (tail fib) We might try rewriting this using an as pattern: fib (1:tfib) 1 : 1 : a b (a,b) zip fib tfib ] This version of fib has the ....

[Article contains additional citation context not shown here]

R.S. Nikhil. Id (version 90.0) reference manual. Technical report, Massachusetts Institute of Technology, Laboratory for Computer Science, September 1990.


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

....list comprehensions. List comprehensions were introduced in KHC and its successor Miranda [Tur85] to construct lists without explicitly applying recursion. PJ87] describes how to transform list comprehensions into recursive functions. The concept was later extended to array comprehensions in Id [Nik88] and taken over by Haskell [HPW 92] Id also provides loops as a syntactic sugar for expressing tail recursive functions. While the basic idea of iterated compositions is to express computational patterns without constructing an intermediate data structure, one can simulate their effect by ....

Rishiyur S. Nikhil. ID (Version 88.0) Reference Manual. Computation Structures Group Memo 284, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA, March 1988.


Design and Implementation of a Packet Switched Routing Chip - Joerg (1990)   (6 citations)  (Correct)

....eventually consume all the tokens that it produces. In a multi node dataflow machine such as Monsoon, one node may send a token to another, causing the second node to concurrently perform part of the computation. In this way, many nodes may cooperate on solving a single problem. The language Id [8] is a parallel language designed with dataflow processors in mind. From this language a compiler can directly generate dataflow graphs. These graphs allow the executable code to retain the parallelism that was inherent in the original algorithm. This allows a dataflow machine to exploit many ....

R. S. Nikhil. Id Nouveau Reference Manual, Part I: Syntax. Technical Report, Computation Structures Group, Massachusetts Institute of Technology, Cambridge MA, April 1987.


Reducing Communication by Honoring Multiple Alignments - Garza-Salazar, Böhm   (Correct)

....groups. In the context of functional languages, Li and Chen [22, 23] propose automatic array alignment and partitioning techniques for the functional language Crystal [30] Rogers and Pingali [29] present some work where the user specifies data decomposition for the functional language Id Noveau [25]. In [27] M. O Boyle describes program and data transformations for executing a restricted version of SISAL on distributed memory machines. The techniques proposed are intended to solve problems of load imbalance, data alignment, data distribution, and partitioning of loop iterations. In the ....

R.S. Nikhil. Id (version 90.0) reference manual. Technical Report CSG Memo 284-1, Massachusetts Institute of Technology, Laboratory for Computer Science, 1990.


Implementation of a Portable Nested Data-Parallel.. - Blelloch, Chatterjee.. (1994)   (97 citations)  (Correct)

....extensions to Common Lisp [55] The large number of features in Common Lisp, and the difficulty of extending their semantics to parallel execution, preclude the implementation of full nested data parallelism. This is strong motivation for a simple core language. The parallel languages ID [43], SISAL [40] and Crystal [22] although not explicitly data parallel, do support fine grained parallelism. They also support nested data structures, although there has been little research on implementing nested parallelism for these languages. There are also several serial languages that supply ....

Rishiyur S. Nikhil. ID Version 90.0 Reference Manual. Computation Structures Group Memo 284-1, Laboratory for Computer Science, Massachusetts Institute of Technology, July 1990.


D-OSC: A SISAL Compiler for Distributed-Memory Machines - Garza-Salazar, Böhm   (Correct)

....[20] and techniques for automatic restructuring and parallelization of programs [20, 26, 25] Implicit parallelism is found in functional languages where there is no predefined order of execution other than the order dictated by the data dependences in the program. SISAL [16] Crystal[23] Id [18], and Haskell [15] are examples of functional languages proposed as alternatives for parallel programming. This work was supported in part by LLNL Grant B282313 One of the major criticisms of functional languages is that they are not as efficient as their imperative counterparts when solving ....

R.S. Nikhil. Id (version 90.0) reference manual. Technical Report CSG Memo 284-1, Massachusetts Institute of Technology, Laboratory for Computer Science, 1990.


General Purpose Parallel Computing - McColl (1993)   (64 citations)  (Correct)

....in the pursuit of efficiency, it is often necessary to compromise some of the elegance and simplicity of such approaches. McCOLL : GENERAL PURPOSE PARALLEL COMPUTING To a large extent, this has already happened in dataflow implementations of functional languages, e.g. the implementation of Id [199] on Monsoon [206] Modern dataflow architectures [128, 129, 200, 201, 206] are in many important respects quite close to those described in this paper. For example, they must achieve latency tolerance through multithreading since, in the dataflow model, memory accesses are split transactions ....

....computing, based on the bulk synchronous parallel (BSP) model of computation [258] Although this approach has many strengths, we would not want to argue that it is the only viable approach. Two alternatives, which merit serious consideration, are the actor model [9, 10] and the dataflow model [128, 129, 199, 200, 206]. The most fundamental difference between these two approaches and the BSP model is that they both have at their core the idea of local (usually pairwise) synchronisation events, whereas the BSP model, as well as various PRAM [80, 89, 149, 224, 259, 266] and data parallel models [43, 123] have ....

R S Nikhil. Id - Language Reference Manual. Version 90.1. Computation Structures Group Memo 284-2, Laboratory for Computer Science, Massachusetts Institute of Technology, July 1991.


A Simple Program Transformation for Parallelism - Debray, Jain (1994)   (9 citations)  (Correct)

....b( x) of the final state. Accumulative computations of this kind, involving associative operators, are commonly encountered in a wide variety of contexts, to the point that some authors have proposed augmenting programming languages with constructs designed specifically to handle such computations [13, 14]. It is easy to show that this computation can be expressed using a procedure p defined as follows (to keep the program simple, the accumulator has not been made explicit here: it can easily be transformed to a tail recursive procedure that manipulates an accumulator explicitly: see, for example, ....

R. S. Nikhil, Id Language Reference Manual, Computation Structures Group Memo 284-2, Lab. for Computer Science, Massachusetts Institute of Technology, Cambridge, MA, July 1991.


Implementation of a Portable Nested Data-Parallel Language - Blelloch (1994)   (97 citations)  (Correct)

....extensions to Common Lisp [40] The large number of features in Common Lisp, and the difficulty of extending their semantics to parallel execution, preclude the implementation of full nested data parallelism. This is the main reason why we wanted a simple core language. The parallel languages ID [32], SISAL [30] and Crystal [18] although not explicitly data parallel, do support fine grained parallelism. They also support nested data structures, although there has been little research on implementing nested parallelism for these languages. There are also several serial languages that supply ....

R. S. Nikhil. ID Version 90.0 Reference Manual. Computation Structures Group Memo 284-1, Laboratory for Computer Science, Massachusetts Institute of Technology, July 1990.


The Design of the PACLIB Kernel for Parallel Algebraic.. - Schreiner, Hong (1993)   (2 citations)  (Correct)

.... we have developed somewhat more efficient variants of the algorithm [22] 7 Related Work Finally, we want to relate the concepts of Paclib to other parallel systems: Functional Programming: The Paclib task model is influenced by functional programming [25] and related concepts as dataflow [16] and guarded horn clause languages [11] Paclib tasks are similar to the futures of Multilisp [12] However, Paclib uses an explicit synchronization function to access task results, while futures are transparent to the program. This is possible since in Multilisp all operand types are checked ....

....Linda [8] allows the non deterministic selection of tuples that match a given pattern. Message passing languages like Occam [14] offer the non deterministic reception of messages from different sources. Streams: Streams are a concept of non strict functional languages [25] data flow languages [16] and guarded horn clause languages [11] In contrast to message passing channels, streams are first order objects that can be accessed by many tasks simultaneously. There also exist more general forms of non strict data structures (e.g. I Structures [2] Garbage Collection: There is a large ....

R. S. Nikhil. ID (Version 88.0) Reference Manual. Computation Structures Group Memo 284, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA, March 1988.


The Cilk System for Parallel Multithreaded Computing - Joerg (1996)   (33 citations)  (Correct)

....of control. When using such a multithreaded programming model, the runtime system must schedule these tasks and dynamically spread them across the machine in order to load balance the computation. The most ambitious of the multithreaded languages are the implicitly parallel languages, such as Id[Nik91] In these languages the programmer expresses his algorithm at a high level without any mention of parallelism. Then, a sophisticated compiler automatically breaks the program up into a fine grained multithreaded program. In this model every memory reference and every interprocedural ....

....to offset the runtime scheduling and synchronization overhead. The static set of sequential threads making up the multithreaded program can either be generated implicitly by a sophisticated compiler, or explicitly by the programmer. Programming languages advocating the implicit style, such as Id [Nik91] and Sisal [MSA 85] usually take a high level, functional, description of the actual problem, extract the available parallelism from the declaration and partition it into sequential threads. While implicit programming languages simplify the programming task for some problems, other problems ....

R.S. Nikhil. ID language reference manual. Computation Structure Group Memo 284-2, Massachusetts Institute of Technology, 545 Technology Square, Cambridge, Massachusetts 02139, July 1991.


A Parallel Complexity Model for Functional Languages - Guy Blelloch, John Greiner (1994)   (3 citations)  (Correct)

....an important aspect of functional languages is their inherent parallelism since the languages lack side effects, it is safe to evaluate subexpressions in parallel. Furthermore researchers have presented many implementation techniques to take advantage of this parallelism, including data flow [24] parallel graph reduction [17, 26] and various compiler techniques [11] Such work has suggested that it might not be necessary to add explicit parallel constructs to functional languages to get adequate parallelism from functional languages. There has been little study, however, of how much ....

Rishiyur S. Nikhil. ID Version 90.0 Reference Manual. Computation Structures Group Memo 284-1, Laboratory for Computer Science, Massachusetts Institute of Technology, July 1990.


Parallelism in Sequential Functional Languages - Blelloch, Greiner (1995)   (8 citations)  (Correct)

....aspect of purely functional languages is their inherent parallelism since the languages lack side effects, subexpressions may safely be evaluated in parallel. Furthermore, researchers have presented many implementation techniques to take advantage of this parallelism, including data flow [28], parallel graph reduction [20, 30] and various compiler techniques [14] Such work has suggested that it might not be necessary to add explicit parallel constructs to functional languages to get adequate parallelism from functional languages. There has been little study, however, of how much ....

Rishiyur S. Nikhil. ID Version 90.0 Reference Manual. Computation Structures Group Memo 284-1, Laboratory for Computer Science, Massachusetts Institute of Technology, July 1990.


Report on the EVE Programming Language - Schreiner (1989)   Self-citation (Laboratory)   (Correct)

....computer on a conventional parallel machine (see (Schreiner 1990) The extensive research on functional (respectively dataflow) programming has already resulted in a number of well known functional languages (Miranda ( Turner 1985) ML CHAPTER 1. INTRODUCTION 6 ( Harper et al. 1988) ID ((Nikhil 1988)) that correspond in many essential features. This shows that the functional programming community has reached a well founded consensus on the state of the art. It is not our aim to enrich this variety of languages by a new language with extraordinary new facilities. In fact, any of the ....

Rishiyur S. Nikhil. ID (Version 88.0) Reference Manual. Computation Structures Group Memo 284, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA, March 1988.


Dataflow Graph Partitioning for the Id Compiler - Yonald Chery   Self-citation (Engineering)   (Correct)

....its incoming edges are present. The instruction consumes its input operands producing result tokens emitted along its output edges. These dataflow graphs are generated through a well understood compilation process [12] from code written in a high level, parallel, declarative language called Id [6]. In dataflow graphs, it is the data dependencies rather than the temporal order that is specified between the instruction vertices. The actual execution schedule of instructions in a dataflow graph is resolved at run time, respecting the partial order specified by the dataflow graph. Such a ....

R. Nikhil, Reference Manual for Id 90, Computation Structures Group Memo 284-1, Dept. of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA, September 1990.


Implementation of a Portable Nested Data-Parallel.. - Blelloch, Hardwick.. (1993)   (97 citations)  (Correct)

No context found.

Nikhil, R. S. ID Version 90.0 Reference Manual. Computation Structures Group Memo 284-1, Laboratory for Computer Science, Massachusetts Institute of Technology, July 1990.

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