152 citations found. Retrieving documents...
Arvind, R. S. Nikhil, and K. K. Pingali. I-structures: Data structures for parallel computing. Computation Structures Group Memo 269, Massachusetts Institute of Technology Laboratory for Computer Science, Cambridge, Massachusetts, February 1987.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Synchronization Support Using Full/Empty Tagged Shared Memory .. - Vlassov, Moritz   (Correct)

.... programming environment based on a shared memory programming model, synchronization is provided either as explicit user level synchronization primitives such as locks and barriers, or implicitly synchronized data structures such as lock able L structures [12, 9] and write once I structures [5]. The performance benefits of supporting fine grained synchronization are primarily the result of allowing a dataflow style of computation in programming models, and maximizing the exposed parallelism by minimizing the possibility of false dependencies caused by coarse grained synchronization. In ....

.... has participated in defining the EDA language constructs enabling implicit synchronization, and implemented a mapping tool for EDA programs [17] The EDA model specifies special synchronization types for shared variables similar to data structures with special accessors, such as I structures [5] and M structures [6] used in a programming environment for the MIT Monsoon dataflow machine synchronization in data parallelism programmed for the MIT Alewife shared memory multiprocessor [1] In EDA, shared variables are of three different synchronization types, I data, X data, and S data, ....

Arvind, R. S. Nikhil, and K. K. Pingali. I-Structures: Data Structures for Parallel Computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, October 1989.


Design and Evaluation of the Hamal Parallel Computer - Grossman (2002)   (1 citation)  (Correct)

....the integrity of shared data. All sharedmemory multiprocessors provide, at minimum, atomic read and modify memory operations (e.g. swap, test and set) These operations are sufficient to implement higher level synchronization primitives such as locks, semaphores, I, J, L, M structures ([Arvind86], Barth91] Kranz92] producer consumer queues, and barriers. However, the overhead of synchronization primitives implemented with atomic memory operations alone can be quite high, so it becomes desirable to provide additional hardware support for efficient synchronization. In this chapter we ....

Arvind, R. S. Nikhil, K. K. Pingali, "I-Structures: Data Structures for Parallel Computing ", Proc. Workshop on Graph Reduction, Springer-Verlag Lecture Notes in Computer Science 279, pp. 336-369, September/October 1986.


Functional Computation as Concurrent Computation - Niehren (1995)   (17 citations)  (Correct)

....ffi rather than into ffi 0 is motivated by our belief that the abstraction level of ffi is relevant for programming, theory, and implementation. The notion of single assignment we use in ffi is known from a directed usage of logic variables [Pin87] as for instance in the data flow language Id [ANP89, BNA91]. Alternatively, we could express single assignment via equational constraints, but these are not available in the calculus. In fact, the directed single assignment mechanism in this paper is motivated by a data flow discussion for polymorphic typing a concurrent constraint language [Mul96] The ....

Arvind, R.S. Nikhil, and K.K. Pingali. I-structures: Data-structures for parallel computing. ACM Transactions on Programming Languages and Systems, 4(11):598--632, 1989.


A Concurrent Lambda Calculus with Futures - Niehren, Schwinghammer, Smolka (2005)   (Correct)

....computation with indeterministic communication cannot be modeled by these lambda calculi with future, as they are restricted to preserve con uence [6] In order to solve this problem, we propose a new operator for (fut) that can create handled futures. These model the I structures of Id [3] and are closely related to the promises of [11] A handled future comes with a handle that can eventully assign a value to the future. Handled futures provide single assignment. Any attempt to use the same handle a second time raises a programming error. Handle errors are problematic in a ....

....what is needed for recursion. We can express the MultiLisp expression future(e) as thread x:e where x is a fresh variable, but clearly our thread operator is more general by not imposing x 62 fv(e) Handled Futures. Handled futures appeared before as the promises of [11] and the I structures of [3]. They are introduced together with a handle by an operator handle of type handle : A (A unit) B) B An application handle x: y:e creates an association x is handled by y introducing a new future x of type A and a new handle y : A unit taking scope over some continuation e of type B ....

Arvind, R. S. Nikhil, and K. K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4):598-632, Oct. 1989.


Typed Concurrent Programming with Logic Variables - Müller, Niehren, Smolka   (Correct)

