Communications of the ACM - Special section on computer architecture
MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM - Special issue on parallelism
Structuring parallel algorithms in an MIMD, shared memory environment
Parallel Computing
Computer
Parlog86 and the dining logicians
Communications of the ACM
A fast algorithm for particle simulations
Journal of Computational Physics
The duality of memory and communication in the implementation of a multiprocessor operating system
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Concurrent prolog: collected papers
Concurrent prolog: collected papers
Environments as first class objects
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Fine-grained mobility in the Emerald system
ACM Transactions on Computer Systems (TOCS)
Using tuple space communication in distributed object-oriented languages
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Applications experience with Linda
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
On the implementation of applicative languages on shared-memory, MIMD multiproce
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
Object-oriented concurrent programming in CST
C3P Proceedings of the third conference on Hypercube concurrent computers and applications: Architecture, software, computer systems, and general issues - Volume 1
Using Linda for supercomputing on a local area network
Proceedings of the 1988 ACM/IEEE conference on Supercomputing
Communications of the ACM
Proceedings of the conference on CONPAR 88
Distributed process groups in the V Kernel
ACM Transactions on Computer Systems (TOCS)
Parallel Search of Strongly Ordered Game Trees
ACM Computing Surveys (CSUR)
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
Experience with processes and monitors in Mesa
Communications of the ACM
Communicating sequential processes
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
A parallel language and its compilation to multiprocessor machines or VLSI
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Distributed data structures in Linda
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
IEEE Computer Graphics and Applications
A FAULT-TOLERANT NETWORK KERNEL FOR LINDA
A FAULT-TOLERANT NETWORK KERNEL FOR LINDA
ACM SIGPLAN Notices
Progress report on a system for general-purpose parallel symbolic algebraic computation
ISSAC '90 Proceedings of the international symposium on Symbolic and algebraic computation
Parallel Ada: issues in programming and implementation
IRTAW '90 Proceedings of the fourth international workshop on Real-time Ada issues
A production-quality C* compiler for Hypercube multicomputers
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Coarse-grain parallel programming in Jade
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Fine-grain parallelism in the ALPS programming language
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
Comparing the programming demands of single-user and multi-user applications
UIST '91 Proceedings of the 4th annual ACM symposium on User interface software and technology
A customizable substrate for concurrent languages
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A semantics for ML concurrency primitives
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Paralex: an environment for parallel programming in distributed systems
ICS '92 Proceedings of the 6th international conference on Supercomputing
Efficient parallel programming with Linda
Proceedings of the 1992 ACM/IEEE conference on Supercomputing
Heterogeneous parallel programming in Jade
Proceedings of the 1992 ACM/IEEE conference on Supercomputing
Chores: enhanced run-time support for shared-memory parallel computing
ACM Transactions on Computer Systems (TOCS)
ActorSpace: an open distributed programming paradigm
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
Implementation of a portable nested data-parallel language
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
Extending the two-partner shared variable protocol to n partners
APL '93 Proceedings of the international conference on APL
Window real objects: a distributed shared memory for distributed implementation of GUI applications
UIST '93 Proceedings of the 6th annual ACM symposium on User interface software and technology
Ada-Linda: a powerful paradigm for programming distributed Ada applications
TRI-Ada '94 Proceedings of the conference on TRI-Ada '94
Parallel Computing in Networks of Workstations with Paralex
IEEE Transactions on Parallel and Distributed Systems
GNATDIST: a configuration language for distributed Ada 95 applications
Proceedings of the conference on TRI-Ada '96: disciplined software development with Ada
Adaptive parallelism: an early experiment with Java remote method invocation
ACM SIGOPS Operating Systems Review
Coordinating Multiagent Applications on the WWW: A Reference Architecture
IEEE Transactions on Software Engineering
On the semantics of tuple-based coordination models
Proceedings of the 1999 ACM symposium on Applied computing
The Jini architecture: dynamic services in a flexible network
Proceedings of the 36th annual ACM/IEEE Design Automation Conference
SAC '00 Proceedings of the 2000 ACM symposium on Applied computing - Volume 1
Coordinating HPF programs to mix task and data parallelism
SAC '00 Proceedings of the 2000 ACM symposium on Applied computing - Volume 1
GARLIC: generic Ada reusable library for interpartition communication
Proceedings of the conference on TRI-Ada '95: Ada's role in global markets: solutions for a changing complex world
Diffusive parallelism: a parallel programming model for large scale distributed computation systems
EW 5 Proceedings of the 5th workshop on ACM SIGOPS European workshop: Models and paradigms for distributed systems structuring
Applying high-level language paradigms to distributed systems
EW 5 Proceedings of the 5th workshop on ACM SIGOPS European workshop: Models and paradigms for distributed systems structuring
PICCOLA---a small composition language
Formal methods for distributed processing
Mixed data and task parallelism with HPF and PVM
Cluster Computing
Abstraction and Modularity Mechanisms for Concurrent Computing
IEEE Parallel & Distributed Technology: Systems & Technology
Data-Parallel Programming on MIMD Computers
IEEE Transactions on Parallel and Distributed Systems
Using Automatic Process Clustering for Design Recovery and Distributed Debugging
IEEE Transactions on Software Engineering
JAVA Wrappers for Automated Interoperability
DNIS '00 Proceedings of the International Workshop on Databases in Networked Information Systems
Scientific Computation with JavaSpaces
HPCN Europe 2001 Proceedings of the 9th International Conference on High-Performance Computing and Networking
Dome: Parallel Programming in a Distributed Computing Environment
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
Interoperability with Distributed Objects through Java Wrapper
COMPSAC '00 24th International Computer Software and Applications Conference
Parallel Event Detection in Active Database Systems: The Heart of the Matter
ARTDB '97 Proceedings of the Second International Workshop on Active, Real-Time, and Temporal Database Systems
TACAS '99 Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Coordination in a Reflective Architecture Description Language
COORDINATION '02 Proceedings of the 5th International Conference on Coordination Models and Languages
Exploring the Stream Data Type in SISAL and Other Languages
PACT '93 Proceedings of the IFIP WG10.3. Working Conference on Architectures and Compilation Techniques for Fine and Medium Grain Parallelism
An Overview of Souk Nets: A Component-Based Paradigm for Data Source Integration
DBPL '99 Revised Papers from the 7th International Workshop on Database Programming Languages: Research Issues in Structured and Semistructured Database Programming
Preface: how to approach the virtual shared memory paradigm
Virtual shared memory for distributed architectures
KLAVA: a Java package for distributed and mobile applications
Software—Practice & Experience
Grid programming: some indications where we are headed
Parallel Computing - Special issue: Advanced environments for parallel and distributed computing
Towards customisable tuple field matching in VLOS
ACSC '03 Proceedings of the 26th Australasian computer science conference - Volume 16
Parallel and Distributed Haskells
Journal of Functional Programming
Formulae Meet Programs Over the Net: A Framework for Correct Network Aware Programming
Automated Software Engineering
Implicit heterogeneous and parallel programming
ACM SIGSOFT Software Engineering Notes
Coordination with multicapabilities
Science of Computer Programming
Fundamenta Informaticae
Abstract Level Parallelization of Finite Difference Methods
Scientific Programming
A survey of linguistic structures for application-level fault tolerance
ACM Computing Surveys (CSUR)
DepSpace: a byzantine fault-tolerant coordination service
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
A visual environment for specifying global reduction operations
International Journal of High Performance Computing and Networking
Efficient Parallel Programming with Linda
Scientific Programming
Using Tuple Space to Coordinate Multiagent Activities
KES '07 Knowledge-Based Intelligent Information and Engineering Systems and the XVII Italian Workshop on Neural Networks on Proceedings of the 11th International Conference
An Ontology-Driven Framework for Deploying JADE Agent Systems
WI-IAT '08 Proceedings of the 2008 IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology - Volume 02
Flexibility and coordination in event-based, loosely coupled, distributed systems
Computer Languages, Systems and Structures
Software-engineering challenges of building and deploying reusable problem solvers
Artificial Intelligence for Engineering Design, Analysis and Manufacturing
Editorial: Coordination models, languages and applications
Science of Computer Programming
Simulating sellers' behavior in a reverse auction B2B exchange
ICCS'03 Proceedings of the 2003 international conference on Computational science
ISHPC'05/ALPS'06 Proceedings of the 6th international symposium on high-performance computing and 1st international conference on Advanced low power systems
Proceedings of the 2nd ACM SIGHIT International Health Informatics Symposium
Model-based performance diagnosis of master-worker parallel computations
Euro-Par'06 Proceedings of the 12th international conference on Parallel Processing
Coordination with multicapabilities
COORDINATION'05 Proceedings of the 7th international conference on Coordination Models and Languages
Mobile distributed programming in X-KLAIM
SFM-Moby'05 Proceedings of the 5th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: mobile computing
Concurrency and backtracking in Vienna Parallel Logic
Computer Languages
Fundamenta Informaticae
Hi-index | 0.00 |
We present a framework for parallel programming, based on three conceptual classes for understanding parallelism and three programming paradigms for implementing parallel programs. The conceptual classes are result parallelism, which centers on parallel computation of all elements in a data structure; agenda parallelism, which specifies an agenda of tasks for parallel execution; and specialist parallelism, in which specialist agents solve problems cooperatively. The programming paradigms center on live data structures that transform themselves into result data structures; distributed data structures that are accessible to many processes simultaneously; and message passing, in which all data objects are encapsulated within explicitly communicating processes. There is a rough correspondence between the conceptual classes and the programming methods, as we discuss. We begin by outlining the basic conceptual classes and programming paradigms, and by sketching an example solution under each of the three paradigms. The final section develops a simple example in greater detail, presenting and explaining code and discussing its performance on two commercial parallel computers, an 18-node shared-memory multiprocessor, and a 64-node distributed-memory hypercube. The middle section bridges the gap between the abstract and the practical by giving an overview of how the basic paradigms are implemented.We focus on the paradigms, not on machine architecture or programming languages: The programming methods we discuss are useful on many kinds of parallel machine, and each can be expressed in several different parallel programming languages. Our programming discussion and the examples use the parallel language C-Linda for several reasons: The main paradigms are all simple to express in Linda; efficient Linda implementations exist on a wide variety of parallel machines; and a wide variety of parallel programs have been written in Linda.