Personal tools
You are here: Home Science Environment Algorithms
Document Actions

Algorithms

by Katharine Chartrand last modified 2007-03-12 01:56

Tensor Multiplication on Parallel Computers

Tensor multiplication is a ubiquitous task in many scientific and engineering applications. While there has been a great deal of research on efficient numerical methods for matrix multiplication on parallel machines, the general multiplication of arbitrary-rank tensors with an arbitrary number of contractions has seen less progress. We are developing a set of C++ classes that compute, store and multiply tensors on both serial and parallel platforms. A short description is here.

The original, motivating problem for these techniques is in computational (quantum) chemistry. There are several packages devoted to chemistry applications, for example, the Tensor Contraction Engine and NWChem. While those projects are very sophisticated, our software is not designed with one particular application in mind. In that sense, it is similar to a set of Matlab classes developed at Sandia. Our software differs from that approach, in that our classes use MPI for parallel computation. Thus, we are able to address much larger problems than the serial, Matlab implementation.