.... the instantiation state of procedure arguments (such as ground, non ground, free) directly before or before and after application [4, 11, 35] or guaranteed point to point communication [17, 33, 38] In concurrent functional languages, synchronization based on futures [14] or I structures [2] in Id comes close to data driven synchronization based on logic variables. In contrast to futures, logic variables are created independently from the thread that will bind it. In contrast to logic variables and similar to channels, both futures and I structures require explicit operations to ....

Arvind, R. S. Nikhil, and K. K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Progr. Lang. and Systems, 11(4):598--632, 1989.


WaveScalar - Swanson, Michelson, Oskin (2003)   (Correct)

....from Intel will include a 6MB L2 cache [60] Since each WaveCache processing element contains a small memory, the WaveCache can simultaneously utilize an enormous amount of on chip storage with very short access times. Traditional dataflow work has too often relied upon alternative memory models [61, 62], which, while enhancing performance, limit acceptance. Wave ordered memory make WaveScalar a uniquely different sort of dataflow instruction set: Through an aggressive dynamic wave and static ordering process WaveScalar supports traditional memory semantics, including side effects, indirection ....

Arvind, R. Nikhil, and K. K. Pingali, "I-structures: Data structures for parallel computing," ACM Transaction on Programming Languages and Systems, vol. 11, no. 4, pp. 598--632, 1989.


Waiting Algorithms for Synchronization in Large-Scale.. - Lira, Agarwal (1991)   (3 citations)  (Correct)

....incur substantial run time overheads in large scale machines with fine grained synchronization because they need to maintain histories of wait times at each of the many synchronization locations. Furthermore, they are not suitable for single assignment synchronization types like I structures [5] because of the absence of wait time histories for the synchronization locations. In using static two phase algorithms, we have transformed the problem of choosing between spinning and blocking to the problem of deciding the appropriate value for LpozZ. The advantage gained in using two phase ....

....We consider three types of synchronization: producer consumer, barrier, and mutual exclusion. Producer consumer synchronization is performed between one producer and one or more con sumers of the data produced Examples of this type of synchronization include futures [13] and I structures [5]. Barrier synchronization ensures that all threads participating in a barrier have reached a point in a program before proceeding. Mutual exclusion synchronization is used to provide exclusive access to data structures and critical sections of code. As motivation for the use of exponential and ....

[Article contains additional citation context not shown here]

