Multipol: A Distributed Data Structure Library
نویسندگان
چکیده
Applications with dynamic data structures, unpredictable computational costs, and irregular data access patterns require substantial eeort to parallelize. Much of their programming complexity comes from the implementation of distributed data structures. We describe a library of such data structures, Multipol, which includes parallel versions of classic data structures such as trees, sets, lists, graphs, and queues. The library is built on a portable runtime layer that provides basic communication, synchronization, and caching. The data structures address the classic trade-oo between locality and load balance through a combination of replication, partitioning, and dynamic caching. To tolerate remote communication latencies, some of the operations are split into a separate initiation and completion phase, allowing for computation and communication overlap at the library interface level. This leads to a form of relaxed consistency semantics for the data types. In this paper we give an overview of Multipol, discuss the performance trade-oos and interface issues, and describe some of the applications that motivated its development.
منابع مشابه
Runtime Support for Portable Distributed Data Structures
Multipol is a library of distributed data structures designed for irregular applications , including those with asynchronous communication patterns. In this paper, we describe the Multipol runtime layer, which provides an eecient and portable abstraction underlying the data structures. It contains a thread system to express computations with varying degrees of parallelism and to support multipl...
متن کاملPortable Parallel Irregular Applications
Software developers for distributed memory multiprocessors often complain about the lack of libraries and tools for developing and performance tuning their applications. While some tools exist for regular array-based computations , support for applications with pointer-based data structures, asyn-chronous communication patterns, or unpredictable computational costs is seriously lacking. In this...
متن کاملParallel Data Structures for Symbolic Computation
Symbolic applications often require dynamic irregular data structures, such as linked lists, unbalanced trees, and graphs, and they exhibit unpredictable computational patterns that lead to asynchronous communication and load imbalance when parallelized. In this paper we describe several symbolic applications and their parallelizations. The main problem in parallelization of each application wa...
متن کاملBuilding a Distributed Digital Library System Enhancing the Role of Metadata
In this work we present a methodology that maps a tree data structure in a nested sets organization; the aim of this methodology is to provide an effective and efficient way to manage and exchange descriptive archival metadata in a distributed environment. We consider archival metadata as a basis for our study because of their challenging nature and the management and exchange difficulties they...
متن کاملAn Extensible Communication Class Library for Hybrid Distributed Systems
Both technical and commercial applications are increasingly being implemented as distributed systems running in a network of workstations. In this paper we describe an object-oriented class library for UNIX interprocess communication. We concentrate on applying object-oriented design techniques for the architecture of the library, which results in greater flexibility and easier extensibility. T...
متن کامل