Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

David Gelernter

dblp:g/DavidGelernter · DBLP profile ↗
← Back
21ranked-venue papers
8as first author
0since 2021 · last 2014
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 11 · 4 first-authorSoftware engineering, systems software and programming languages · 7 · 3 first-authorComputer networks · 2Artificial intelligence and machine learning · 1Graphics, computer vision, multimedia, augmented reality and games · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer networks
2 papers
Routing and switching · 87% Transport protocols and congestion control · 13%
Computer architecture, parallel and distributed computing, and storage systems
11 papers
Parallel and multicore computing · 37% Distributed systems · 35% Interconnection networks and networks-on-chip · 18%
Software engineering, system software, and programming languages
5 papers
Programming languages and type systems · 58% Runtime systems and virtual machines · 22% Concurrent programming · 13%

Topics — the 26 heaviest of 30, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Routing and switching
fault-tolerant routing
0.212014
Traffic engineering with forward fault correction · SIGCOMM 2014
Routing and switching
traffic engineering
0.212014
Traffic engineering with forward fault correction · SIGCOMM 2014
Transport protocols and congestion control › TCP congestion control
congestion avoidance
0.112014
Traffic engineering with forward fault correction · SIGCOMM 2014
Parallel and multicore computing
parallel programming models
0.041988
Matching Language and Hardware for Parallel Computation in the Linda Machine · IEEE Trans. Computers 1988
The S/Net's Linda Kernel · ACM Trans. Comput. Syst. 1986
Distributed Data Structures in Linda · POPL 1986
Parallel and multicore computing › parallel programming models › concurrent programming languages
linda
0.031988
Matching Language and Hardware for Parallel Computation in the Linda Machine · IEEE Trans. Computers 1988
The Architecture of a Linda Coprocessor · ISCA 1988
The S/Net's Linda Kernel · ACM Trans. Comput. Syst. 1986
Programming languages and type systems
language design
0.031987
Environments as First Class Objects · POPL 1987
Parallelism, persistence and meta-cleanliness in the symmetric Lisp interpreter · PLDI 1987
Generative Communication in Linda · ACM Trans. Program. Lang. Syst. 1985
Distributed systems › middleware
tuple space
0.031988
Matching Language and Hardware for Parallel Computation in the Linda Machine · IEEE Trans. Computers 1988
The S/Net's Linda Kernel (extended abstract) · SOSP 1985
The Architecture of a Linda Coprocessor · ISCA 1988
Knowledge, reasoning and agents › Knowledge representation and reasoning
case-based reasoning
0.011991
FGP: A Virtual Machine for Acquiring Knowledge from Cases · IJCAI 1991
Distributed systems
distributed data structures
0.021986
The S/Net's Linda Kernel · ACM Trans. Comput. Syst. 1986
Distributed Data Structures in Linda · POPL 1986
Distributed systems
network computer
0.031985
Staged Circuit Switching · IEEE Trans. Computers 1985
An Adaptive Communications Protocol for Network Computers · SIGMETRICS 1985
Staged circuit switching for network computers · SIGCOMM 1983
Interconnection networks and networks-on-chip › switching
circuit switching
0.021985
Staged Circuit Switching · IEEE Trans. Computers 1985
Staged circuit switching for network computers · SIGCOMM 1983
Interconnection networks and networks-on-chip › switching
message switching
0.021985
Staged Circuit Switching · IEEE Trans. Computers 1985
Staged circuit switching for network computers · SIGCOMM 1983
Distributed systems › operating system support
interprocess communication
0.021985
Generative Communication in Linda · ACM Trans. Program. Lang. Syst. 1985
Distributed Communication via Global Buffer · PODC 1982
Processor architecture and microarchitecture › special-purpose processor
coprocessor
0.011988
The Architecture of a Linda Coprocessor · ISCA 1988
Parallel and multicore computing
parallel programming environment
0.011988
The Architecture of a Linda Coprocessor · ISCA 1988
Programming languages and type systems
language semantics
0.011987
Parallelism, persistence and meta-cleanliness in the symmetric Lisp interpreter · PLDI 1987
Memory systems › shared memory
distributed shared memory
0.031988
The Architecture of a Linda Coprocessor · ISCA 1988
Generative Communication in Linda · ACM Trans. Program. Lang. Syst. 1985
The S/Net's Linda Kernel (extended abstract) · SOSP 1985
Programming languages and type systems
distributed programming languages
0.011985
Generative Communication in Linda · ACM Trans. Program. Lang. Syst. 1985
Distributed systems
communication protocols
0.011985
An Adaptive Communications Protocol for Network Computers · SIGMETRICS 1985
Routing and switching
deadlock-free routing
0.011981
A DAG-Based Algorithm for Prevention of Store-and-Forward Deadlock in Packet Networks · IEEE Trans. Computers 1981
Routing and switching › packet switching
packet-switched networks
0.011981
A DAG-Based Algorithm for Prevention of Store-and-Forward Deadlock in Packet Networks · IEEE Trans. Computers 1981
Transport protocols and congestion control › flow control
store-and-forward deadlock prevention
0.011981
A DAG-Based Algorithm for Prevention of Store-and-Forward Deadlock in Packet Networks · IEEE Trans. Computers 1981
Processor architecture and microarchitecture › special-purpose processor
coprocessor design
0.011988
Matching Language and Hardware for Parallel Computation in the Linda Machine · IEEE Trans. Computers 1988
Parallel and multicore computing › parallel computing
parallel programming languages
0.011987
Environments as First Class Objects · POPL 1987
Distributed systems › distributed computing theory
communicating processes
0.011986
Distributed Data Structures in Linda · POPL 1986
Parallel and multicore computing › parallel programming models
message passing
0.011985
An Adaptive Communications Protocol for Network Computers · SIGMETRICS 1985