Arvind, R. S. Nikhil, and K. K. Pingall. I-Structures: Data Structures for Parallel Comput- ing. In Proceedings of the Workshop on Graph Reduction, (Springer-Verlag Lecture Notes in Computer' Science 279), pages 336 369, September/October 1986.


Experience with Fine-Grain Synchronization in MIMD Machines.. - Yeung, Agarwal (1993)   (11 citations)  (Correct)

....Processorhardware support to operate efficiently on synchro nization state. The first component of support provides the programmer with a means to express synchronization at a fine granularity resulting in increased parallelism. Another attractive consequence is simpler, more elegant code [3]. The second component of support addresses the fact that an application using fine grain synchronization will need a large synchronization name space. Providing special synchronization state can lead to an efficient implementation from the standpoint of the memory system. We refer to this benefit ....

Arvind, and Rishiyur S. Nikhil. I-Structures: Data Structures for Parallel Computing. ACM Transactions on Programming Ixtnguages and Systems, pp. 598-632, Vol. 11, No. 4, October 1989.


Synchronized Lazy Aggregates - Turbak (1993)   (Correct)

....In the channel approach, devices are wired together by some sort of explicit communication channel. This approach encompasses communicating threads (e.g. Bir89] CSP [Hoa85] ML threads [CM90] producer consumer coroutines (e.g. Unix pipes [KP84] CLU iterators [L 79] Id s I structures [ANP89] and M structures [Bar92] and dataflow techniques (e.g. Den75] WA85] Many channel techniques disallow fan out, recursion, nesting, or the transmission of tree structured 3 data. 3 The space profiles of monolithic recursions can often be modelled by bounded channels, but the device ....

....a rendezvous. Since all processes lose access to the synchron after the rendezvous, there can only be one rendezvous per synchron. The rendezvous protocol of synchrons sets it apart from other synchronization structures (e.g. semaphores locks [Bir89] synchronous messages [Hoa85] I structures [ANP89], and M structures [Bar92] Synchronization typically involves some processes waiting in a suspended state for a shared synchronization entity to be released by the process that currently owns it. Traditional protocols supply explicit wait and release operations. With synchrons, only the wait is ....

Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, pages 598--632, October 1989.


Loosely-Coupled Processes - Jayadev Misra Department (1991)   (5 citations)  (Correct)

....logic programming languages [12] support logic variables or write once variables. A logic variable is initially undefined and it may be assigned a value at most once and by a single designated process, in any computation. Logic variables have been used in place of message communicating primitives ([1], 14] 3] In particular, the programming notation PCN by Chandy and Taylor [3] makes a distinction between ordinary program variables called mutables and logic variables called permanents; concurrently executing processes (in one form of process composition) are prevented from changing ....

Arvind, R. S. Nikil, and K. K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, October 1989.


Functional Encapsulation and Type Reconstruction in a.. - Gupta (1995)   (2 citations)  (Correct)

....Structures Group, Laboratory for Computer Science, MIT. Id is a high level, strongly typed language and it uses the Hindley Milner polymorphic type system and its automatic type inference mechanism [Mil78, DM82] at its functional core. Id also offers imperative data structures (I structures [ANP89] and M structures [BNA91] that cater to imperative styles of programming. Id is a layered language by design (see Figure 1.1) The language and its implementation can be divided into three distinct layers: the user level functional layer, the system level imperative layer, and the ....

....applying the filling function to each index position. Under the non strict, parallel evaluation model of Id, the array a is returned as soon as it is allocated; its filling loop executes in parallel. However, this does not create any race condition for the array because the I structure protocol [ANP89] supports fine grain producer consumer synchronization on every memory location: multiple readers wait at an empty location until a single writer fills it with the desired value. Nevertheless, as it stands, there are some technical problems with the above implementation. I structures and ....

[Article contains additional citation context not shown here]

Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. I-Structures: Data Structures for Parallel Computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, 1989.


A Processing Framework For Object Comprehensions - Chan, Trinder (1997)   (Correct)

....by set abstraction in mathematics. List comprehensions are widely available in functional programming languages and are heavily used to manipulate collections of data. A full description can be found in [31] List comprehensions were first used in functional database programming languages [1,32,36]. It is argued in [37] that list comprehensions are a good query notation for complex databases because of their brevity, clarity, expressive power, ease of optimisation, and smooth integration with programming languages. A study of collections in [40] shows that collection comprehensions can ....

....relying on occurrences. Object comprehensions support three numerical quantifiers: atleast, just, and atmost. Q6. Return the first supervisor of all students. The result is used to assess the work load of supervisors and hence duplicates should be kept. bag[ s Students s.supervisedBy. [1] ] 7 This query is based on a set of Student objects and therefore the result is naturally a set of Staff objects. If duplicates are to be kept the result can be specified to be a bag. Explicitly specifying the resultant collection kind provides a high level mechanism to manage duplicates. ....

Arvind, R.S. Nikhil, and K.K. Pingali. I-structures - Data Structures for Parallel Computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, 1989.


Parallel Programming Languages - Pingali (1998)   (Correct)

....i of array A must be obtained by defining a new array B that is identical to A except in the i th position where it has the value v. A naive implementation that makes a copy of A will be very inefficient. A variety of compiler optimizations [7] and language constructs (like I structures in Id [3]) have been proposed to address this problem but it is not clear to what extent these address the problem. A second problem is locality. In principle, an interpreter for a functional language can keep a work list of expressions whose inputs are available, and evaluate these expressions in any ....

Arvind, R. Nikhil, and K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11, October 1989.


On Memory Models and Cache Management for Shared-Memory.. - Dennis, Gao (1995)   (3 citations)  (Correct)

....be assigned or referenced) in any instantiation of the program graph. So that this is true, all data dependences between variables in a program graph must be represented by the partial order defined by the signal arcs of the graph. Incremental arrays are implemented using I structure operations [Arvind 89] The CREATE n operation creates (as a heap node) an array of n elements indexed by integers 0; n Gamma 1 in which each element has the value UNDEF, meaning undefined. The CREATE operation yields a pointer to the heap node that may be held by a variable, stored as an array element, and used ....

....memory cause the continuation of the processor activity to be entered in a defer queue held in the I structure memory. If the queue has only one entry, it is stored in place of the expected value; if more entries are needed, they are listed in an overflow area. For more on I structures, see [Arvind 89] A write operation makes an entry in I structiure memory defined, and causes all waiting activities to be resumed with the element value. Experiments with Monsoon have shown that defer queues contain only a few entries during program execution, most often no more than one [Hicks 93] There is ....

Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. I-structures: Data structures for parallel computing. ACM TOPLAS, 11(4):598--632, October 1989.


Dependence Flow Graphs: An Algebraic Approach to.. - Pingali, Beck.. (1991)   (52 citations)  (Correct)

....known as Arabic numerals in the West. Page 1 imperative language is phrased naturally in terms of an updatable store. While it is possible to treat the store functionally (as is done in denotational semantics) such treatments are quite clumsy in dealing with data structures, especially arrays [ANP89] ffl The representation should be compact. A new program representation whose size is asymptotically bigger than that of well accepted representations (such as def use chains) is unlikely to gain acceptance. In this paper, we illustrate the importance of these issues by examining a particular ....

Arvind, R. Nikhil, and K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11, October 1989.


A Portable Parallel Library for the Compilation of.. - Wolfgang Schreiner..   (Correct)

....this section, we give a short overview on the relationship of our work to that of other researcher in this area. 5.1 I Structures The most important influence to the DF library comes from the work done by the dataflow group at the MIT. The structures of the DF library are actually I structures [ANP87] that we have modified and extended for the application in an imperative language. These extensions include the explicit support for garbage collection and in particular the concept of indirections that is in our opinion essential for the coarse grain parallelization of functional languages (and ....

Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. I-Structures: Data Structures for Parallel Computing. Computation Structures Group Memo 269, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA, February 1987.


The MIT Alewife Machine - Agarwal, Bianchini, Chaiken, al (1991)   (2 citations)  (Correct)

....cache tags. In data packets, they are transmitted in the bottom four bits of the address and take advantage of the 16 byte cache line width. The system provides several language extensions for fine grain synchronization in the form of J structures and L structures. Patterned after I structures [7], J structures support producer consumer style synchronization on vector Table 5 Costs in Cycles of Fine Grain, Producer Consumer Synchronization In Alewife ( hw Represents the Use of Full Hardware Support; sw Represents Explicit Checking in Software) elements, with full empty bits ....

Arvind, R. Nikhil, and K. Pingali, "I-Structures: Data structures for parallel computing," ACM Trans. Programming Languages Syst., vol. 11, no. 4, pp. 598--632, Oct. 1989.


On Indexed Data Structures and Functional Matrix Algorithms - Ellmenreich, Lengauer (1997)   (Correct)

....accesses of an array can implement them by in place updates. For multi threaded accesses, additional expense in time and space cannot be avoided. In the case of Id, the language simply gives up the property of referential transparency by including I structures , which resemble arrays [ANP89] One can prevent multi threaded array accesses by updating the array inside a monad [Wad92a, Wad92b] which has the disadvantage of obscuring the algorithm by using an imperative like programming style within a functional program. This leads us to conclude that incremental array updates should ....

Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, October 1989.


The Eventflow Model - A Concept for Real-time Control of.. - Burg Fakultat Fur   (Correct)

....be called by a metapredicate. The result of the execution of the metapredicate is given to the program via an output parameter. On the implementation level, calculations can be expressed as dataflow graphs as well as rules [11] Complex data structures, e.g. arrays, can be handled by I structures [3]. Thus, the node representing a metapredicate is simply replaced by the graph for the calculation. As a result, there is no need to implement two different modules in the control system, each one with a different evalution model. And there is also no need to implement an interface and a protocoll ....

Arvind, R. S. Nikhil, "I-Structures: Data Structures for Parallel Computing", ACM Transactions on Programming Languages and Systens, Vol. 11, Nr. 4, 1989, pp. 598-632


Declarative Solutions to Partitioned-Grid Problems - Etalle, Hartel, Vree (2000)   (Correct)

....from ours (exchange of borders) The group of Arvind at MIT has worked for many years on implementations of functional programming languages with special emphasis on supporting scienti c applications. The languages Id [34] and Ph [35] provide special data structures, such as the I structure [36] and the Mstructure [37] The latter allows data values to be replaced by new data values. The more restricted I structure allows components of the structure to be lled in after the structure has been created. This ability, to decouple the allocation of a data structure from the assignment of ....

Arvind, R. S. Nikhil, and K. K. Pingali. I-Structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4):598-632, Oct 1989.


Advances in the Dataflow Computational Model - Najjary, Lee, Gao (1999)   (1 citation)  (Correct)

....in the same threads can be considered as ordinary updates to memory. However, the dataflow style synchronization between threads ensures that producers and consumers of values are guaranteed to be properly ordered. In particular, under the single assignment property of the I Structure memory [7] once a data element is defined, it will never be updated again. The copies of the data elements in the local cache will never be updated. Therefore, cache coherence should not be an issue in I Structure memory systems. It makes the design of I Structure cache much simpler without having to take ....

....without having to take care of the cache coherence problem. Such a memory model and its cache management has been proposed and described in [31, 32] Implementation of I structure caches in multithreaded architectures with dataflow origin have also been pursued in a number of research groups [1, 76, 7, 3, 65, 89]. For applications where non determinacy is required such as transaction processing applications several schemes based on an extension of functional programming and I structures have been reported. One scheme is based on the M structures proposal [9] Another scheme is to propose a program ....

Arvind, R. S. Nikhil, and K. K. Pingali. I-structures: Data structures for parallel computing . ACM Trans. on Programming Languages and Systems, 11(4):598--632, Oct. 1989.


Efficient Scheduling of Strict Multithreaded Computations - Fatourou, Spirakis (1999)   (Correct)

....for distributed memory machines) In these models there is no restriction on the pattern of synchronization that occurs during the execution of the computation. The model of parallelism with simple synchronization primitives has been employed by several parallel programming languages, like [2, 20, 25, 30, 35, 49]. Finally, there exist computations that use more complex synchronization techniques such as mutexes, semaphores, or condition variables. Although there exist a number of general purpose thread libraries [3, 46, 53] that provide such arbitrary primitives, it is usually dicult to model them through ....

