  Coordinate descent algorithms solve optimization problems by successively
performing approximate minimization along coordinate directions or coordinate
hyperplanes. They have been used in applications for many years, and their
popularity continues to grow because of their usefulness in data analysis,
machine learning, and other areas of current interest. This paper describes the
fundamentals of the coordinate descent approach, together with variants and
extensions and their convergence properties, mostly with reference to convex
objectives. We pay particular attention to a certain problem structure that
arises frequently in machine learning applications, showing that efficient
implementations of accelerated coordinate descent algorithms are possible for
problems of this type. We also present some parallel variants and discuss their
convergence properties under several models of parallel execution.
