  Like time complexity models that have significantly contributed to the
analysis and development of fast algorithms, energy complexity models for
parallel algorithms are desired as crucial means to develop energy efficient
algorithms for ubiquitous multicore platforms. Ideal energy complexity models
should be validated on real multicore platforms and applicable to a wide range
of parallel algorithms. However, existing energy complexity models for parallel
algorithms are either theoretical without model validation or
algorithm-specific without ability to analyze energy complexity for a
wide-range of parallel algorithms.
  This paper presents a new general validated energy complexity model for
parallel (multithreaded) algorithms. The new model abstracts away possible
multicore platforms by their static and dynamic energy of computational
operations and data access, and derives the energy complexity of a given
algorithm from its work, span and I/O complexity. The new model is validated by
different sparse matrix vector multiplication (SpMV) algorithms and dense
matrix multiplication (matmul) algorithms running on high performance computing
(HPC) platforms (e.g., Intel Xeon and Xeon Phi). The new energy complexity
model is able to characterize and compare the energy consumption of SpMV and
matmul kernels according to three aspects: different algorithms, different
input matrix types and different platforms. The prediction of the new model
regarding which algorithm consumes more energy with different inputs on
different platforms, is confirmed by the experimental results. In order to
improve the usability and accuracy of the new model for a wide range of
platforms, the platform parameters of ICE model are provided for eleven
platforms including HPC, accelerator and embedded platforms.