....presented in this paper, does not provide any insight about the mechanism by which dependencies get resolved or unresolved dependencies get detected. In implementation, resolution and detection can be accomplished using mechanisms such as join counters [11] futures [30] or I structures [2]. For fully strict multithreaded computations one such mechanism has been implemented in Cilk [8, 27] We believe that a similar mechanism can be employed for the more general case of strict multithreaded computations. Our algorithm imposes an extra scheduling overhead of h per enabling, which is ....

Arvind, R. S. Nikhil and K. K. Pingali, \I-structures: Data Structures for parallel computing," ACM Transactions on Programming Languages and Systems, 11(4):598-632, October 1989.


Caching Single-Assignment Structures to Build a Robust.. - Lin, al. (1999)   (Correct)

.... EXTERN 3: #include issc.h 4: #define I NODE NUM NODES 1 5: 6: THREADED ARRAY INIT(int i node, int i id, int length) 7: 8: int i; 9: for(i=0; i length; i ) 10: INVOKE(i node, I WRITE F, i id, float)i) 11: END FUNCTION( 12: 13: 14: THREADED MAIN( 15: 16: SLOT SYNC SLOTS[3]; 17: int F str, i; 18: float F variable[8] 19: 20: INIT SYNC(0,NUM NODES 1,NUM NODES 1,1) 21: INVOKE(I NODE, I INIT, SLOT ADR(0) 22: Allocate cache space on each node 23: for(i=0; i NUM NODES; i ) 24: INVOKE(i, InitCache, SLOT ADR(0) 25: END THREAD( 26: 27: THREAD 1: ....

