  As parallel computing trends towards the exascale, scientific data produced
by high-fidelity simulations are growing increasingly massive. For instance, a
simulation on a three-dimensional spatial grid with 512 points per dimension
that tracks 64 variables per grid point for 128 time steps yields 8~TB of data,
assuming double precision. By viewing the data as a dense five-way tensor, we
can compute a Tucker decomposition to find inherent low-dimensional multilinear
structure, achieving compression ratios of up to 5000 on real-world data sets
with negligible loss in accuracy. So that we can operate on such massive data,
we present the first-ever distributed-memory parallel implementation for the
Tucker decomposition, whose key computations correspond to parallel linear
algebra operations, albeit with nonstandard data layouts. Our approach
specifies a data distribution for tensors that avoids any tensor data
redistribution, either locally or in parallel. We provide accompanying analysis
of the computation and communication costs of the algorithms. To demonstrate
the compression and accuracy of the method, we apply our approach to real-world
data sets from combustion science simulations. We also provide detailed
performance results, including parallel performance in both weak and strong
scaling experiments.