Methods — techniques the papers use, named apart from their topics

sorting network · 0.2constraint encoding · 0.2logic programming · 0.0tuple space · 0.0microprogramming · 0.0tuple space coordination · 0.0tuple space communication · 0.0system design and implementation · 0.0finite-state machine interpreter · 0.0heuristic techniques · 0.0DAG-based algorithm · 0.0
YearPublicationVenuePosition
2014 Traffic engineering with forward fault correction
abstract
Faults such as link failures and high switch configuration delays can cause heavy congestion and packet loss. Because it takes time to detect and react to faults, these conditions can last long---even tens of seconds. We propose forward fault correction (FFC), a proactive approach to handling faults. FFC spreads network traffic such that freedom from congestion is guaranteed under arbitrary combinations of up to k faults. We show how FFC can be practically realized by compactly encoding the constraints that arise from this large number of possible faults and solving them efficiently using sorting networks. Experiments with data from real networks show that, with negligible loss in overall network throughput, FFC can reduce data loss by a factor of 7--130 in well-provisioned networks, and reduce the loss of high-priority traffic to almost zero in well-utilized networks.
Hongqiang Harry Liu, Srikanth Kandula, Ratul Mahajan, Ming Zhang 0005, David Gelernter
SIGCOMM5
1997 From Weaving Threads to Untangling the Web: A View of Coordination from Linda's Perspective
Robert D. Bjornson, Nicholas Carriero, David Gelernter
COORDINATION3
1997 On What Linda Is: Formal Description of Linda as a Reactive System
David Gelernter, Lenore D. Zuck
COORDINATION1
1994 The Linda® Alternative to Message-Passing Systems
Nicholas Carriero, David Gelernter, Timothy G. Mattson, Andrew H. Sherman
Parallel Comput.2
1992 Supercomputing out of recycled garbage: preliminary experience with Piranha
abstract
In this paper we present a new system for making use of the cyles routinely wasted in local area networks. The Piranha system harnesses these cycles to run explicitly parallel programs. Programs written for Piranha are specializations of Linda master/worker programs [5]. We have used Piranha to run a number of production applications.
David Gelernter, David Kaminsky
ICS1
1991 FGP: A Virtual Machine for Acquiring Knowledge from Cases
Scott Fertig, David Gelernter
IJCAI2
1988 The Architecture of a Linda Coprocessor
abstract
The architecture of a coprocessor that supports the communication primitives of the Linda parallel-programming environment in hardware is described. The coprocessor is a critical element in the architecture of the Linda machine, a MIMD (multiple-instruction, multiple-data-stream) parallel-processing system that is designed top-down from the specifications of Linda. Communication in Linda programs takes place through a logically shared associative memory mechanism called tuple space. The Linda machine, however, has no physically shared memory. The microprogrammable coprocessor implements distributed protocols for executing tuple-space operations over the Linda machine communication network. The coprocessor has been designed and is in the process of fabrication. The projected performance of the coprocessor is discussed and compared with software implementation of Linda.>
Venkatesh Krishnaswamy, Sudhir Ahuja, Nicholas Carriero, David Gelernter
ISCA4
1988 Matching Language and Hardware for Parallel Computation in the Linda Machine
abstract
The Linda Machine is a parallel computer that has been designed to support the Linda parallel programming environment in hardware. Programs in Linda communicate through a logically shared associative memory called tuple space. The goal of the Linda Machine project is to implement Linda's high-level shared-memory abstraction efficiently on a nonshared-memory architecture. The authors describe the machine's special-purpose communication network and its associated protocols, the design of the Linda coprocessor, and the way its interaction with the network supports global access to tuple space. The Linda Machine is in the process of fabrication. The authors discuss the machine's projected performance and compare this to software versions of Linda.>
Sudhir Ahuja, Nicholas Carriero, David Gelernter, Venkatesh Krishnaswamy
IEEE Trans. Computers3
1987 Parallelism, persistence and meta-cleanliness in the symmetric Lisp interpreter
abstract
Symmetric Lisp is a programming language designed around first-class environments, where an environment is a dictionary that associates names with definitions or values. In this paper we describe the logical structure of the Symmetric Lisp interpreter. In other interpreted languages, the interpreter is a virtual machine that evaluates user input on the basis of its own internal state. The Symmetric Lisp interpreter, on the other hand, is a simple finite-state machine with no internal state. Its role is to attach user input to whatever environment the user has specified; such environments are transparent objects created by, maintained by and fully accessible to the user. The interpreter's semantics are secondary to the semantics of environments in Symmetric Lisp: it is the environment-object to which an expression is attached, not the interpreter, that controls the evaluation of expressions.This arrangement has several consequences. Because environments in Symmetric Lisp are governed by a parallel evaluation rule, the Symmetric Lisp interpreter is a parallel interpreter. A Symmetric Lisp environment evaluates to another environment; a session with the interpreter therefore yields a well-defined environment object as its result. Users are free to write routines that manage these interpreter-created objects - routines that list the elements of a namespace, coalesce environments, maintain multiple name definitions and so on precisely because environment objects may be freely inspected and manipulated. Because a named environment may contain other named environments as elements, interpreter-created objects may be regarded as hierarchical file systems. Because of the parallel evaluation semantics of environments, the interpreter is well-suited as an interface to a concurrent, language-based computer system that uses Symmetric Lisp as its base language. We argue that - in short - a basic semantic simplification in Symmetric Lisp promises a correspondingly basic increase in power at the user-interpreter interface.
David Gelernter, Suresh Jagannathan, Thomas London
PLDI1
1987 Environments as First Class Objects
abstract
We describe a programming language called Symmetric Lisp that treats environments as first­class objects. Symmetric Lisp allows programmers to write expressions that evaluate to environments, and to create and denote variables and constants of type environment as well. One consequence is that the roles filled in other languages by a variety of limited, special purpose environment forms like records, structures, closures, modules, classes and abstract data types are filled instead by a single versatile and powerful structure. In addition to being its fundamental structuring tool, environments also serve as the basic functional object in the language. Because the elements of an environment are evaluated in parallel, Symmetric Lisp is a parallel programming language; because they may be assembled dyamically as well as statically, Symmetric Lisp accomodates an unusually flexible and simple (parallel) interpreter as well as other history­sensitive applications requiring dynamic environments. We show that first­class environments bring about fundamental changes in a language's structure: conventional distinctions between declarations and expressions, data structures and program structures, passive modules and active processes disappear. We argue that the resulting language is clean, simple and powerful.
David Gelernter, Suresh Jagannathan, Thomas London
POPL1
1986 Distributed Data Structures in Linda
abstract
A distributed data structure is a data structure that can be manipulated by many parallel processes simultaneously. Distributed data structures are the natural complement to parallel program structures, where a parallel program (for our purposes) is one that is made up of many simultaneously active, communicating processes. Distributed data structures are impossible in most parallel programming languages, but they are supported in the parallel language Linda and they are central to Linda programming style. We outline Linda, then discuss some distributed data structures that have arisen in Linda programming experiments to date. Our intent is neither to discuss the design of the Linda system nor the performance of Linda programs, though we do comment on both topics; we are concerned instead with a few of the simpler and more basic techniques made possible by a language model that, we argue, is subtly but fundamentally different in its implications from most others.This material is based upon work supported by the National Science Foundation under Grant No. MCS-8303905. Jerry Leichter is supported by a Digital Equipment Corporation Graduate Engineering Education Program fellowship.
Nicholas Carriero, David Gelernter, Jerrold Leichter
POPL2
1986 An Adaptive Communications Protocol for Network Computers
Hussein G. Badr, David Gelernter, Sunil Podar
Perform. Evaluation2
1986 The S/Net's Linda Kernel
abstract
Linda is a parallel programming language that differs from other parallel languages in its simplicity and in its support for distributed data structures. The S/Net is a multicomputer, designed and built at AT&T Bell Laboratories, that is based on a fast, word-parallel bus interconnect. We describe the Linda-supporting communication kernel we have implemented on the S/Net. The implementation suggests that Linda's unusual shared-memory-like communication primitives can be made to run well in the absence of physically shared memory; the simplicity of the language and of our implementation's logical structure suggest that similar Linda implementations might readily be constructed on related architectures. We outline the language, and programming methodologies based on distributed data structures; we then describe the implementation, and the performance both of the Linda primitives themselves and of a simple S/Net-Linda matrix-multiplication program designed to exercise them.
Nicholas Carriero, David Gelernter
ACM Trans. Comput. Syst.2
1985 Parallel Programming in Linda
David Gelernter, Nicholas Carriero, Sarat Chandran, Silva Chang
ICPP1
1985 An Adaptive Communications Protocol for Network Computers
abstract
A network computer is a collection of computers designed to function as one machine. On a network computer, as opposed to a multiprocessor, constituent subcomputers are memory-disjoint and communicate only by some form of message exchange. Ensemble architectures like multiprocessors and network computers are of growing interest because of their capacity to support parallel programs, where a parallel program is one that is made up of many simultaneously-active, communicating processes. Parallel programs should, on an appropriate architecture, run faster than sequential programs, and, indeed, good speed-ups have been reported in parallel programming experiments in several domains, amongst which are AI, numerical problems, and system simulation. Our interest lies in network computers, particularly ones that range in size from several hundred nodes to several thousand.
Hussein G. Badr, David Gelernter, Sunil Podar
SIGMETRICS2
1985 The S/Net's Linda Kernel (extended abstract)
abstract
No abstract available.
Nicholas Carriero, David Gelernter
SOSP2
1985 Staged Circuit Switching
abstract
Staged circuit switching (SCS) is a message-switching technique that combines a new protocol with new communication hardware. Protocol and hardware are designed specifically for networks that are intended to function as integrated general-purpose MIMD machines, i.e., for "network computers."
Mauricio Arango, Hussein G. Badr, David Gelernter
IEEE Trans. Computers3
1985 Generative Communication in Linda
abstract
Generative communication is the basis of a new distributed programming langauge that is intended for systems programming in distributed settings generally and on integrated network computers in particular. It differs from previous interprocess communication models in specifying that messages be added in tuple-structured form to the computation environment, where they exist as named, independent entities until some process chooses to receive them. Generative communication results in a number of distinguishing properties in the new language, Linda, that is built around it. Linda is fully distributed in space and distributed in time; it allows distributed sharing, continuation passing, and structured naming. We discuss these properties and their implications, then give a series of examples. Linda presents novel implementation problems that we discuss in Part II. We are particularly concerned with implementation of the dynamic global name space that the generative communication model requires.
David Gelernter
ACM Trans. Program. Lang. Syst.1
1983 Staged circuit switching for network computers
abstract
Staged circuit switching (SCS) is a message-switching technique that combines a new protocol with new communication hardware. Protocol and hardware are designed specifically for networks that are intended to function as integrated, general-purpose MIMD machines, i.e. for "network computers".
Mauricio Arango, David Gelernter, Hussein G. Badr, Arthur J. Bernstein
SIGCOMM2
1982 Distributed Communication via Global Buffer
abstract
Design and implementation of an inter-address-space communication mechanism for the SBN network computer are described. SBN's basic communication primitives appear in context of a new distributed systems programming language strongly supported by the network communication kernel. A model in which all communication takes place via a distributed global buffer results in simplicity, generality and power in the communication primitives. Implementation issues raised by the requirements of the global buffer model are discussed in context of the SBN impementation effort.
David Gelernter, Arthur J. Bernstein
PODC1
1981 A DAG-Based Algorithm for Prevention of Store-and-Forward Deadlock in Packet Networks
abstract
Store-and-forward deadlock (SFD) occurs in packet- switched computer networks when, among some cycle of packets buffered by the communication system, each packet in the cycle waits for the use of the buffer currently occupied by the next packet in the cycle. Several techniques for the prevention of SFD are known, but all exact some cost in terms of efficient and flexible packet handling. An ideal SFD-prevention technique is as unobtrusive as possible; it imposes no routing restrictions on packets, does not require that the buffer pool on each node grow with network size, and imposes no buffer-pool partitioning. All SFD-prevention techniques described so far lack some or all of these desirable properties. The new algorithm here described has all of them; in return, it imposes other unconventional costs. Under certain circumstances it requires that packets be rerouted around areas of potential deadlock, and one arbitrarily chosen node is required to accept within finite time any packet seeking entrance to its buffer pool, even if this requires erasing some packet. It is argued nonetheless that these costs are imposed infrequently enough and are sufficiently well manageable by heuristic techniques to make this new algorithm an attractive and practical alternative to the older techniques. An implementation designed for a microprocessor network now under construction is described.
David Gelernter
IEEE Trans. Computers1