....were proposed as separate data structures for functional programs. Arvind, Nikhil, and Pingali demonstrated, through several programming examples, that the introduction of I structures in functional languages eliminates inefficiencies and increases the programmability of functional languages [3]. The proposition to incorporate I structures in functional languages was derived from the observation that without the ability to store a state, it is very difficult to solve even simple problems in a manner that is efficient, easy to code, and enables the exploitation of parallelism [3] Dennis ....

[Article contains additional citation context not shown here]

Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, October 1989.


Definition of the EARTH Model - Theobald (1999)   (Correct)

....is given a priority level. Thus, one could identify critical paths in the code that need to be run quickly, and other parts that can be deferred until processor load is light. Such a priority scheme would also assist in the speculative execution raised in the previous section. I structures [5] have been proposed as a convenient way of decoupling producers and consumers, so that consumers could request data without knowing if the data has been produced yet, so long as the consumers know where the data will be when it finally is produced. The semantics of I structures are similar to the ....

Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, October 1989.


An Implementation of a Hopfield Network Kernel on EARTH - Amaral, Gao, Tang (1998)   (1 citation)  (Correct)

....Programmers use these primitives to access the underlying EARTH multithreaded features. A complete reference to the Threaded C language can be found in [25] I structure is a non strict data structure proposed as an extension to the functional language Id by Arvind and his colleagues [3]. This data structure can be used as a synchronization mechanism to support producer and consumer type of computation. Because an I structure is able to queue read operations when they arrive before the corresponding write operation, the read operation will return the expected value even when it ....

