Communication, i.e., moving data, either between levels of a memory hierarchy or between
processors over a network, is much more expensive (in time or energy) than arithmetic. So there
has been much recent work designing algorithms that minimize communication, when possible
attaining lower bounds on the total number of reads and writes.
However, most of this previous work does not distinguish between the costs of reads and
writes. Writes can be much more expensive than reads in some current and emerging tech-
nologies. The rst example is nonvolatile memory, such as Flash and Phase Change Memory.
Second, in cloud computing frameworks like MapReduce, Hadoop, and Spark, intermediate re-
sults may be written to disk for reliability purposes, whereas read-only data may be kept in
DRAM. Third, in a shared memory environment, writes may result in more coherency trac
over a shared bus than reads.
This motivates us to rst ask whether there are lower bounds on the number of writes
that certain algorithms must perform, and when these bounds are asymptotically smaller than
bounds on the sum of reads and writes together. When these smaller lower bounds exist, we
then ask when they are attainable; we call such algorithms \write-avoiding (WA)”, to distinguish
them from \communication-avoiding (CA)” algorithms, which only minimize the sum of reads
and writes. We identify a number of cases in linear algebra and direct N-body methods where
known CA algorithms are also WA (some are and some aren’t). We also identify classes of
algorithms, including Strassen’s matrix multiplication, Cooley-Tukey FFT, and cache oblivious
algorithms for classical linear algebra, where a WA algorithm cannot exist: the number of
writes is unavoidably high, within a constant factor of the total number of reads and writes.
We explore the interaction of WA algorithms with cache replacement policies and argue that
the Least Recently Used (LRU) policy works well with the WA algorithms in this paper. We
provide empirical hardware counter measurements from Intel’s Nehalem-EX microarchitecture
to validate our theory. In the parallel case, for classical linear algebra, we show that it is
impossible to attain lower bounds both on interprocessor communication and on writes to local
memory, but either one is attainable by itself. Finally, we discuss WA algorithms for sparse
iterative linear algebra. We show that, for sequential communication-avoiding Krylov subspace
methods, which can perform s iterations of the conventional algorithm for the communication
cost of 1 classical iteration, it is possible to reduce the number of writes by a factor of (s)
by interleaving a matrix powers computation with orthogonalization operations in a blockwise
fashion.