2,434 research outputs found
Automatic linearity detection
Given a function, or more generally an operator, the question "Is it linear?" seems simple to answer. In many applications of scientific computing it might be worth determining the answer to this question in an automated way; some functionality, such as operator exponentiation, is only defined for linear operators, and in other problems, time saving is available if it is known that the problem being solved is linear. Linearity detection is closely connected to sparsity detection of Hessians, so for large-scale applications, memory savings can be made if linearity information is known. However, implementing such an automated detection is not as straightforward as one might expect. This paper describes how automatic linearity detection can be implemented in combination with automatic differentiation, both for standard scientific computing software, and within the Chebfun software system. The key ingredients for the method are the observation that linear operators have constant derivatives, and the propagation of two logical vectors, and , as computations are carried out. The values of and are determined by whether output variables have constant derivatives and constant values with respect to each input variable. The propagation of their values through an evaluation trace of an operator yields the desired information about the linearity of that operator
Computing invariants of algebraic group actions in arbitrary characteristic
Let G be an affine algebraic group acting on an affine variety
X. We present an algorithm for computing generators of the invariant ring
K[X]^G in the case where G is reductive. Furthermore, we address the case where
G is connected and unipotent, so the invariant ring need not be finitely
generated. For this case, we develop an algorithm which computes K[X]^G in
terms of a so-called colon-operation. From this, generators of K[X]^G can be
obtained in finite time if it is finitely generated. Under the additional
hypothesis that K[X] is factorial, we present an algorithm that finds a
quasi-affine variety whose coordinate ring is K[X]^G. Along the way, we develop
some techniques for dealing with non-finitely generated algebras. In
particular, we introduce the finite generation locus ideal.Comment: 43 page
The Reverse Cuthill-McKee Algorithm in Distributed-Memory
Ordering vertices of a graph is key to minimize fill-in and data structure
size in sparse direct solvers, maximize locality in iterative solvers, and
improve performance in graph algorithms. Except for naturally parallelizable
ordering methods such as nested dissection, many important ordering methods
have not been efficiently mapped to distributed-memory architectures. In this
paper, we present the first-ever distributed-memory implementation of the
reverse Cuthill-McKee (RCM) algorithm for reducing the profile of a sparse
matrix. Our parallelization uses a two-dimensional sparse matrix decomposition.
We achieve high performance by decomposing the problem into a small number of
primitives and utilizing optimized implementations of these primitives. Our
implementation shows strong scaling up to 1024 cores for smaller matrices and
up to 4096 cores for larger matrices
- β¦