....across all EARTH platforms, when writing Threaded C code, a programmer shall make no unwarranted assumptions about concurrent thread execution. IV. I Structures I structures are data structures introduced by Arvind and his collaborators in the context of the functional programming language Id [3]. The most salient advantage of an I structure is that there is no need for synchronization between reads and writes at their issuing time. An I structure is considered to be an array of elements 3 , where each element of the array can be in one of three states: empty, initialized, and ....

[Article contains additional citation context not shown here]

Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. I-structures: Data structures for parallel computing. ACM TOPLAS, 11(4):598--632, October 1989.


Alewife Systems Memo 34 - Mul-T Supplement For   (Correct)

....slot. A write to the J structure sets the slot to full in addition to storing a value into that slot. This provides synchronization between producers of J structure values and consumers of J structure values. A freshly allocated J structure has empty slots. J structures are similar to I structures [1]. The primary difference between I structures and J structures is that J structures can be reset and reused. reset jstruct reset al..l the J structure slots to empty. make jstruct size) Creates and returns a J structure of length size . All slots are initialized to empty. make jstruct on pid ....

Arvind, R. S. Nikhil, and K. K. Pingali. I-Structures: Data Structures for Parallel Computing. In Proceedings of the Workshop on Graph Reduction, (Springer-Verlag Lecture Notes in Computer Science 279), September/October 1986.


The MIT Alewife Machine: Architecture and Performance - Agarwal, Bianchini, Chaiken, .. (1995)   (173 citations)  (Correct)

....an efficient implementation of fine grain synchronization and allows both producerconsumer and mutual exclusion synchronization to be synthesized. Alewife provides several language extensions for fine grain synchronization in the form of J structures and L structures. Patterned after I structures[6], J structures supports producerconsumer style synchronization on vector elements, with full empty bits associated with each vector element. A J structure read waits until the element is full before returning its value. A J structure write updates the element and sets it to full. An L structure ....

Arvind, R. S. Nikhil, and K. K. Pingali. I-Structures: Data Structures for Parallel Computing. ACM Transcations on Programming Languages and Systems, 11(4):598--632, October 1989.


Evaluation of Various Node Configurations for Fine-grain.. - Jin-Soo Kim   (Correct)

....a quantum. The original TAM model provides special enter and leave threads that are intended to take advantage of the locality among multiple threads in a scheduling quantum, but the optimization has not been implemented in the TAM compiler. Global data structures in TAM are based on Istructure [2] semantic, which provides synchronization on a per element basis. Accesses to the data structures are split phase and are performed via special instructions such as ifetch and istore. There have been already many research projects to implement fine grain multithreaded architectures using stock ....

Arvind, R. S. Nikhil, and K. K. Pingali. I-Structures: Data Structures for Parallel Computing. Technical Report CSG Memo 269, MIT, Feb. 1987.


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

....approaches. Some non functional approaches are also covered. The approach that is most closely related to our work is that using first class schedules (Mirani and Hudak, 1995) described in Section 6.4. 6. 1 Purely Implicit Approaches Purely implicit approaches include dataflow languages like Id (Arvind et al. 1989) or pH (Nikhil et al. 1993) which is based on Haskell, and evaluation transformers (Burn, 1987) Data parallel languages such as NESL (Blelloch et al. 1993) can also be seen as implicitly parallelising certain bulk data structures. All of the implicit approaches have some fixed underlying model ....

....the CM 5. Certain evaluation strategies can therefore be seen as control parallel implementations of data parallel constructs, targetted more at distributed memory or shared memory machines than at massively parallel architectures. Dataflow Many recent dataflow languages are functional, e.g. Id (Arvind et al. 1989), indeed pH (Nikhil et al. 1993) is a variant of Haskell. These languages typically use some evaluation scheme, e.g. lenient evaluation, to introduce parallelism implicitly. The evaluation scheme generates massive amounts of fine grained parallelism, which is often too small to be utilised ....

Arvind, Nikhil, R.S., and Pingali, K.K., "I-Structures - Data Structures For Parallel Computing ", TOPLAS 11(4), (1989), pp. 598--632.


Memory Reuse Analysis in the Polyhedral Model - D. Wilde, S. Rajopadhye (1996)   (22 citations)  (Correct)

