1094026
Generic Graph Algorithms for Sparse Matrix Ordering
Fill-reducing sparse matrix orderings have been a topic of active research for many years. Although most such algorithms are developed and analyzed within a graph-theoretical framework, for reasons of performance the corresponding implementations are typically realized with programming languages devoid of language features necessary to explicitly represent graph abstractions. Recently, generic programming has emerged as a programming paradigm capable of providing high levels of performance in the presence of programming abstractions. In this paper we present an implementation of the Minimum Degree ordering algorithm using the newly-developed Generic Graph Component Library. Experimental comparisons show that, despite our heavy use of abstractions, our implementation has performance indistinguishable from that of a widely used Fortran implementation.
6016075
Concept-based component libraries and optimizing compilers
This paper discusses concept lattices and some of their applications in component library development and compiler optimizations. Ongoing work on concept-based user-extensible simplification (type-based optimizer generators) and library transformations is first reviewed, then a new application--categorization of algorithms via precise descriptions of their performance characteristics--is outlined, with Standard Template Library and Boost Graph Library algorithm concept lattices as example.
9567996
The generic graph component library
In this paper we present the Generic Graph Component Library (GGCL), a generic programming framework for graph data structures and graph algorithms. Following the theme of the Standard Template Library (STL), the graph algorithms in GGCL do not depend on the particular data structures upon which they operate, meaning a single algorithm can operate on arbitrary concrete representations of graphs. To attain this type of flexibility for graph data structures, which are more complicated than the containers in STL, we introduce several concepts to form the generic interface between the algorithms and the data structures, namely, Vertex, Edge, Visitor, and Decorator. We describe the principal abstractions comprising the GGCL, the algorithms and data structures that it provides, and provide examples that demonstrate the use of GGCL to implement some common graph algorithms. Performance results are presented which demonstrate that the use of novel lightweight implementation techniques and static polymorphism in GGCL results in code which is significantly more efficient than similar libraries written using the object-oriented paradigm.
11364382
The Generic Message Passing framework
The paper presents the design and implementation of the Generic Message Passing framework (GMP). The design of the GMP is guided by two goals: programmer productivity and run-time performance, particularly for parallel systems having both shared and distributed memory (e.g., clusters of SMPs). To achieve these goals simultaneously, the GMP uses a generic programming paradigm, allowing it to integrate seamlessly with modern generic libraries such as the C++ Standard Library. In addition the GMP presents a single parallel programming model, namely message passing. The implementation of the GMP fully exploits the architectural characteristics of its execution target for maximum run-time performance. Performance results are presented that demonstrate the effectiveness of the Generic Message Passing framework.
44673545
Generic programming for high-performance scientific applications
We present case studies that apply generic programming to the development of high-performance parallel code for solving two archetypal partial differential equations (PDEs). We examine the overall structure of the example scientific codes and consider their generic implementation. With a generic approach it is a straightforward matter to reuse software components from different sources; implementations with components from the Iterative Template Library (ITL), the Matrix Template Library (MTL), Blitz++, A++/P++, and Fortran BLAS are presented. Our newly developed Generic Message Passing library is used for communication. We compare the generic implementations with equivalent implementations developed with alternative libraries and languages and discuss performance as well as software engineering issues. Copyright © 2005 John Wiley & Sons, Ltd.
14941056
Generic programming for high performance scientific applications
We present case studies that apply generic programming to the development of high-performance parallel code for solving two archetypal PDEs. We examine the overall structure of the example scientific codes and consider their generic implementation. With a generic approach it is a straight-forward matter to reuse software components from different sources; implementations with components from ITL, MTL, Blitz++, A++/P++, and Fortran BLAS are presented. Our newly-developed Generic Message Passing framework is used for communication. We compare the generic implementations to equivalent implementations developed with alternative libraries and languages and discuss not only performance but software engineering issues as well.
1243491
Fast context-free grammar parsing requires fast boolean matrix multiplication
In 1975, Valiant showed that Boolean matrix multiplication can be used for parsing context-free grammars (CFGs), yielding the asympotically fastest (although not practical) CFG parsing algorithm known. We prove a dual result: any CFG parser with time complexity <i>O</i>(<i>gn</i><sup>3-∈</sup>), where <i>g</i> is the size of the grammar and <i>n</i> is the length of the input string, can be efficiently converted into an algorithm to multiply <i>m</i> × <i>m</i> Boolean matrices in time <i>O</i>(<i>m</i><sup>3-∈/3</sup>). Given that practical, substantially subcubic Boolean matrix multiplication algorithms have been quite difficult to find, we thus explain why there has been little progress in developing practical, substantially subcubic general CFG parsers. In proving this result, we also develop a formalization of the notion of parsing.
15127206
Distributional Similarity Models: Clustering vs. Nearest Neighbors
Distributional similarity is a useful notion in estimating the probabilities of rare joint events. It has been employed both to cluster events according to their distributions, and to directly compute averages of estimates for distributional neighbors of a target event. Here, we examine the tradeoffs between model size and prediction accuracy for cluster-based and nearest neighbors distributional models of unseen events.
7521453
Bootstrapping Lexical Choice via Multiple-Sequence Alignment
An important component of any generation system is the mapping dictionary, a lexicon of elementary semantic expressions and corresponding natural language realizations. Typically, labor-intensive knowledge-based methods are used to construct the dictionary. We instead propose to acquire it automatically via a novel multiple-pass algorithm employing multiple-sequence alignment, a technique commonly used in bioinformatics. Crucially, our method lever-ages latent information contained in multi-parallel corpora --- datasets that supply several verbalizations of the corresponding semantics rather than just one.We used our techniques to generate natural language versions of computer-generated mathematical proofs, with good results on both a per-component and overall-output basis. For example, in evaluations involving a dozen human judges, our system produced output whose readability and faithfulness to the semantic input rivaled that of a traditional generation system.
14581926
Fast Context-Free Parsing Requires Fast Boolean Matrix Multiplication
Valiant showed that Boolean matrix multiplication (BMM) can be used for CFG parsing. We prove a dual result: CFG parsers running in time O(|G||w|3-e) on a grammar G and a string w can be used to multiply m x m Boolean matrices in tmie O(m3-e/3). In the process we also provide a formal definition of parsing motivated by an informal notion due to Lang. Our result establishes one of the first limitations on general CFG parsing: a fast, practical CFG parser would yield a fast, practical BMM algorithm, which is not believed to exist.
2480472
Similarity-Based Methods for Word Sense Disambiguation
We compare four similarity-based estimation methods against back-off and maximum-likelihood estimation methods on a pseudo-word sense disambiguation task in which we controlled for both unigram and bigram frequency. The similarity-based methods perform up to 40% better on this particular task. We also conclude that events that occur only once in the training set have major impact on similarity-based estimates.