....k=N ( N 1) Gamma k) 1 and finally, d = Lmax(d 1 ; d 2 ) 1, thus the lifetime of S is 1. Next, we find a maximally large set (but recall that since the schedule is 1dimensional, we cannot expect to use more than one of them) of linearly independent vectors ae such that d S ae; i.e. [1] Theta 1 0 0 ae Within this feasible space, we may choose, for example a vector that minimizes the footprint of the domain of S, and this yields [1; 0; 0] T , which means that the k dimension of S may be shared in memory. Finally, we determine a matrix Pi whose null space is ae, say ....

....and a one dimensional memory allocation. 5. Related Work Alpha is a specialized functional language, closely related to Crystal [3] The analysis methods presented here are complementary to the ones used for other conventional functional languages such as SISAL and Haskell with I structures [1]. Parallelizing compliers face a dual problem to ours. In a loop program, only the flow dependencies are true dependencies, output and anti dependencies arise due to memory reuse, and can be eliminated at the price of more memory. Since the fewer the dependencies, the higher the parallelism in ....

[Article contains additional citation context not shown here]

Arvind, R. S. Nikhil, and K. K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, October 1989.


Effects of Data Bundling in Non-strict Data Structures - Rho, Han, Kim, Hwang (1995)   (Correct)

....is separated from the definition of its elements. I structures make the language non functional, but do not raise determinacy issues, which means that the programmer is free from details of scheduling and synchronization of parallel activities unlike data structures in imperative languages[1]. An I structure array, called Iarray, is a special kind of array, each of whose components may be written no more than once. There are four operations defined on I arrays: creation, index bounds operation, I fetch, and I store. I fetch takes an I structure and an index, and returns the value of ....

....to address the frame slot where the value is returned. empty empty empty empty its continuation is 64,52 empty empty empty empty deferred full full full full empty empty empty 64,52 200 100 100 100 1 2 3 4 (a) all elements are initially in empty states (b) after an I store writes 100 into A[1] (d) after an I store writes 200 into A[3] c) after an I fetch tries to read from A[3] 2 3 3 3 4 4 4 2 1 2 1 1 Figure 2: A sequence of I stores and I fetches for Iarray A 3 Data bundling scheme In this section, we discuss necessity of data bundling, and explain our data bundling scheme and ....

[Article contains additional citation context not shown here]

Arvind, R. S. Nikhil, and K. K. Pingali. "I-Structures: Data Structures for Parallel Computing". ACM Transactions on Programming Languages and Systems, Vol. 11, No. 4, pp. 598-632, Oct. 1989.


Arvind Krishnamurthy - Report No Ucb   Self-citation (Arvind)   (Correct)

No context found.

Arvind, R. S. Nikhil, and K. K. Pingali. I-structures: Data structures for parallel computing. Computation Structures Group Memo 269, Massachusetts Institute of Technology Laboratory for Computer Science, Cambridge, Massachusetts, February 1987.


Compilation of Id - Ariola, Arvind (1991)   (3 citations)  Self-citation (Arvind)   (Correct)

.... community [6, 9, 14] but it is still rare in the Fortran community (Pingali s work being a notable exception [15] In this paper we will show certain aspects of the process of compiling Id, an implicit parallel language [13] Id is a higher order functional language augmented with I structures [5] and M structures [7] I structures add a flavor of logic variables, while M structures add side effects and non determinism to Id. Id, like most modern functional languages, has a Hindley Milner type sys2 tem and non strict semantics. Id has been in use at MIT as the language for programming ....

Arvind, R. Nikhil, and K. Pingali. I-Structures: Data Structures for Parallel Computing. In Proceedings of the Workshop on Graph Reduction, Santa Fe, New Mexico, Springer-Verlag LNCS 279, pages 336--369, September /October 1987.


A Syntactic Approach to Program Transformations - Ariola, Arvind (1991)   (19 citations)  Self-citation (Arvind)   (Correct)

....Optimizations, Correctness, Intermediate Language, Non strictness. 1 Introduction For a number of years at MIT we have been working with an implicit parallel language called Id. Id is a high level functional language [16] augmented with a novel data structuring facility known as I structures [5]. Id, like most modern functional languages, is non strict, and has higher order functions and a Milner style type system. It also has a fairly large syntax to express currying, loops, list and array comprehensions, and pattern matching for all algebraic types. We have found it difficult to give ....

....letrec or block expressions (Section 3) A block in Kid is not treated as syntactic sugar for applications; it is central to expressing the sharing of subexpressions. Kid also embodies the novel idea of multiple values (Section 4) In Section 5, we enrich our language by introducing I structures [5], which takes us beyond the realm of pure functional languages. Kid without loops is presented in Section 6, where we also introduce the notion of printable value and answer associated with a Kid term. Informally, the answer is the maximal information that a term can produce and plays a crucial ....

[Article contains additional citation context not shown here]

Arvind, R. S. Nikhil, and K. K. Pingali. I-Structures: Data Structures for Parallel Computing. ACM Transactions on Programming Languages and Systems, 11(4), October 1989.


From Control Flow to Dataflow - Micah Beck Richard (1991)   (16 citations)  (Correct)

No context found.

Arvind, R. Nikhil, and K. Pingali. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11, October 1989.


Extended Synchronous Dataflow for Efficient DSP System.. - Park, Chung, Ha (1999)   (3 citations)  (Correct)

No context found.

Arvind; Rishiyur S. Nikhil, and Keshav K. Pingali. I-structures: Data Structures for Parallel Computing. Proc. of the Workshop on Graph Reduction, Santa Fe, September 28- October 1 1986


A Query Language for Multidimensional Arrays: Design.. - Libkin, Machlin, Wong (1996)   (36 citations)  (Correct)

No context found.

Arvind, R.S. Nikhil, and K.K. Pingali. I-structures: Data structures for parallel computing. ACM Trans. Progr. Lang. Syst. 11 (1989), 598--632.


Efficiency of Bulk Synchronous Parallel Programming Using.. - Dabrowski, Loulergue (2002)   (Correct)

No context found.

Arvind and R. Nikhil. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4), 1989.


Parallel Juxtaposition for Bulk Synchronous Parallel ML - Loulergue (2002)   (1 citation)  (Correct)

No context found.

Arvind and R. Nikhil. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4), 1989.


Compositionality in Functional Bulk Synchronous Parallelism - Loulergue (2002)   (Correct)

No context found.

Arvind and R. Nikhil. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4), 1989.


Functional Bulk Synchronous Parallel Programming in C++ - Loulergue, Dabrowski (2002)   (Correct)

No context found.

Arvind and R. Nikhil. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4), 1989.


Unknown - Wul Wulf Compilers   (Correct)

No context found.

Arvind, R. S. Nikhil, and K. K. Pingali. I-Structures: Data Structures for Parallel Computing. Technical Report CSG Memo 269, MIT Lab for Computer Science, 545 Tech. Square, Cambridge, MA, February 1987. (Also in Proc. of the Graph Reduction Workshop, Santa Fe, NM. October 1986.).


Semantics of a Functional Bulk Synchronous Parallel Language.. - Gava, Loulergue (2002)   (Correct)

No context found.

Arvind and R. Nikhil. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4), 1989.


LISP AND SYMBOLIC COMPUTATION: An International Journal.. - Ts Scheme Distributed   (Correct)

No context found.

Arvind, Rishiyur Nikhil, and Keshav Pingali. I-Structures: Data Structures for Parallel Computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, October 1989.


Implementation of the BSMLlib Library v0.2 - Loulergue (2002)   (Correct)

No context found.

Arvind and R. Nikhil. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4), 1989.


Verifying Functional Bulk Synchronous Parallel Programs Using .. - Gava, Loulergue (2003)   (Correct)

No context found.

Arvind and R. Nikhil. I-structures: Data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4), 1989.


New Techniques for the Analysis and Implementation of Functional.. - Chuang (1993)   (Correct)

No context found.

Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. I--structures: Data structure for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, October 1989.


Prototyping 1 - Queens' Problem Range   (Correct)

No context found.

Arvind, R.S. Nikhil, and K.K. Pingali. I-Structures: data structures for parallel computing. ACM Transactions on Programming Languages and Systems, 11(4):598--632, 1989.


Structured Programming with Limited Private Types in Ada: Nesting.. - Baker (1991)   (1 citation)  (Correct)

No context found.

Arvind, Nikhil, Rishiyur S., and Pingali, Keshav K. "I-Structures: Data Structures for Parallel Computing". ACM TOPLAS 11,4 (Oct. 1989),598-632.


Shallow Binding Makes Functional Arrays Fast - Baker (1991)   (9 citations)  (Correct)

No context found.

Arvind, Nikhil, R.S., and Keshav, K.P. "I-structures: data structures for parallel computing". Proc. Workshop on Graph Reduction, Los Alamos, NM, Feb. 1987.

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